summaryrefslogtreecommitdiffstats
path: root/client/components/main
diff options
context:
space:
mode:
Diffstat (limited to 'client/components/main')
-rw-r--r--client/components/main/layouts.js48
1 files changed, 32 insertions, 16 deletions
diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js
index 1d3c3690..6d1f95d4 100644
--- a/client/components/main/layouts.js
+++ b/client/components/main/layouts.js
@@ -6,7 +6,23 @@ const i18nTagToT9n = (i18nTag) => {
return i18nTag;
};
+const validator = {
+ set: function(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.onRendered(() => {
+ AccountsTemplates.state.form.keys = new Proxy(AccountsTemplates.state.form.keys, validator);
+
const i18nTag = navigator.language;
if (i18nTag) {
T9n.setLanguage(i18nTagToT9n(i18nTag));
@@ -65,37 +81,37 @@ Template.userFormsLayout.events({
}
});
},
- 'submit form'(event) {
- const connectionMethod = $('.select-connection').val();
-
+ '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 (connectionMethod === 'default') {
+ if (authenticationMethodSelected === 'password') {
return;
}
- // TODO : find a way to block "submit #at-pwd-form" of the at_pwd_form.js
+ // Stop submit #at-pwd-form
+ event.preventDefault();
+ event.stopImmediatePropagation();
- const inputs = event.target.getElementsByTagName('input');
-
- const email = inputs.namedItem('at-field-username_and_email').value;
- const password = inputs.namedItem('at-field-password').value;
+ const email = $('#at-field-username_and_email').val();
+ const password = $('#at-field-password').val();
// Ldap account
- if (connectionMethod === 'ldap') {
+ if (authenticationMethodSelected === 'ldap') {
// Check if the user can use the ldap connection
- Meteor.subscribe('user-connection-method', email, {
+ Meteor.subscribe('user-authenticationMethod', email, {
onReady() {
- const ldap = Users.findOne();
-
- if (ldap) {
+ 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('/');
- } else {
- return error;
}
+ return error;
});
}
return this.stop();