Преглед изворни кода

Merge pull request #4125 from weseek/imprv/gw-7060-into-topic-brunch

Imprv/gw 7060 into topic brunch
cao пре 4 година
родитељ
комит
fe31e55e8e
2 измењених фајлова са 14 додато и 0 уклоњено
  1. 2 0
      src/server/middlewares/password-reset.js
  2. 12 0
      src/server/routes/apiv3/forgot-password.js

+ 2 - 0
src/server/middlewares/password-reset.js

@@ -1,6 +1,8 @@
 module.exports = (crowi, app) => {
   const PasswordResetOrder = crowi.model('PasswordResetOrder');
 
+  // need refuctoring with http-error by GW-7091
+
   return async(req, res, next) => {
     const { token } = req.params;
 

+ 12 - 0
src/server/routes/apiv3/forgot-password.js

@@ -49,6 +49,13 @@ module.exports = (crowi) => {
     const appUrl = appService.getSiteUrl();
 
     try {
+      const user = await User.findOne({ email });
+
+      // when the user is not found or active
+      if (user == null || user.status !== 2) {
+        return res.apiv3Err('User not found or active');
+      }
+
       const passwordResetOrderData = await PasswordResetOrder.createPasswordResetOrder(email);
       const url = new URL(`/forgot-password/${passwordResetOrderData.token}`, appUrl);
       const oneTimeUrl = url.href;
@@ -70,6 +77,11 @@ module.exports = (crowi) => {
 
     const user = await User.findOne({ email });
 
+    // when the user is not found or active
+    if (user == null || user.status !== 2) {
+      return res.apiv3Err('update-password-failed');
+    }
+
     try {
       const userData = await user.updatePassword(newPassword);
       const serializedUserData = serializeUserSecurely(userData);