From 81183d230750b19554bd88a501cfe10d3194509f Mon Sep 17 00:00:00 2001 From: kekskurse Date: Thu, 13 Mar 2025 22:03:10 +0100 Subject: [PATCH] chore: valide mail for registration --- pkg/miniauth/error.go | 1 + pkg/miniauth/miniauth.go | 14 +++++++++++--- pkg/miniauth/miniauth_test.go | 8 ++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/pkg/miniauth/error.go b/pkg/miniauth/error.go index 8ba89c4..0a79738 100644 --- a/pkg/miniauth/error.go +++ b/pkg/miniauth/error.go @@ -6,5 +6,6 @@ var ( ErrUserHasInvalideChars = errors.New("username has invalide chars") ErrUsernameIsTaken = errors.New("username already takebn") ErrPasswordNotComplexEnough = errors.New("password not complex enough") + ErrMailAddressInvalide = errors.New("email address invalide") ErrCantCreateUser = errors.New("cant create user") ) diff --git a/pkg/miniauth/miniauth.go b/pkg/miniauth/miniauth.go index b9a6815..c4b915f 100644 --- a/pkg/miniauth/miniauth.go +++ b/pkg/miniauth/miniauth.go @@ -1,6 +1,7 @@ package miniauth import ( + "net/mail" "regexp" "git.keks.cloud/kekskurse/miniauth/pkg/userstore" @@ -20,8 +21,8 @@ func NewMiniauth(us userstore.Store) Miniauth { return m } -func (m Miniauth) RegisterUser(username string, mail string, password string) error { - log := m.log.With().Str("func", "RegisterUser").Str("username", username).Str("mail", mail).Logger() +func (m Miniauth) RegisterUser(username string, email string, password string) error { + log := m.log.With().Str("func", "RegisterUser").Str("username", username).Str("mail", email).Logger() err := m.checkUsernameForRegistration(username) if err != nil { return utils.WrapError(ErrUserHasInvalideChars, err, log) @@ -32,6 +33,11 @@ func (m Miniauth) RegisterUser(username string, mail string, password string) er return utils.WrapError(ErrPasswordNotComplexEnough, err, log) } + _, err = mail.ParseAddress(email) + if err != nil { + return utils.WrapError(ErrMailAddressInvalide, err, log) + } + id, err := m.store.UserWrite(username, password) if err != nil { return utils.WrapError(ErrCantCreateUser, err, log) @@ -39,11 +45,13 @@ func (m Miniauth) RegisterUser(username string, mail string, password string) er log = log.With().Int64("userid", id).Logger() - err = m.store.MailAdd(mail, id, true) + err = m.store.MailAdd(email, id, true) if err != nil { return utils.WrapError(ErrCantCreateUser, err, log) } + // TODO Send mail + return nil } diff --git a/pkg/miniauth/miniauth_test.go b/pkg/miniauth/miniauth_test.go index 9479e00..8e9af07 100644 --- a/pkg/miniauth/miniauth_test.go +++ b/pkg/miniauth/miniauth_test.go @@ -32,6 +32,14 @@ func TestRegistration(t *testing.T) { exptErr: ErrPasswordNotComplexEnough, exptErrString: "password not complex enough: Password length must be not lower that 15 chars", }, + { + name: "invaloid password", + username: "kekskurse", + password: "abc123d,.,jfhfh", + mail: "mailabd.de", + exptErr: ErrMailAddressInvalide, + exptErrString: "email address invalide: mail: missing '@' or angle-addr", + }, } ma := getMiniAuth(t)