diff --git a/client/pages/account.vue b/client/pages/account.vue index 4ce7d1bb..88c294c1 100644 --- a/client/pages/account.vue +++ b/client/pages/account.vue @@ -15,8 +15,8 @@
-

Change Password

-
+

Change Password

+ @@ -60,6 +60,9 @@ export default { }, isRoot() { return this.usertype === 'root' + }, + isGuest() { + return this.usertype === 'guest' } }, methods: { diff --git a/server/controllers/MeController.js b/server/controllers/MeController.js index dd91e59a..00a04a04 100644 --- a/server/controllers/MeController.js +++ b/server/controllers/MeController.js @@ -133,6 +133,10 @@ class MeController { // PATCH: api/me/password updatePassword(req, res) { + if (req.user.isGuest) { + Logger.error(`[MeController] Guest user attempted to change password`, req.user.username) + return res.sendStatus(500) + } this.auth.userChangePassword(req, res) } diff --git a/server/objects/user/User.js b/server/objects/user/User.js index 974ce097..14898554 100644 --- a/server/objects/user/User.js +++ b/server/objects/user/User.js @@ -33,6 +33,9 @@ class User { get isAdmin() { return this.type === 'admin' } + get isGuest() { + return this.type === 'guest' + } get isAdminOrUp() { return this.isAdmin || this.isRoot }