Browse Source

fix: prevent password reset on disabled account

Nicolas Giard 9 months ago
parent
commit
b9fb17d4d4
1 changed files with 7 additions and 0 deletions
  1. 7 0
      server/models/users.js

+ 7 - 0
server/models/users.js

@@ -499,6 +499,10 @@ module.exports = class User extends Model {
     })
     })
 
 
     if (usr) {
     if (usr) {
+      if (!usr.isActive) {
+        throw new WIKI.Error.AuthAccountBanned()
+      }
+      
       await WIKI.models.users.query().patch({
       await WIKI.models.users.query().patch({
         password: newPassword,
         password: newPassword,
         mustChangePwd: false
         mustChangePwd: false
@@ -527,6 +531,9 @@ module.exports = class User extends Model {
     if (!usr) {
     if (!usr) {
       WIKI.logger.debug(`Password reset attempt on nonexistant local account ${email}: [DISCARDED]`)
       WIKI.logger.debug(`Password reset attempt on nonexistant local account ${email}: [DISCARDED]`)
       return
       return
+    } else if (!usr.isActive) {
+      WIKI.logger.debug(`Password reset attempt on disabled local account ${email}: [DISCARDED]`)
+      return
     }
     }
     const resetToken = await WIKI.models.userKeys.generateToken({
     const resetToken = await WIKI.models.userKeys.generateToken({
       userId: usr.id,
       userId: usr.id,