mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-04-07 08:52:21 +00:00
Reformatted code across multiple modules, standardizing string quotes, indentation, and spacing. Improved readability by restructuring blocks and aligning object properties consistently. These changes ensure better code maintainability and follow standard conventions. Signed-off-by: Toby Liddicoat <toby@codesure.co.uk>
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
const { BeanModel } = require("redbean-node/dist/bean-model");
|
|
const passwordHash = require("../password-hash");
|
|
const { R } = require("redbean-node");
|
|
const jwt = require("jsonwebtoken");
|
|
const {
|
|
shake256,
|
|
SHAKE256_LENGTH,
|
|
} = require("../util-server");
|
|
|
|
class User extends BeanModel {
|
|
/**
|
|
* Reset user password
|
|
* Fix #1510, as in the context reset-password.js, there is no auto model mapping. Call this static function instead.
|
|
* @param {number} userID ID of user to update
|
|
* @param {string} newPassword Users new password
|
|
* @returns {Promise<void>}
|
|
*/
|
|
static async resetPassword(userID, newPassword) {
|
|
await R.exec("UPDATE `user` SET password = ? WHERE id = ? ", [
|
|
passwordHash.generate(newPassword),
|
|
userID,
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Reset this users password
|
|
* @param {string} newPassword Users new password
|
|
* @returns {Promise<void>}
|
|
*/
|
|
async resetPassword(newPassword) {
|
|
const hashedPassword = passwordHash.generate(newPassword);
|
|
|
|
await R.exec("UPDATE `user` SET password = ? WHERE id = ? ", [
|
|
hashedPassword,
|
|
this.id,
|
|
]);
|
|
|
|
this.password = hashedPassword;
|
|
}
|
|
|
|
/**
|
|
* Create a new JWT for a user
|
|
* @param {User} user The User to create a JsonWebToken for
|
|
* @param {string} jwtSecret The key used to sign the JsonWebToken
|
|
* @returns {string} the JsonWebToken as a string
|
|
*/
|
|
static createJWT(user, jwtSecret) {
|
|
return jwt.sign({
|
|
username: user.username,
|
|
h: shake256(user.password, SHAKE256_LENGTH),
|
|
}, jwtSecret);
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = User;
|