Register the date of the last login

This commit is contained in:
Las Zenow 2018-04-08 08:39:10 +00:00
parent 5315870dbd
commit 6cd5b1bc5e

View file

@ -1,6 +1,8 @@
package database package database
import ( import (
"time"
log "github.com/cihub/seelog" log "github.com/cihub/seelog"
"bytes" "bytes"
@ -11,11 +13,12 @@ import (
) )
type user struct { type user struct {
ID int `sql:"type:serial"` ID int `sql:"type:serial"`
Username string `sql:"type:varchar(255),unique"` Username string `sql:"type:varchar(255),unique"`
Password []byte Password []byte
Salt []byte Salt []byte
Role string `sql:"type:varchar(255)"` Role string `sql:"type:varchar(255)"`
LastLogin time.Time
} }
func (db *pgDB) AddUser(name string, pass string) error { func (db *pgDB) AddUser(name string, pass string) error {
@ -66,7 +69,18 @@ func (db *pgDB) ValidPassword(name string, pass string) bool {
if err != nil { if err != nil {
return false return false
} }
return bytes.Compare(u.Password, hash) == 0 if bytes.Compare(u.Password, hash) != 0 {
return false
}
_, err = db.sql.Model(&user{}).
Set("last_login = CURRENT_TIMESTAMP").
Where("id = ?", u.ID).
Update()
if err != nil {
log.Error("Error updating last login for ", u.Username, ": ", err)
}
return true
} }
func (db *pgDB) SetPassword(name string, pass string) error { func (db *pgDB) SetPassword(name string, pass string) error {