Explorar el Código

add LDAP enabled mark to login.html

Yuki Takei hace 8 años
padre
commit
6fcf5b5ecb
Se han modificado 4 ficheros con 30 adiciones y 6 borrados
  1. 6 0
      lib/models/config.js
  2. 10 4
      lib/routes/login-passport.js
  3. 5 0
      lib/util/swigFunctions.js
  4. 9 2
      lib/views/login.html

+ 6 - 0
lib/models/config.js

@@ -245,6 +245,12 @@ module.exports = function(crowi) {
     return getValueForCrowiNS(config, key);
   };
 
+  configSchema.statics.isEnabledLdap = function(config)
+  {
+    // TODO impl
+    return false;
+  };
+
   configSchema.statics.isUploadable = function(config)
   {
     var method = crowi.env.FILE_UPLOAD || 'aws';

+ 10 - 4
lib/routes/login-passport.js

@@ -11,7 +11,7 @@ module.exports = function(crowi, app) {
    * @param {*} req
    * @param {*} res
    */
-  const loginSuccess = (req, res, user) => {
+  function loginSuccess(req, res) {
     debug('loginSuccess called');
 
     var jumpTo = req.session.jumpTo;
@@ -33,6 +33,12 @@ module.exports = function(crowi, app) {
     return res.redirect('/login');
   };
 
+  /**
+   * middleware that login with LdapStrategy
+   * @param {*} req
+   * @param {*} res
+   * @param {*} next
+   */
   const loginWithLdap = (req, res, next) => {
     const loginForm = req.body.loginForm;
 
@@ -59,14 +65,14 @@ module.exports = function(crowi, app) {
       req.logIn(user, (err) => {
         if (err) { return next(); }
         else {
-          return loginSuccess(req, res, user);
+          return loginSuccess(req, res);
         }
       });
     })(req, res, next);
   }
 
   /**
-   * login with LocalStrategy action
+   * middleware that login with LocalStrategy
    * @param {*} req
    * @param {*} res
    * @param {*} next
@@ -92,7 +98,7 @@ module.exports = function(crowi, app) {
       req.logIn(user, (err) => {
         if (err) { return next(); }
         else {
-          return loginSuccess(req, res, user);
+          return loginSuccess(req, res);
         }
       });
     })(req, res, next);

+ 5 - 0
lib/util/swigFunctions.js

@@ -24,6 +24,11 @@ module.exports = function(crowi, app, req, locals) {
     return req.csrfToken;
   };
 
+  locals.isEnabledLdap = function() {
+    var config = crowi.getConfig()
+    return Config.isEnabledPassport(config) && Config.isEnabledLdap(config);
+  }
+
   locals.googleLoginEnabled = function() {
     var config = crowi.getConfig()
     return config.crowi['google:clientId'] && config.crowi['google:clientSecret'];

+ 9 - 2
lib/views/login.html

@@ -47,12 +47,19 @@
     </div>
     <form role="form" action="/login" method="post">
       <div class="input-group">
-        <span class="input-group-addon"><i class="fa fa-user"></i></span>
+        <span class="input-group-addon"><i class="fa fa-fw fa-user"></i></span>
         <input type="text" class="form-control" placeholder="Username or E-mail" name="loginForm[username]">
+        {% if isEnabledLdap() %}
+        <span class="input-group-addon">
+          <small class="text-primary">
+            <i class="fa fa-fw fa-check-circle"></i> LDAP
+          </small>
+        </span>
+        {% endif %}
       </div>
 
       <div class="input-group">
-        <span class="input-group-addon"><i class="fa fa-key"></i></span>
+        <span class="input-group-addon"><i class="fa fa-fw fa-key"></i></span>
         <input type="password" class="form-control" placeholder="Password" name="loginForm[password]">
       </div>