Yuki Takei 6 лет назад
Родитель
Сommit
dcbe04659f
3 измененных файлов с 28 добавлено и 23 удалено
  1. 9 7
      src/client/styles/scss/_login.scss
  2. 1 10
      src/server/util/swigFunctions.js
  3. 18 6
      src/server/views/login.html

+ 9 - 7
src/client/styles/scss/_login.scss

@@ -94,13 +94,7 @@
     }
     }
   }
   }
 
 
-  .collapse-external-auth {
-    overflow: hidden;
-    &:not(.in) {
-      height: 0;
-      padding: 0 !important;
-    }
-
+  .external-auth {
     form {
     form {
       flex: 1;
       flex: 1;
       @media (min-width: 350px) {
       @media (min-width: 350px) {
@@ -112,6 +106,14 @@
     }
     }
   }
   }
 
 
+  .collapse-external-auth {
+    overflow: hidden;
+    &:not(.in) {
+      height: 0;
+      padding: 0 !important;
+    }
+  }
+
   // button style
   // button style
   .btn-login.fcbtn,
   .btn-login.fcbtn,
   .btn-register.fcbtn,
   .btn-register.fcbtn,

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

@@ -69,6 +69,7 @@ module.exports = function(crowi, app, req, locals) {
   locals.aclService = aclService;
   locals.aclService = aclService;
   locals.fileUploadService = fileUploadService;
   locals.fileUploadService = fileUploadService;
   locals.customizeService = customizeService;
   locals.customizeService = customizeService;
+  locals.passportService = passportService;
   locals.pathUtils = pathUtils;
   locals.pathUtils = pathUtils;
 
 
   locals.noCdn = function() {
   locals.noCdn = function() {
@@ -96,16 +97,6 @@ module.exports = function(crowi, app, req, locals) {
     return cdnResourcesService.getHighlightJsStyleTag(styleName);
     return cdnResourcesService.getHighlightJsStyleTag(styleName);
   };
   };
 
 
-  /**
-   * return true if enabled and strategy has been setup successfully
-   */
-  locals.isLdapSetup = function() {
-    return (
-      configManager.getConfig('crowi', 'security:passport-ldap:isEnabled')
-      && passportService.isLdapStrategySetup
-    );
-  };
-
   /**
   /**
    * return true if enabled but strategy has some problem
    * return true if enabled but strategy has some problem
    */
    */

+ 18 - 6
src/server/views/login.html

@@ -100,14 +100,21 @@
       </div>
       </div>
     </div>
     </div>
 
 
+
+    {% set isLocalOrLdapStrategiesEnabled = passportService.isLocalStrategySetup || passportService.isLdapStrategySetup %}
+    {% set isExternalAuthCollapsible = isLocalOrLdapStrategiesEnabled %}
+    {% set isRegistrationEnabled = passportService.isLocalStrategySetup && getConfig('crowi', 'security:registrationMode') != 'Closed' %}
+
     <div class="login-dialog p-b-10 col-sm-offset-4 col-sm-4 flipper {% if req.query.register or req.body.registerForm or isRegistering %}to-flip{% endif %}" id="login-dialog">
     <div class="login-dialog p-b-10 col-sm-offset-4 col-sm-4 flipper {% if req.query.register or req.body.registerForm or isRegistering %}to-flip{% endif %}" id="login-dialog">
 
 
       <div class="front">
       <div class="front">
+
+        {% if isLocalOrLdapStrategiesEnabled %}
         <form role="form" action="/login" method="post">
         <form role="form" action="/login" method="post">
           <div class="input-group">
           <div class="input-group">
             <span class="input-group-addon"><i class="icon-user"></i></span>
             <span class="input-group-addon"><i class="icon-user"></i></span>
             <input type="text" class="form-control" placeholder="Username or E-mail" name="loginForm[username]">
             <input type="text" class="form-control" placeholder="Username or E-mail" name="loginForm[username]">
-            {% if isLdapSetup() %}
+            {% if passportService.isLdapStrategySetup %}
             <span class="input-group-addon">
             <span class="input-group-addon">
               <small class="text-success">
               <small class="text-success">
                 <i class="icon-fw icon-check"></i> LDAP
                 <i class="icon-fw icon-check"></i> LDAP
@@ -129,6 +136,7 @@
             </button>
             </button>
           </div>
           </div>
         </form>
         </form>
+        {% endif %}
 
 
         {% if (
         {% if (
           getConfig('crowi', 'security:passport-google:isEnabled') ||
           getConfig('crowi', 'security:passport-google:isEnabled') ||
@@ -140,7 +148,7 @@
           getConfig('crowi', 'security:passport-basic:isEnabled')
           getConfig('crowi', 'security:passport-basic:isEnabled')
         ) %}
         ) %}
         <hr class="mb-1">
         <hr class="mb-1">
-        <div id="external-auth" class="collapse collapse-external-auth collapse-anchor">
+        <div id="external-auth" class="external-auth {% if isExternalAuthCollapsible %}collapse collapse-external-auth collapse-anchor{% endif %}">
           <div class="spacer"></div>
           <div class="spacer"></div>
           <div class="d-flex flex-row justify-content-between flex-wrap">
           <div class="d-flex flex-row justify-content-between flex-wrap">
             {% if getConfig('crowi', 'security:passport-google:isEnabled') %}
             {% if getConfig('crowi', 'security:passport-google:isEnabled') %}
@@ -218,7 +226,7 @@
         <hr class="mt-2 mb-0">
         <hr class="mt-2 mb-0">
         <div class="text-center">
         <div class="text-center">
           <button class="collapse-anchor btn btn-xs btn-collapse-external-auth mb-3"
           <button class="collapse-anchor btn btn-xs btn-collapse-external-auth mb-3"
-              data-toggle="collapse" data-target="#external-auth" aria-expanded="false" aria-controls="external-auth">
+              data-toggle="{% if isExternalAuthCollapsible %}collapse{% endif %}" data-target="#external-auth" aria-expanded="false" aria-controls="external-auth">
             External Auth
             External Auth
           </button>
           </button>
         </div>
         </div>
@@ -226,6 +234,7 @@
         <hr>
         <hr>
         {% endif %}
         {% endif %}
 
 
+        {% if isExternalAuthCollapsible %}
         <script>
         <script>
           const isMobile = /iphone|ipad|android/.test(window.navigator.userAgent.toLowerCase());
           const isMobile = /iphone|ipad|android/.test(window.navigator.userAgent.toLowerCase());
 
 
@@ -240,10 +249,11 @@
             );
             );
           }
           }
         </script>
         </script>
+        {% endif %}
 
 
         <div class="row">
         <div class="row">
           <div class="col-xs-12 text-right">
           <div class="col-xs-12 text-right">
-            {% if getConfig('crowi', 'security:registrationMode') != 'Closed' %}
+            {% if isRegistrationEnabled %}
             <a href="#register" id="register" class="link-switch">
             <a href="#register" id="register" class="link-switch">
               <i class="ti-check-box"></i> {{ t('Sign up is here') }}
               <i class="ti-check-box"></i> {{ t('Sign up is here') }}
             </a>
             </a>
@@ -252,10 +262,11 @@
             {% endif %}
             {% endif %}
           </div>
           </div>
         </div>
         </div>
+
       </div>
       </div>
 
 
 
 
-      {% if getConfig('crowi', 'security:registrationMode') != 'Closed' %}
+      {% if isRegistrationEnabled %}
       <div class="back">
       <div class="back">
         {% if getConfig('crowi', 'security:registrationMode') == 'Restricted' %}
         {% if getConfig('crowi', 'security:registrationMode') == 'Restricted' %}
         <p class="alert alert-warning">
         <p class="alert alert-warning">
@@ -317,8 +328,9 @@
             </a>
             </a>
           </div>
           </div>
         </div>
         </div>
+
       </div>
       </div>
-      {% endif %} {# if registrationMode == Closed #}
+      {% endif %} {# if isRegistrationEnabled id false #}
 
 
       <a href="https://growi.org" class="link-growi-org">
       <a href="https://growi.org" class="link-growi-org">
         <span class="growi">GROWI</span>.<span class="org">ORG
         <span class="growi">GROWI</span>.<span class="org">ORG