You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/07/10 08:04:48 UTC

incubator-ignite git commit: IGNITE-843 WIP on profile update.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-843 55eeb8710 -> 68fc3dd7e


IGNITE-843 WIP on profile update.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/68fc3dd7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/68fc3dd7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/68fc3dd7

Branch: refs/heads/ignite-843
Commit: 68fc3dd7eb698dcad09e37a1b63c9ec2063c9b0b
Parents: 55eeb87
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jul 10 13:04:43 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jul 10 13:04:43 2015 +0700

----------------------------------------------------------------------
 .../nodejs/controllers/profile-controller.js    | 53 ++++++-------
 .../web-control-center/nodejs/routes/profile.js | 80 +++++++++++++-------
 .../nodejs/views/profile.jade                   | 10 +--
 3 files changed, 83 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68fc3dd7/modules/web-control-center/nodejs/controllers/profile-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/profile-controller.js b/modules/web-control-center/nodejs/controllers/profile-controller.js
index 11c965e..f6330a7 100644
--- a/modules/web-control-center/nodejs/controllers/profile-controller.js
+++ b/modules/web-control-center/nodejs/controllers/profile-controller.js
@@ -20,8 +20,6 @@ controlCenterModule.controller('profileController', ['$scope', '$alert', '$http'
     
     $scope.profileUser = angular.copy($scope.loggedInUser);
 
-    $scope.editField = null;
-
     $scope.showInfo = function (msg) {
         $scope.showAlert(msg, 'success');
     };
@@ -42,38 +40,41 @@ controlCenterModule.controller('profileController', ['$scope', '$alert', '$http'
     };
 
     $scope.saveUser = function() {
+        var profile = $scope.profileUser;
+
         if ($scope.profileUser) {
-            var userName = $scope.profileUser.username;
-            var oldPass = $scope.profileUser.oldPassword;
-            var newPass = $scope.profileUser.newPassword;
-            var confirm = $scope.profileUser.confirm;
+            var userName = profile.username;
+            var email = profile.email;
+            var oldPassword = profile.oldPassword;
+            var newPassword = profile.newPassword;
+            var confirmPassword = profile.confirmPassword;
+
+            var changeUsername = userName && userName.length > 0 && userName != $scope.loggedInUser.username;
+            var changeEmail = email && email.length > 0 && email != $scope.loggedInUser.email;
 
-            if (userName && oldPass && newPass && confirm &&
-                userName.length > 0 && oldPass.length > 0 && newPass.length > 0 && confirm.length > 0 &&
-                newPass == confirm
-            ) {
-                $http.post('/profile/changePassword', {
-                    _id: $scope.editableUser._id,
-                    pass: $scope.pass1
+            var changePassword = profile.changePassword && oldPassword && newPassword && confirmPassword &&
+                oldPassword.length > 0 && newPassword.length > 0 && confirmPassword.length > 0 && newPassword == confirmPassword;
+
+            if (changeUsername || changeEmail || changePassword) {
+                $http.post('/profile/saveUser', {
+                    _id: profile._id,
+                    changeUsername: changeUsername,
+                    userName: userName,
+                    changeEmail: changeEmail,
+                    email: email,
+                    changePassword: changePassword,
+                    oldPassword: oldPassword,
+                    newPassword: newPassword,
+                    confirmPassword: confirmPassword
                 }).success(function () {
                     $scope.showInfo('Profile saved.');
+
+                    if (changeUsername)
+                        $scope.loggedInUser.username = userName;
                 }).error(function (err) {
                     $scope.showError('Failed to save profile: ' + commonFunctions.errorMessage(err));
                 });
             }
         }
     };
-
-    //$scope.$watch('editField', function(val) {
-    //    if (!angular.equals($scope.editableUser, $scope.savedUser)) {
-    //        $http.post('/profile/saveUser', $scope.editableUser).success(function(updatedUser) {
-    //            angular.copy(updatedUser, $scope.savedUser);
-    //            angular.copy(updatedUser, $scope.editableUser);
-    //
-    //            $scope.showInfo('Profile has been updated');
-    //        }).error(function(err) {
-    //            $scope.showError('Failed to update profile: ' + commonFunctions.errorMessage(err));
-    //        });
-    //    }
-    //});
 }]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68fc3dd7/modules/web-control-center/nodejs/routes/profile.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/profile.js b/modules/web-control-center/nodejs/routes/profile.js
index 71b03af..79c70c5 100644
--- a/modules/web-control-center/nodejs/routes/profile.js
+++ b/modules/web-control-center/nodejs/routes/profile.js
@@ -19,7 +19,7 @@ var router = require('express').Router();
 var db = require('../db');
 var uiUtils = require('../helpers/ui-utils');
 
-router.all('/profile/*', function(req, res, next) {
+router.all('/profile/*', function (req, res, next) {
     var userId = req.body._id;
 
     if (userId != req.currentUserId() && userId != req.user._id)
@@ -31,52 +31,74 @@ router.all('/profile/*', function(req, res, next) {
 /**
  * Get list of user accounts.
  */
-router.get('/', function(req, res) {
+router.get('/', function (req, res) {
     var user_id = req.currentUserId();
 
     db.Account.findById(user_id, function (err, user) {
         if (err)
             return res.status(500).send(err.message);
 
-        res.render('profile', {editableUser: user});
+        res.render('profile');
     });
 });
 
-router.post('/saveUser', function(req, res) {
-    var u = {
-        username: req.body.username
-    }; 
-    
-    db.Account.findByIdAndUpdate(req.body._id, u, {new: true}, function(err, val) {
-        if (err)
-            return res.status(500).send(err);
-        
-        res.json(uiUtils.filterUser(val));
-    })
-});
+router.post('/saveUser', function (req, res) {
+    var params = req.body;
 
-router.post('/changePassword', function(req, res) {
-    var pass = req.body.pass;
-    
-    if (!pass || pass.length == 0)
-        return res.sendStatus(500);
-    
-    db.Account.findById(req.body._id, function(err, user) {
-        if (err)
-            return res.status(500).send(err);
-        
-        user.setPassword(pass, function (err, updatedUser) {
+    if (params.changeUsername || params.changeEmail) {
+        var u = {};
+
+        if (params.changeUsername)
+            u.username = params.userName;
+
+        if (params.changeEmail)
+            u.email = params.email;
+
+        db.Account.findByIdAndUpdate(req.body._id, u, {new: true}, function (err, val) {
             if (err)
                 return res.status(500).send(err);
 
-            updatedUser.save(function(err) {
+            res.json(uiUtils.filterUser(val));
+        })
+    }
+
+    if (params.changeEmail) {
+        // TODO
+    }
+
+    if (params.changePassword) {
+        var oldPassword = params.oldPassword;
+        var newPassword = params.newPassword;
+        var confirmPassword = params.confirmPassword;
+
+        var zz = user.verifyPassword(oldPassword);
+
+        if (!oldPassword || oldPassword.length == 0 || !zz)
+            return res.status(500).send('Wrong value for old password');
+
+        if (!newPassword || newPassword.length == 0)
+            return res.status(500).send('Wrong value for new password');
+
+        if (!confirmPassword || confirmPassword.length == 0 || newPassword != oldPassword)
+            return res.status(500).send('New password does not match confirmation');
+
+        db.Account.findById(params._id, function (err, user) {
+            if (err)
+                return res.status(500).send(err);
+
+            user.setPassword(newPassword, function (err, updatedUser) {
                 if (err)
                     return res.status(500).send(err);
 
-                res.json(uiUtils.filterUser(user));
+                updatedUser.save(function (err) {
+                    if (err)
+                        return res.status(500).send(err);
+
+                    res.json(uiUtils.filterUser(user));
+                });
             });
         });
-    })
+    }
 });
 
 module.exports = router;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/68fc3dd7/modules/web-control-center/nodejs/views/profile.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/profile.jade b/modules/web-control-center/nodejs/views/profile.jade
index f726bc4..83deae2 100644
--- a/modules/web-control-center/nodejs/views/profile.jade
+++ b/modules/web-control-center/nodejs/views/profile.jade
@@ -41,21 +41,21 @@ block container
                                 input.form-control(type='email' ng-model='profileUser.email' placeholder='you@domain.com' required)
                         .details-row
                             label
-                                input(type="checkbox" ng-model='change_password')
+                                input(type="checkbox" ng-model='profileUser.changePassword')
                                 | Change password
-                        div(ng-show='change_password')
+                        div(ng-show='profileUser.changePassword')
                             .details-row
                                 +lbl('Old password:')
                                 .col-sm-4
-                                    input.form-control(ng-show='change_password' type='password', ng-model='profileUser.oldPassword' placeholder='Old password' ng-required='change_password')
+                                    input.form-control(type='password', ng-model='profileUser.oldPassword' placeholder='Old password' ng-required='profileUser.changePassword')
                             .details-row
                                 +lbl('New password:')
                                 .col-sm-4
-                                    input.form-control(ng-show='change_password' type='password', ng-model='profileUser.newPassword' placeholder='New password' ng-required='change_password')
+                                    input.form-control(type='password', ng-model='profileUser.newPassword' placeholder='New password' ng-required='profileUser.changePassword')
                             .details-row
                                 +lbl('Confirm:')
                                 .col-sm-4
-                                    input.form-control(type='password', ng-model='profileUser.confirm' placeholder='Confirm' ng-required='change_password')
+                                    input.form-control(type='password', ng-model='profileUser.confirmPassword' placeholder='Confirm' ng-required='profileUser.changePassword')
                     .col-sm-12.details-row
                         button#save-btn.btn.btn-primary(ng-disabled='profileForm.$invalid' ng-click='saveUser()') Save