chore: check if primary mail is active before login

This commit is contained in:
kekskurse 2025-03-18 16:13:01 +01:00
parent 12d8c145af
commit 4a896c0102
2 changed files with 18 additions and 0 deletions

View file

@ -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
}

View file

@ -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",