From 0d858077c20d59d2787b0d8efd4107f81899eff7 Mon Sep 17 00:00:00 2001 From: AlexanderKanakis Date: Thu, 13 Jan 2022 22:38:56 +0200 Subject: [PATCH] get OAuth Users role only when registering with oAth --- app/authentication/server/startup/index.js | 6 +++--- server/services/user/lib/getNewUserRoles.ts | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/authentication/server/startup/index.js b/app/authentication/server/startup/index.js index ed98b62aaf282..649d10d884be5 100644 --- a/app/authentication/server/startup/index.js +++ b/app/authentication/server/startup/index.js @@ -18,7 +18,7 @@ import { } from '../lib/restrictLoginAttempts'; import './settings'; import { getClientAddress } from '../../../../server/lib/getClientAddress'; -import { getNewUserRoles } from '../../../../server/services/user/lib/getNewUserRoles'; +import { getNewUserAuthRoles, getNewUserRoles } from '../../../../server/services/user/lib/getNewUserRoles'; Accounts.config({ @@ -213,7 +213,7 @@ Accounts.insertUserDoc = _.wrap(Accounts.insertUserDoc, function(insertUserDoc, const globalRoles = []; - if (Match.test(user.globalRoles, [String]) && user.globalRoles.length > 0) { + if (Match.test(user.globalRoles, [String]) && user.globalRoles.length > 0 && user.services) { globalRoles.push(...user.globalRoles); } @@ -226,7 +226,7 @@ Accounts.insertUserDoc = _.wrap(Accounts.insertUserDoc, function(insertUserDoc, } } - const roles = getNewUserRoles(globalRoles); + const roles = user.services && !user.services.password ? getNewUserAuthRoles(globalRoles) : getNewUserRoles(globalRoles); if (!user.type) { user.type = 'user'; diff --git a/server/services/user/lib/getNewUserRoles.ts b/server/services/user/lib/getNewUserRoles.ts index 0a2b8dfbfaf02..869ca180112b6 100644 --- a/server/services/user/lib/getNewUserRoles.ts +++ b/server/services/user/lib/getNewUserRoles.ts @@ -10,3 +10,7 @@ export function getNewUserRoles(previousRoles?: string[]): string[] { return [...new Set([...currentRoles, ...defaultUserRoles])]; } + +export function getNewUserAuthRoles(roles: string[]): string[] { + return [...new Set([...roles])]; +}