@@ -57,6 +57,7 @@ import Ability from '../ability/abilityHelper';
5757import { getUserById } from '../data/db/iam/users' ;
5858import { getNestedOrgParameter , getNestedUserParameter } from '../data/db/machine-config' ;
5959import { deleteInstances , getInstanceById } from '../data/instances' ;
60+ import { getDataObject , isErrorResponse } from '@/app/api/spaces/[spaceId]/data/helper' ;
6061
6162export async function getCorrectTargetEngines (
6263 spaceId : string ,
@@ -270,37 +271,30 @@ export async function getGlobalVariablesForHTML(
270271 return await getGlobalVariables ( html , async ( varPath ) => {
271272 let segments = varPath . split ( '.' ) ;
272273
273- if ( segments [ 0 ] === '@organization' ) {
274- const parameter = await getNestedOrgParameter ( spaceId , segments . slice ( 1 ) . join ( '.' ) ) ;
275- return parameter ?. value ;
276- } else {
277- let { userId } = await getCurrentUser ( ) ;
278- if ( segments [ 0 ] === '@process-initiator' || segments [ 0 ] === '@worker' ) {
279- if ( segments [ 0 ] === '@process-initiator' ) userId = initiatorId ;
280- segments = segments . slice ( 1 ) ;
281- }
282- if ( segments [ 0 ] === 'user-info' ) {
283- const info = await getUserById ( userId ) ;
284- if ( ! info || info . isGuest ) return ;
274+ let userId : string | undefined ;
285275
286- const userInfo = { ...info , name : `${ info . firstName } ${ info . lastName } ` } ;
276+ if ( segments [ 0 ] === '@process-initiator' ) {
277+ userId = initiatorId ;
278+ } else if ( segments [ 0 ] === '@worker' || ! segments [ 0 ] . startsWith ( '@' ) ) {
279+ ( { userId } = await getCurrentUser ( ) ) ;
280+ } else if ( segments [ 0 ] !== '@organization' ) {
281+ console . error ( `Invalid selector for global data access in user task html. (${ segments [ 0 ] } )` ) ;
282+ return ;
283+ }
287284
288- return userInfo [ segments [ 1 ] as keyof typeof userInfo ] ;
289- } else {
290- const parameter = await getNestedUserParameter ( userId , spaceId , segments . join ( '.' ) ) ;
285+ if ( segments [ 0 ] . startsWith ( '@' ) ) segments = segments . slice ( 1 ) ;
291286
292- if ( isUserErrorResponse ( parameter ) ) {
293- console . error ( parameter . error . message ) ;
294- return ;
295- }
296- if ( ! parameter ) {
297- console . error ( 'Could not get user data for a user task' ) ;
298- return ;
299- }
287+ const result = await getDataObject ( spaceId , segments . join ( '.' ) , userId ) ;
300288
301- return parameter . value ;
302- }
289+ if ( isErrorResponse ( result ) ) {
290+ console . error (
291+ 'Ecountered error while trying to get global variable for user task rendering:' ,
292+ await result . data . text ( ) ,
293+ ) ;
294+ return ;
303295 }
296+
297+ return result . data . value ;
304298 } ) ;
305299}
306300
0 commit comments