@@ -600,16 +600,29 @@ func ExternalUserLogin(user *User, login, password string, source *LoginSource,
600
600
return nil , ErrLoginSourceNotActived
601
601
}
602
602
603
+ var err error
603
604
switch source .Type {
604
605
case LoginLDAP , LoginDLDAP :
605
- return LoginViaLDAP (user , login , password , source , autoRegister )
606
+ user , err = LoginViaLDAP (user , login , password , source , autoRegister )
606
607
case LoginSMTP :
607
- return LoginViaSMTP (user , login , password , source .ID , source .Cfg .(* SMTPConfig ), autoRegister )
608
+ user , err = LoginViaSMTP (user , login , password , source .ID , source .Cfg .(* SMTPConfig ), autoRegister )
608
609
case LoginPAM :
609
- return LoginViaPAM (user , login , password , source .ID , source .Cfg .(* PAMConfig ), autoRegister )
610
+ user , err = LoginViaPAM (user , login , password , source .ID , source .Cfg .(* PAMConfig ), autoRegister )
611
+ default :
612
+ return nil , ErrUnsupportedLoginType
613
+ }
614
+
615
+ if err != nil {
616
+ return nil , err
617
+ }
618
+
619
+ if ! user .IsActive {
620
+ return nil , ErrUserInactive {user .ID , user .Name }
621
+ } else if user .ProhibitLogin {
622
+ return nil , ErrUserProhibitLogin {user .ID , user .Name }
610
623
}
611
624
612
- return nil , ErrUnsupportedLoginType
625
+ return user , nil
613
626
}
614
627
615
628
// UserSignIn validates user name and password.
@@ -645,6 +658,12 @@ func UserSignIn(username, password string) (*User, error) {
645
658
switch user .LoginType {
646
659
case LoginNoType , LoginPlain , LoginOAuth2 :
647
660
if user .IsPasswordSet () && user .ValidatePassword (password ) {
661
+ if ! user .IsActive {
662
+ return nil , ErrUserInactive {user .ID , user .Name }
663
+ } else if user .ProhibitLogin {
664
+ return nil , ErrUserProhibitLogin {user .ID , user .Name }
665
+ }
666
+
648
667
return user , nil
649
668
}
650
669
0 commit comments