diff --git a/pkg/miniauth/miniauth.go b/pkg/miniauth/miniauth.go index 25436d1..c135c22 100644 --- a/pkg/miniauth/miniauth.go +++ b/pkg/miniauth/miniauth.go @@ -85,6 +85,16 @@ func (m Miniauth) UserLogin(username, password string) error { return utils.WrapError(ErrLoginFailed, err, log) } + if !m.config.LoginWithNotApprovedMail { + mail, err := m.store.MailGetPrimaryForUsername(username) + if err != nil { + return utils.WrapError(ErrLoginFailed, err, log) + } + + if !mail.IsValidated { + return utils.WrapError(ErrLoginFailed, errors.New("mail is not validated"), log) + } + } return nil } diff --git a/pkg/miniauth/miniauth_test.go b/pkg/miniauth/miniauth_test.go index d8b43a7..a75ee77 100644 --- a/pkg/miniauth/miniauth_test.go +++ b/pkg/miniauth/miniauth_test.go @@ -200,6 +200,14 @@ func TestLogin(t *testing.T) { name: "login-successfull", username: "kekskurser", password: "oDzry!!!YPEtHuofKE9hnea8TLTe2Doabi6ddy", + config: MiniauthConfig{LoginWithNotApprovedMail: true}, + }, + { + name: "login-failed-mail-not-approved", + username: "kekskurser", + password: "oDzry!!!YPEtHuofKE9hnea8TLTe2Doabi6ddy", + ExpectErr: ErrLoginFailed, + EcpectErrString: "cant login: mail is not validated", }, { name: "login-failed-user-not-found",