jwt for webapp

This commit is contained in:
ston1th 2018-09-12 00:37:13 +02:00
commit 9d332bbda4
5 changed files with 112 additions and 152 deletions

View file

@ -31,11 +31,6 @@ func (db *DB) GetUser(username string) (u core.User, err error) {
return
}
func (db *DB) UserIsAdmin(username string) bool {
u, _ := db.GetUser(username)
return u.Admin
}
func (db *DB) UserExists(username string) error {
return db.users.Get(username, nil)
}
@ -100,14 +95,14 @@ func (db *DB) CreateUser(username, password string, admin bool) error {
})
}
func (db *DB) Login(username, password string) (err error) {
var u core.User
func (db *DB) Login(username, password string) (u core.User, err error) {
u, err = db.GetUser(username)
if err != nil {
return
}
if u.Locked == 3 {
return errors.New("db: user locked")
err = errors.New("db: user locked")
return
}
if err = bcrypt.CompareHashAndPassword([]byte(u.Password), validatePassword(password)); err != nil {
u.Locked++
@ -115,7 +110,8 @@ func (db *DB) Login(username, password string) (err error) {
if err != nil {
return
}
return errors.New("db: wrong login")
err = errors.New("db: wrong login")
return
}
if u.Locked > 0 {
u.Locked = 0