Added a function to change password
This commit is contained in:
parent
92c8ac444f
commit
825bc4d8b2
@ -284,5 +284,36 @@ func (db *T) CreateUser(username, password, name string) (userID int64, err erro
|
||||
err = row.Scan(&userID)
|
||||
return
|
||||
} // }}}
|
||||
func (db *T) ChangePassword(userID int, currentPassword, newPassword string) (changed bool, err error) { // {{{
|
||||
var res sql.Result
|
||||
res, err = db.Conn.Exec(`
|
||||
UPDATE _webservice.user
|
||||
SET
|
||||
"password" = _webservice.password_hash(
|
||||
/* salt in hex */
|
||||
ENCODE(_webservice.gen_random_bytes(16), 'hex'),
|
||||
|
||||
/* password */
|
||||
$3::bytea
|
||||
)
|
||||
WHERE
|
||||
id = $1 AND
|
||||
"password" = _webservice.password_hash(SUBSTRING(password FROM 1 FOR 32), $2::bytea)
|
||||
|
||||
`,
|
||||
userID,
|
||||
currentPassword,
|
||||
newPassword,
|
||||
)
|
||||
|
||||
var rowsAffected int64
|
||||
rowsAffected, err = res.RowsAffected()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
changed = (rowsAffected == 1)
|
||||
return
|
||||
} // }}}
|
||||
|
||||
// vim: foldmethod=marker
|
||||
|
Loading…
Reference in New Issue
Block a user