diff --git a/backend/src/auth/INALIENABLE_RIGHTS.ts b/backend/src/auth/INALIENABLE_RIGHTS.ts index adca3640f..25a4fa76d 100644 --- a/backend/src/auth/INALIENABLE_RIGHTS.ts +++ b/backend/src/auth/INALIENABLE_RIGHTS.ts @@ -8,4 +8,5 @@ export const INALIENABLE_RIGHTS = [ RIGHTS.SET_PASSWORD, RIGHTS.QUERY_TRANSACTION_LINK, RIGHTS.QUERY_OPT_IN, + RIGHTS.CHECK_USERNAME, ] diff --git a/backend/src/auth/RIGHTS.ts b/backend/src/auth/RIGHTS.ts index df4eed8a1..b3627ff7a 100644 --- a/backend/src/auth/RIGHTS.ts +++ b/backend/src/auth/RIGHTS.ts @@ -34,6 +34,7 @@ export enum RIGHTS { LIST_ALL_CONTRIBUTION_MESSAGES = 'LIST_ALL_CONTRIBUTION_MESSAGES', OPEN_CREATIONS = 'OPEN_CREATIONS', USER = 'USER', + CHECK_USERNAME = 'CHECK_USERNAME', // Admin SEARCH_USERS = 'SEARCH_USERS', SET_USER_ROLE = 'SET_USER_ROLE', diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 0afbfcc5a..a19d9e7d7 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -498,6 +498,17 @@ export class UserResolver { return true } + @Authorized([RIGHTS.CHECK_USERNAME]) + @Query(() => Boolean) + async checkUsername(@Arg('username') username: string): Promise { + try { + await validateAlias(username) + return true + } catch { + return false + } + } + @Authorized([RIGHTS.UPDATE_USER_INFOS]) @Mutation(() => Boolean) async updateUserInfos(