Przeglądaj źródła

use mongoose model instead of crowi

ryoji-s 2 lat temu
rodzic
commit
8b15bb8eb2

+ 8 - 9
apps/app/src/server/routes/apiv3/security-settings/checkSetupStrategiesHasAdmin.ts

@@ -1,13 +1,12 @@
 import type { IExternalAuthProviderType } from '@growi/core';
 import type { IExternalAuthProviderType } from '@growi/core';
-
-import Crowi from '~/server/crowi';
+import mongoose from 'mongoose';
 
 
 interface AggregateResult {
 interface AggregateResult {
   count: number;
   count: number;
 }
 }
 
 
-const checkLocalStrategyHasAdmin = async(crowi: Crowi): Promise<boolean> => {
-  const User = crowi.model('User');
+const checkLocalStrategyHasAdmin = async(): Promise<boolean> => {
+  const User = mongoose.model('User') as any;
 
 
   const localAdmins: AggregateResult[] = await User.aggregate([
   const localAdmins: AggregateResult[] = await User.aggregate([
     {
     {
@@ -23,8 +22,8 @@ const checkLocalStrategyHasAdmin = async(crowi: Crowi): Promise<boolean> => {
   return localAdmins.length > 0 && localAdmins[0].count > 0;
   return localAdmins.length > 0 && localAdmins[0].count > 0;
 };
 };
 
 
-const checkExternalStrategiesHasAdmin = async(crowi: Crowi, setupExternalStrategies: IExternalAuthProviderType[]): Promise<boolean> => {
-  const User = crowi.model('User');
+const checkExternalStrategiesHasAdmin = async(setupExternalStrategies: IExternalAuthProviderType[]): Promise<boolean> => {
+  const User = mongoose.model('User') as any;
 
 
   const externalAdmins: AggregateResult[] = await User.aggregate([
   const externalAdmins: AggregateResult[] = await User.aggregate([
     { $match: { admin: true, status: User.STATUS_ACTIVE } },
     { $match: { admin: true, status: User.STATUS_ACTIVE } },
@@ -47,9 +46,9 @@ const checkExternalStrategiesHasAdmin = async(crowi: Crowi, setupExternalStrateg
   return externalAdmins.length > 0 && externalAdmins[0].count > 0;
   return externalAdmins.length > 0 && externalAdmins[0].count > 0;
 };
 };
 
 
-export const checkSetupStrategiesHasAdmin = async(crowi: Crowi, setupStrategies: (IExternalAuthProviderType | 'local')[]): Promise<boolean> => {
+export const checkSetupStrategiesHasAdmin = async(setupStrategies: (IExternalAuthProviderType | 'local')[]): Promise<boolean> => {
   if (setupStrategies.includes('local')) {
   if (setupStrategies.includes('local')) {
-    const isLocalStrategyHasAdmin = await checkLocalStrategyHasAdmin(crowi);
+    const isLocalStrategyHasAdmin = await checkLocalStrategyHasAdmin();
     if (isLocalStrategyHasAdmin) {
     if (isLocalStrategyHasAdmin) {
       return true;
       return true;
     }
     }
@@ -60,7 +59,7 @@ export const checkSetupStrategiesHasAdmin = async(crowi: Crowi, setupStrategies:
     return false;
     return false;
   }
   }
 
 
-  const isExternalStrategiesHasAdmin = await checkExternalStrategiesHasAdmin(crowi, setupExternalStrategies);
+  const isExternalStrategiesHasAdmin = await checkExternalStrategiesHasAdmin(setupExternalStrategies);
 
 
   return isExternalStrategiesHasAdmin;
   return isExternalStrategiesHasAdmin;
 };
 };