diff --git a/server/routes/users.js b/server/routes/users.js index 9efd0eb..78c5fbb 100644 --- a/server/routes/users.js +++ b/server/routes/users.js @@ -232,6 +232,33 @@ router.patch('/users/dark-mode', (req, res) => { }) }) +router.patch('/users/password', (req, res) => { + if (!req.user) { + return res.sendStatus(401) + } + + const salt = crypto.randomBytes(16) + crypto.pbkdf2(req.body.password, salt, 10000, 32, 'sha256', (err, hashedPassword) => { + if (err) { + logger.error(err) + return res.sendStatus(500) + } + + db.run('UPDATE users SET hashed_password = ?, salt = ? WHERE id = ?', [ + hashedPassword, + salt, + req.user.id + ], (err) => { + if (err) { + logger.error(err) + return res.sendStatus(500) + } + + return res.sendStatus(200) + }) + }) +}) + router.delete('/users/:userId', (req, res) => { if (!req.user) { return res.sendStatus(401) diff --git a/src/components/Account.vue b/src/components/Account.vue new file mode 100644 index 0000000..25841d1 --- /dev/null +++ b/src/components/Account.vue @@ -0,0 +1,99 @@ + + + diff --git a/src/components/Admin.vue b/src/components/Admin.vue index b87f8c1..8a01e1b 100644 --- a/src/components/Admin.vue +++ b/src/components/Admin.vue @@ -16,7 +16,7 @@ Register User @@ -137,7 +137,7 @@ v-model="snackbar" timeout="3000" > - {{ updateText }} + {{ snackbarText }}