@ -23,6 +23,7 @@ const validator = {
Template . userFormsLayout . onCreated ( function ( ) {
const instance = this ;
instance . currentSetting = new ReactiveVar ( ) ;
instance . isLoading = new ReactiveVar ( false ) ;
Meteor . subscribe ( 'setting' , {
onReady ( ) {
@ -47,6 +48,10 @@ Template.userFormsLayout.helpers({
return Template . instance ( ) . currentSetting . get ( ) ;
} ,
isLoading ( ) {
return Template . instance ( ) . isLoading . get ( ) ;
} ,
afterBodyStart ( ) {
return currentSetting . customHTMLafterBodyStart ;
} ,
@ -89,7 +94,11 @@ Template.userFormsLayout.events({
} ,
'click #at-btn' ( event , instance ) {
if ( FlowRouter . getRouteName ( ) === 'atSignIn' ) {
authentication ( event , instance ) ;
instance . isLoading . set ( true ) ;
authentication ( event , instance )
. then ( ( ) => {
instance . isLoading . set ( false ) ;
} ) ;
}
} ,
} ) ;
@ -104,11 +113,11 @@ async function authentication(event, instance) {
const match = $ ( '#at-field-username_and_email' ) . val ( ) ;
const password = $ ( '#at-field-password' ) . val ( ) ;
if ( ! match || ! password ) return ;
if ( ! match || ! password ) return undefined ;
const result = await getAuthenticationMethod ( instance . currentSetting . get ( ) , match ) ;
if ( result === 'password' ) return ;
if ( result === 'password' ) return undefined ;
// Stop submit #at-pwd-form
event . preventDefault ( ) ;
@ -116,19 +125,21 @@ async function authentication(event, instance) {
switch ( result ) {
case 'ldap' :
Meteor . loginWithLDAP ( match , password , function ( ) {
FlowRouter . go ( '/' ) ;
return new Promise ( ( resolve ) => {
Meteor . loginWithLDAP ( match , password , function ( ) {
resolve ( FlowRouter . go ( '/' ) ) ;
} ) ;
} ) ;
break ;
case 'cas' :
Meteor . loginWithCas ( function ( ) {
FlowRouter . go ( '/' ) ;
return new Promise ( ( resolve ) => {
Meteor . loginWithCas ( match , password , function ( ) {
resolve ( FlowRouter . go ( '/' ) ) ;
} ) ;
} ) ;
break ;
default :
b reak ;
return undefined ;
}
}