From 4e9ed0726fb386f74c11b810f5e8b770e4aac7d2 Mon Sep 17 00:00:00 2001 From: Claus-Peter Huebner Date: Mon, 3 Jul 2023 16:26:16 +0200 Subject: [PATCH] all tests solved --- backend/src/graphql/resolver/UserResolver.ts | 22 +++++++++----------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 17fde6775..4a9a8ef4e 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -654,15 +654,7 @@ export class UserResolver { @Ctx() context: Context, ): Promise { const clientTimezoneOffset = getClientTimezoneOffset(context) - const userFields = [ - 'id', - 'firstName', - 'lastName', - 'emailId', - 'emailContact', - 'deletedAt', - 'userRoles', - ] + const userFields = ['id', 'firstName', 'lastName', 'emailId', 'emailContact', 'deletedAt'] const [users, count] = await findUsers( userFields.map((fieldName) => { return 'user.' + fieldName @@ -745,12 +737,18 @@ export class UserResolver { throw new LogError('Administrator can not change his own role') } // if user role(s) should be deleted by role=null as parameter - if (role === null && user.userRoles && user.userRoles.length > 0) { - await UserRole.delete({ userId: user.id }) - user.userRoles = undefined + if (role === null && user.userRoles) { + if (user.userRoles.length > 0) { + // remove all roles of the user + await UserRole.delete({ userId: user.id }) + user.userRoles.length = 0 + } else if (user.userRoles.length === 0) { + throw new LogError('User is already an usual user') + } } else if (isUserInRole(user, role)) { throw new LogError('User already has role=', role) } + // if role shoud be set if (role) { if (user.userRoles === undefined) { user.userRoles = [] as UserRole[]