Просмотр исходного кода

Add user status checking to checkAuthStrategyHasAdmin method

Mudana-grune 2 лет назад
Родитель
Сommit
a5ec11f233
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      apps/app/src/server/routes/apiv3/security-setting.js

+ 4 - 2
apps/app/src/server/routes/apiv3/security-setting.js

@@ -532,7 +532,7 @@ module.exports = (crowi) => {
       if (strategy === 'local') {
         // Get all local admin accounts and filter local admins that are not in external accounts
         const localAdmins = await User.aggregate([
-          { $match: { admin: true } },
+          { $match: { admin: true, status: User.STATUS_ACTIVE } },
           {
             $lookup: {
               from: 'externalaccounts',
@@ -548,7 +548,9 @@ module.exports = (crowi) => {
 
       // Check if external accounts have admins
       const externalAccounts = await ExternalAccount.find({ providerType: strategy }).populate('user').exec();
-      const externalAccountHasAdmin = externalAccounts.some(externalAccount => externalAccount.user && externalAccount.user.admin);
+      const externalAccountHasAdmin = externalAccounts.some(externalAccount =>
+        externalAccount.user?.admin && externalAccount.user?.status == User.STATUS_ACTIVE
+      );
 
       return externalAccountHasAdmin;
     }