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

isEnabledPassport, isEnabledPassportLdap, 'google:', getSiteUrl

mizozobu 6 лет назад
Родитель
Сommit
9aceb207db

+ 2 - 2
src/server/crowi/express-init.js

@@ -127,7 +127,7 @@ module.exports = function(crowi, app) {
   });
 
   // passport
-  if (Config.isEnabledPassport()) {
+  if (getConfig('crowi', 'security:isEnabledPassport')) {
     debug('initialize Passport');
     app.use(passport.initialize());
     app.use(passport.session());
@@ -143,7 +143,7 @@ module.exports = function(crowi, app) {
   app.use(middlewares.csrfKeyGenerator());
 
   // switch loginChecker
-  if (Config.isEnabledPassport()) {
+  if (getConfig('crowi', 'security:isEnabledPassport')) {
     app.use(middlewares.loginCheckerForPassport);
   }
   else {

+ 1 - 4
src/server/crowi/index.js

@@ -261,10 +261,7 @@ Crowi.prototype.getRestQiitaAPIService = function() {
 };
 
 Crowi.prototype.setupPassport = function() {
-  const config = this.getConfig();
-  const Config = this.model('Config');
-
-  if (!Config.isEnabledPassport(config)) {
+  if (!this.configManager.getConfig('crowi', 'security:isEnabledPassport')) {
     // disabled
     return;
   }

+ 0 - 10
src/server/models/config.js

@@ -314,16 +314,6 @@ module.exports = function(crowi) {
     return getValueForCrowiNS(config, key);
   };
 
-  configSchema.statics.isEnabledPassport = function() {
-    const key = 'security:isEnabledPassport';
-    return getValueForCrowiNS(null, key);
-  };
-
-  configSchema.statics.isEnabledPassportLdap = function(config) {
-    const key = 'security:passport-ldap:isEnabled';
-    return getValueForCrowiNS(config, key);
-  };
-
   configSchema.statics.isEnabledPassportGoogle = function(config) {
     const key = 'security:passport-google:isEnabled';
     return getValueForCrowiNS(config, key);

+ 1 - 3
src/server/routes/admin.js

@@ -949,12 +949,10 @@ module.exports = function(crowi, app) {
     debug('form content', form);
     return saveSettingAsync(form)
       .then(() => {
-        const config = crowi.getConfig();
-
         // reset strategy
         crowi.passportService.resetLdapStrategy();
         // setup strategy
-        if (Config.isEnabledPassportLdap(config)) {
+        if (configManager.getConfig('crowi', 'security:passport-ldap:isEnabled')) {
           crowi.passportService.setupLdapStrategy(true);
         }
         return;

+ 3 - 4
src/server/routes/index.js

@@ -26,8 +26,7 @@ module.exports = function(crowi, app) {
   const adminRequired = middlewares.adminRequired;
   const accessTokenParser = middlewares.accessTokenParser;
   const csrf = middlewares.csrfVerify;
-  const config = crowi.getConfig();
-  const Config = crowi.model('Config');
+  const { configManager } = crowi;
 
   /* eslint-disable max-len, comma-spacing, no-multi-spaces */
 
@@ -42,7 +41,7 @@ module.exports = function(crowi, app) {
   app.post('/login/activateInvited'  , form.invited                         , csrf, login.invited);
 
   // switch POST /login route
-  if (Config.isEnabledPassport(config)) {
+  if (configManager.getConfig('crowi', 'security:isEnabledPassport')) {
     app.post('/login'                , form.login                           , csrf, loginPassport.loginWithLocal, loginPassport.loginWithLdap, loginPassport.loginFailure);
     app.post('/_api/login/testLdap'  , loginRequired() , form.login , loginPassport.testLdapCredentials);
   }
@@ -164,7 +163,7 @@ module.exports = function(crowi, app) {
   app.get('/me/apiToken'              , loginRequired() , me.apiToken);
   app.post('/me'                      , loginRequired() , csrf , form.me.user , me.index);
   // external-accounts
-  if (Config.isEnabledPassport(config)) {
+  if (configManager.getConfig('crowi', 'security:isEnabledPassport')) {
     app.get('/me/external-accounts'                         , loginRequired() , me.externalAccounts.list);
     app.post('/me/external-accounts/disassociate'           , loginRequired() , me.externalAccounts.disassociate);
     app.post('/me/external-accounts/associateLdap'          , loginRequired() , form.login , me.externalAccounts.associateLdap);

+ 7 - 6
src/server/service/passport.js

@@ -148,8 +148,9 @@ class PassportService {
     }
 
     const config = this.crowi.config;
-    const Config = this.crowi.model('Config');
-    const isLdapEnabled = Config.isEnabledPassportLdap(config);
+    const { configManager } = this.crowi;
+
+    const isLdapEnabled = configManager.getConfig('crowi', 'security:passport-ldap:isEnabled');
 
     // when disabled
     if (!isLdapEnabled) {
@@ -329,7 +330,7 @@ class PassportService {
         {
           clientId: config.crowi['security:passport-google:clientId'] || process.env.OAUTH_GOOGLE_CLIENT_ID,
           clientSecret: config.crowi['security:passport-google:clientSecret'] || process.env.OAUTH_GOOGLE_CLIENT_SECRET,
-          callbackURL: (this.crowi.configManager.getConfig('crowi', 'app:siteUrl') != null)
+          callbackURL: (this.crowi.appService.getSiteUrl() != null)
             ? urljoin(this.crowi.appService.getSiteUrl(), '/passport/google/callback') // auto-generated with v3.2.4 and above
             : config.crowi['security:passport-google:callbackUrl'] || process.env.OAUTH_GOOGLE_CALLBACK_URI, // DEPRECATED: backward compatible with v3.2.3 and below
           skipUserProfile: false,
@@ -380,7 +381,7 @@ class PassportService {
         {
           clientID: config.crowi['security:passport-github:clientId'] || process.env.OAUTH_GITHUB_CLIENT_ID,
           clientSecret: config.crowi['security:passport-github:clientSecret'] || process.env.OAUTH_GITHUB_CLIENT_SECRET,
-          callbackURL: (this.crowi.configManager.getConfig('crowi', 'app:siteUrl') != null)
+          callbackURL: (this.crowi.appService.getSiteUrl() != null)
             ? urljoin(this.crowi.appService.getSiteUrl(), '/passport/github/callback') // auto-generated with v3.2.4 and above
             : config.crowi['security:passport-github:callbackUrl'] || process.env.OAUTH_GITHUB_CALLBACK_URI, // DEPRECATED: backward compatible with v3.2.3 and below
           skipUserProfile: false,
@@ -431,7 +432,7 @@ class PassportService {
         {
           consumerKey: config.crowi['security:passport-twitter:consumerKey'] || process.env.OAUTH_TWITTER_CONSUMER_KEY,
           consumerSecret: config.crowi['security:passport-twitter:consumerSecret'] || process.env.OAUTH_TWITTER_CONSUMER_SECRET,
-          callbackURL: (this.crowi.configManager.getConfig('crowi', 'app:siteUrl') != null)
+          callbackURL: (this.crowi.appService.getSiteUrl() != null)
             ? urljoin(this.crowi.appService.getSiteUrl(), '/passport/twitter/callback') // auto-generated with v3.2.4 and above
             : config.crowi['security:passport-twitter:callbackUrl'] || process.env.OAUTH_TWITTER_CALLBACK_URI, // DEPRECATED: backward compatible with v3.2.3 and below
           skipUserProfile: false,
@@ -544,7 +545,7 @@ class PassportService {
       new SamlStrategy(
         {
           entryPoint: configManager.getConfig('crowi', 'security:passport-saml:entryPoint'),
-          callbackUrl: (this.crowi.configManager.getConfig('crowi', 'app:siteUrl') != null)
+          callbackUrl: (this.crowi.appService.getSiteUrl() != null)
             ? urljoin(this.crowi.appService.getSiteUrl(), '/passport/saml/callback') // auto-generated with v3.2.4 and above
             : configManager.getConfig('crowi', 'security:passport-saml:callbackUrl'), // DEPRECATED: backward compatible with v3.2.3 and below
           issuer: configManager.getConfig('crowi', 'security:passport-saml:issuer'),

+ 17 - 10
src/server/util/swigFunctions.js

@@ -4,8 +4,7 @@ module.exports = function(crowi, app, req, locals) {
   const Page = crowi.model('Page');
   const Config = crowi.model('Config');
   const User = crowi.model('User');
-  const passportService = crowi.passportService;
-  const cdnResourcesService = crowi.cdnResourcesService;
+  const { passportService, cdnResourcesService, configManager } = crowi;
   debug('initializing swigFunctions');
 
   locals.nodeVersion = function() {
@@ -105,8 +104,7 @@ module.exports = function(crowi, app, req, locals) {
    * return true if enabled
    */
   locals.isEnabledPassport = function() {
-    const config = crowi.getConfig();
-    return Config.isEnabledPassport(config);
+    return configManager.getConfig('crowi', 'security:isEnabledPassport');
   };
 
   /**
@@ -121,16 +119,22 @@ module.exports = function(crowi, app, req, locals) {
    * return true if enabled and strategy has been setup successfully
    */
   locals.isLdapSetup = function() {
-    const config = crowi.getConfig();
-    return Config.isEnabledPassport(config) && Config.isEnabledPassportLdap(config) && passportService.isLdapStrategySetup;
+    return (
+      configManager.getConfig('crowi', 'security:isEnabledPassport')
+      && configManager.getConfig('crowi', 'security:passport-ldap:isEnabled')
+      && passportService.isLdapStrategySetup
+    );
   };
 
   /**
    * return true if enabled but strategy has some problem
    */
   locals.isLdapSetupFailed = function() {
-    const config = crowi.getConfig();
-    return Config.isEnabledPassport(config) && Config.isEnabledPassportLdap(config) && !passportService.isLdapStrategySetup;
+    return (
+      configManager.getConfig('crowi', 'security:isEnabledPassport')
+      && configManager.getConfig('crowi', 'security:passport-ldap:isEnabled')
+      && !passportService.isLdapStrategySetup
+    );
   };
 
   locals.passportSamlLoginEnabled = function() {
@@ -154,8 +158,11 @@ module.exports = function(crowi, app, req, locals) {
       return false;
     }
 
-    const config = crowi.getConfig();
-    return config.crowi['google:clientId'] && config.crowi['google:clientSecret'];
+    const configManager = crowi.configManager;
+    return (
+      configManager.getConfig('crowi', 'google:clientId')
+      && configManager.getConfig('crowi', 'google:clientSecret')
+    );
   };
 
   locals.passportGoogleLoginEnabled = function() {