浏览代码

Removes the dropdown for the authentication method

guillaume 6 年之前
父节点
当前提交
72e905675d

+ 0 - 1
client/components/main/layouts.jade

@@ -23,7 +23,6 @@ template(name="userFormsLayout")
         br
         br
     section.auth-dialog
     section.auth-dialog
       +Template.dynamic(template=content)
       +Template.dynamic(template=content)
-      +connectionMethod
       if isCas
       if isCas
         .at-form
         .at-form
           button#cas(class='at-btn submit' type='submit') {{casSignInLabel}}
           button#cas(class='at-btn submit' type='submit') {{casSignInLabel}}

+ 41 - 49
client/components/main/layouts.js

@@ -6,29 +6,14 @@ const i18nTagToT9n = (i18nTag) => {
   return i18nTag;
   return i18nTag;
 };
 };
 
 
-const validator = {
-  set(obj, prop, value) {
-    if (prop === 'state' && value !== 'signIn') {
-      $('.at-form-authentication').hide();
-    } else if (prop === 'state' && value === 'signIn') {
-      $('.at-form-authentication').show();
-    }
-    // The default behavior to store the value
-    obj[prop] = value;
-    // Indicate success
-    return true;
-  },
-};
-
-Template.userFormsLayout.onCreated(() => {
+Template.userFormsLayout.onCreated(function() {
+  Meteor.call('getDefaultAuthenticationMethod', (error, result) => {
+    this.data.defaultAuthenticationMethod = new ReactiveVar(error ? undefined : result);
+  });
   Meteor.subscribe('setting');
   Meteor.subscribe('setting');
-
 });
 });
 
 
 Template.userFormsLayout.onRendered(() => {
 Template.userFormsLayout.onRendered(() => {
-
-  AccountsTemplates.state.form.keys = new Proxy(AccountsTemplates.state.form.keys, validator);
-
   const i18nTag = navigator.language;
   const i18nTag = navigator.language;
   if (i18nTag) {
   if (i18nTag) {
     T9n.setLanguage(i18nTagToT9n(i18nTag));
     T9n.setLanguage(i18nTagToT9n(i18nTag));
@@ -101,13 +86,11 @@ Template.userFormsLayout.events({
       }
       }
     });
     });
   },
   },
-  'click #at-btn'(event) {
-    /* All authentication method can be managed/called here.
-       !! DON'T FORGET to correctly fill the fields of the user during its creation if necessary authenticationMethod : String !!
-    */
-    const authenticationMethodSelected = $('.select-authentication').val();
-    // Local account
-    if (authenticationMethodSelected === 'password') {
+  'click #at-btn'(event, instance) {
+    const email = $('#at-field-username_and_email').val();
+    const password = $('#at-field-password').val();
+
+    if (FlowRouter.getRouteName() !== 'atSignIn' || password === '' || email === '') {
       return;
       return;
     }
     }
 
 
@@ -115,29 +98,11 @@ Template.userFormsLayout.events({
     event.preventDefault();
     event.preventDefault();
     event.stopImmediatePropagation();
     event.stopImmediatePropagation();
 
 
-    const email = $('#at-field-username_and_email').val();
-    const password = $('#at-field-password').val();
-
-    // Ldap account
-    if (authenticationMethodSelected === 'ldap') {
-      // Check if the user can use the ldap connection
-      Meteor.subscribe('user-authenticationMethod', email, {
-        onReady() {
-          const user = Users.findOne();
-          if (user === undefined || user.authenticationMethod === 'ldap') {
-            // Use the ldap connection package
-            Meteor.loginWithLDAP(email, password, function(error) {
-              if (!error) {
-                // Connection
-                return FlowRouter.go('/');
-              }
-              return error;
-            });
-          }
-          return this.stop();
-        },
-      });
-    }
+    Meteor.subscribe('user-authenticationMethod', email, {
+      onReady() {
+        return authentication.call(this, instance, email, password);
+      },
+    });
   },
   },
 });
 });
 
 
@@ -146,3 +111,30 @@ Template.defaultLayout.events({
     Modal.close();
     Modal.close();
   },
   },
 });
 });
+
+function authentication(instance, email, password) {
+  const user = Users.findOne();
+
+  // Authentication with password
+  if (user && user.authenticationMethod === 'password') {
+    $('#at-pwd-form').submit();
+    return this.stop();
+  }
+
+  const authenticationMethod = user ? 
+    user.authenticationMethod :
+    instance.data.defaultAuthenticationMethod.get();
+
+  // Authentication with LDAP
+  if (authenticationMethod === 'ldap') {
+    // Use the ldap connection package
+    Meteor.loginWithLDAP(email, password, function(error) {
+      if (!error) {
+        return FlowRouter.go('/');
+      }
+      return error;
+    });
+  }
+
+  return this.stop();
+}

+ 0 - 6
client/components/settings/connectionMethod.jade

@@ -1,6 +0,0 @@
-template(name='connectionMethod')
-  div.at-form-authentication
-    label {{_ 'authentication-method'}}
-    select.select-authentication
-        each authentications
-            option(value="{{value}}") {{_ value}}

+ 0 - 34
client/components/settings/connectionMethod.js

@@ -1,34 +0,0 @@
-Template.connectionMethod.onCreated(function() {
-  this.authenticationMethods = new ReactiveVar([]);
-
-  Meteor.call('getAuthenticationsEnabled', (_, result) => {
-    if (result) {
-      // TODO : add a management of different languages
-      // (ex {value: ldap, text: TAPi18n.__('ldap', {}, T9n.getLanguage() || 'en')})
-      this.authenticationMethods.set([
-        {value: 'password'},
-        // Gets only the authentication methods availables
-        ...Object.entries(result).filter((e) => e[1]).map((e) => ({value: e[0]})),
-      ]);
-    }
-
-    // If only the default authentication available, hides the select boxe
-    const content = $('.at-form-authentication');
-    if (!(this.authenticationMethods.get().length > 1)) {
-      content.hide();
-    } else {
-      content.show();
-    }
-  });
-});
-
-Template.connectionMethod.onRendered(() => {
-  // Moves the select boxe in the first place of the at-pwd-form div
-  $('.at-form-authentication').detach().prependTo('.at-pwd-form');
-});
-
-Template.connectionMethod.helpers({
-  authentications() {
-    return Template.instance().authenticationMethods.get();
-  },
-});