first working version

This commit is contained in:
ston1th 2022-07-10 15:51:31 +02:00
commit c9dfecc519
21 changed files with 296 additions and 178 deletions

View file

@ -62,7 +62,7 @@ func (db *DB) UserExists(username string) error {
return db.store.Get(userPrefix+username, nil)
}
func (db *DB) CreateUser(username, email, password string, admin bool) error {
func (db *DB) CreateUser(username, email, password string, admin, disabled bool) error {
username = userRe.ReplaceAllString(username, "")
if err := db.UserExists(username); err == nil {
return errUserExists
@ -77,18 +77,19 @@ func (db *DB) CreateUser(username, email, password string, admin bool) error {
Password: string(hash),
Created: strconv.Itoa(int(jwt.Now())),
Admin: admin,
Disabled: disabled,
})
}
func (db *DB) Login(username, password string) (u *core.User, err error) {
if username == defUser && !db.admin {
err = errors.New("db: user disabled")
return
}
u, err = db.GetUser(username)
if err != nil {
return
}
if u.Disabled {
err = errors.New("db: user disabled")
return
}
if u.Locked == 3 {
err = errUserLocked
return
@ -185,7 +186,7 @@ func (db *DB) ResetAdmin() error {
return db.UpdateUserPassword(defUser, defPassword)
}
func (db *DB) AdminUpdateUser(username, password string, admin bool) error {
func (db *DB) AdminUpdateUser(username, password string, admin, disabled bool) error {
if username == defUser && !admin {
return errors.New("user '" + defUser + "' cannot lose admin privileges")
}
@ -194,6 +195,7 @@ func (db *DB) AdminUpdateUser(username, password string, admin bool) error {
return err
}
u.Admin = admin
u.Disabled = disabled
if password != "" {
hash, err := bcrypt.GenerateFromPassword(validatePassword(password), bcryptCost)
if err != nil {