@@ -11,10 +11,10 @@ import {
1111 GroupInfo
1212} from "../../generated/openapi/model/models"
1313import { Either , left , right , isLeft , isRight } from "fp-ts/Either"
14- import { hasOwnProperty , isNonEmptyString , isArray } from "../utils/validation.utils"
14+ import { hasOwnProperty , isNonEmptyString , isArray , isValidUUID } from "../utils/validation.utils"
1515import { validatePagination , validateSharedListParams } from "./common.validators"
1616import { validateGroupInfo } from "./groups.validators"
17- import { validateConcurrencyControl } from "./workflow-templates.validators "
17+ import { validateConcurrencyControl } from "./concurrency-control "
1818
1919export type UserValidationError =
2020 | "malformed_object"
@@ -212,15 +212,21 @@ export function validateRoleScope(object: unknown): Either<RoleScopeValidationEr
212212 return right ( { type : "org" } )
213213 } else if ( object . type === "space" ) {
214214 if ( ! hasOwnProperty ( object , "spaceId" ) ) return left ( "missing_space_id" )
215- if ( ! isNonEmptyString ( object . spaceId ) ) return left ( "invalid_space_id" )
215+ if ( ! isNonEmptyString ( object . spaceId ) || ! isValidUUID ( object . spaceId ) ) {
216+ return left ( "invalid_space_id" )
217+ }
216218 return right ( { type : "space" , spaceId : object . spaceId } )
217219 } else if ( object . type === "group" ) {
218220 if ( ! hasOwnProperty ( object , "groupId" ) ) return left ( "missing_group_id" )
219- if ( ! isNonEmptyString ( object . groupId ) ) return left ( "invalid_group_id" )
221+ if ( ! isNonEmptyString ( object . groupId ) || ! isValidUUID ( object . groupId ) ) {
222+ return left ( "invalid_group_id" )
223+ }
220224 return right ( { type : "group" , groupId : object . groupId } )
221225 } else if ( object . type === "workflow_template" ) {
222226 if ( ! hasOwnProperty ( object , "workflowTemplateId" ) ) return left ( "missing_workflow_template_id" )
223- if ( ! isNonEmptyString ( object . workflowTemplateId ) ) return left ( "invalid_workflow_template_id" )
227+ if ( ! isNonEmptyString ( object . workflowTemplateId ) || ! isValidUUID ( object . workflowTemplateId ) ) {
228+ return left ( "invalid_workflow_template_id" )
229+ }
224230 return right ( { type : "workflow_template" , workflowTemplateId : object . workflowTemplateId } )
225231 }
226232
@@ -252,6 +258,7 @@ export function validateRoleAssignmentRequest(
252258
253259 if ( ! hasOwnProperty ( object , "roles" ) ) return left ( "missing_roles" )
254260 if ( ! isArray ( object . roles ) ) return left ( "invalid_roles" )
261+ if ( object . roles . length === 0 ) return left ( "invalid_roles" )
255262
256263 const roles : RoleOperationItem [ ] = [ ]
257264 for ( const role of object . roles ) {
0 commit comments