From fc79362510d971c4319928b70b1cf1b4071512df Mon Sep 17 00:00:00 2001 From: Kevin Thomas Date: Sat, 27 Nov 2021 23:42:00 -0800 Subject: [PATCH] Add account page --- server/routes/users.js | 27 +++++++++++ src/components/Account.vue | 99 ++++++++++++++++++++++++++++++++++++++ src/components/Admin.vue | 4 +- src/components/AppBar.vue | 10 ++++ src/components/Noise.vue | 4 +- src/components/account.js | 45 +++++++++++++++++ src/components/admin.js | 17 ++++--- src/components/appbar.js | 3 ++ src/components/noise.js | 10 ++++ src/router/index.js | 38 +++++++++------ src/views/AccountView.vue | 15 ++++++ 11 files changed, 247 insertions(+), 25 deletions(-) create mode 100644 src/components/Account.vue create mode 100644 src/components/account.js create mode 100644 src/views/AccountView.vue 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 }}