38 lines
862 B
Go
38 lines
862 B
Go
package miniauth
|
|
|
|
import (
|
|
"regexp"
|
|
|
|
"git.keks.cloud/kekskurse/miniauth/pkg/userstore"
|
|
"git.keks.cloud/kekskurse/miniauth/pkg/utils"
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
type Miniauth struct {
|
|
store userstore.Store
|
|
log zerolog.Logger
|
|
}
|
|
|
|
func NewMiniauth(us userstore.Store) Miniauth {
|
|
m := Miniauth{}
|
|
m.store = us
|
|
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()
|
|
err := m.checkUsernameForRegistration(username)
|
|
if err != nil {
|
|
return utils.WrapError(ErrUserHasInvalideChars, err, log)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (m Miniauth) checkUsernameForRegistration(username string) error {
|
|
reg := regexp.MustCompile("^[a-z0-9]{4,25}$")
|
|
if !reg.MatchString(username) {
|
|
return ErrUserHasInvalideChars
|
|
}
|
|
return nil
|
|
}
|