From 6cd5b1bc5e6bdbfeb0734d4c8cb9fcc1452ef710 Mon Sep 17 00:00:00 2001 From: Las Zenow Date: Sun, 8 Apr 2018 08:39:10 +0000 Subject: [PATCH] Register the date of the last login --- lib/database/users.go | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/lib/database/users.go b/lib/database/users.go index 66e5ed8..419b930 100644 --- a/lib/database/users.go +++ b/lib/database/users.go @@ -1,6 +1,8 @@ package database import ( + "time" + log "github.com/cihub/seelog" "bytes" @@ -11,11 +13,12 @@ import ( ) type user struct { - ID int `sql:"type:serial"` - Username string `sql:"type:varchar(255),unique"` - Password []byte - Salt []byte - Role string `sql:"type:varchar(255)"` + ID int `sql:"type:serial"` + Username string `sql:"type:varchar(255),unique"` + Password []byte + Salt []byte + Role string `sql:"type:varchar(255)"` + LastLogin time.Time } 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 { 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 {