From dcb68d62e0cea63bc0b22a8f5423e717ca29c149 Mon Sep 17 00:00:00 2001
From: Gabriel Ruschel <grc15@inf.ufpr.br>
Date: Thu, 14 Dec 2017 14:36:45 -0200
Subject: [PATCH] Password change on update

---
 src/libs/routes/user.js | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/libs/routes/user.js b/src/libs/routes/user.js
index 898e7107..c0bdd91a 100644
--- a/src/libs/routes/user.js
+++ b/src/libs/routes/user.js
@@ -208,6 +208,8 @@ userApp.put('/:id', passport.authenticate('bearer', { session: false }), (req, r
       }});
     }
 
+    console.log(req.body);
+
     user.email = req.body.email || user.email;
     user.name = req.body.name || user.name;
     user.nickname = req.body.nickname || user.nickname || user.name;
@@ -226,6 +228,23 @@ userApp.put('/:id', passport.authenticate('bearer', { session: false }), (req, r
     user.citesegment = req.body.citesegment || user.citesegment;
     user.citerole = req.body.citerole || user.citerole;
 
+    // console.log(user.checkPassword(req.body.password));
+    if ((req.body.password) && (req.body.newpassword)) {
+        if (req.body.password != req.body.newpassword) {
+            if (user.checkPassword(req.body.password)) {
+                user.password = req.body.newpassword;
+            } else {
+                return next({err: {
+                    message: 'A senha atual está incorreta'
+                }});
+            }
+        } else {
+            return next({err: {
+                message: 'A nova senha é a mesma da senha atual'
+            }});
+        }
+    }
+
     user.save(err => {
       if(err) {
         log.error(err);
@@ -235,7 +254,7 @@ userApp.put('/:id', passport.authenticate('bearer', { session: false }), (req, r
       delete u.hashedPassword;
       delete u.salt;
       res.json({user: u});
-    }) 
+    })
   })
 });
 
-- 
GitLab