Compare commits
2 Commits
f28b5188a6
...
ad1cb56a06
Author | SHA1 | Date | |
---|---|---|---|
ad1cb56a06 | |||
825bc4d8b2 |
@ -286,5 +286,36 @@ func (db *T) CreateUser(username, password, name string) (userID int64, err erro
|
|||||||
err = row.Scan(&userID)
|
err = row.Scan(&userID)
|
||||||
return
|
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
|
// vim: foldmethod=marker
|
||||||
|
Loading…
Reference in New Issue
Block a user