diff --git a/modules/users/client/controllers/settings.client.controller.js b/modules/users/client/controllers/settings.client.controller.js deleted file mode 100644 index 70b16c5151..0000000000 --- a/modules/users/client/controllers/settings.client.controller.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -angular.module('users').controller('SettingsController', ['$scope', '$http', '$location', 'Users', 'Authentication', - function($scope, $http, $location, Users, Authentication) { - $scope.user = Authentication.user; - - // If user is not signed in then redirect back home - if (!$scope.user) $location.path('/'); - - // Check if there are additional accounts - $scope.hasConnectedAdditionalSocialAccounts = function(provider) { - for (var i in $scope.user.additionalProvidersData) { - return true; - } - - return false; - }; - - // Check if provider is already in use with current user - $scope.isConnectedSocialAccount = function(provider) { - return $scope.user.provider === provider || ($scope.user.additionalProvidersData && $scope.user.additionalProvidersData[provider]); - }; - - // Remove a user social account - $scope.removeUserSocialAccount = function(provider) { - $scope.success = $scope.error = null; - - $http.delete('/api/users/accounts', { - params: { - provider: provider - } - }).success(function(response) { - // If successful show success message and clear form - $scope.success = true; - $scope.user = Authentication.user = response; - }).error(function(response) { - $scope.error = response.message; - }); - }; - - // Update a user profile - $scope.updateUserProfile = function(isValid) { - if (isValid){ - $scope.success = $scope.error = null; - var user = new Users($scope.user); - - user.$update(function(response) { - $scope.success = true; - Authentication.user = response; - }, function(response) { - $scope.error = response.data.message; - }); - } else { - $scope.submitted = true; - } - }; - - // Change user password - $scope.changeUserPassword = function() { - $scope.success = $scope.error = null; - - $http.post('/api/users/password', $scope.passwordDetails).success(function(response) { - // If successful show success message and clear form - $scope.success = true; - $scope.passwordDetails = null; - }).error(function(response) { - $scope.error = response.message; - }); - }; - } -]); diff --git a/modules/users/client/controllers/settings/change-password.client.controller.js b/modules/users/client/controllers/settings/change-password.client.controller.js index 26575a81bb..3c0effa403 100644 --- a/modules/users/client/controllers/settings/change-password.client.controller.js +++ b/modules/users/client/controllers/settings/change-password.client.controller.js @@ -1,7 +1,7 @@ 'use strict'; -angular.module('users').controller('ChangePasswordController', ['$scope', '$http', '$location', 'Users', 'Authentication', - function($scope, $http, $location, Users, Authentication) { +angular.module('users').controller('ChangePasswordController', ['$scope', '$http', 'Authentication', + function($scope, $http, Authentication) { $scope.user = Authentication.user; // Change user password diff --git a/modules/users/client/controllers/settings/manage-social-accounts.client.controller.js b/modules/users/client/controllers/settings/manage-social-accounts.client.controller.js index 74774f06d1..45483425e7 100644 --- a/modules/users/client/controllers/settings/manage-social-accounts.client.controller.js +++ b/modules/users/client/controllers/settings/manage-social-accounts.client.controller.js @@ -1,7 +1,7 @@ 'use strict'; -angular.module('users').controller('SocialAccountsController', ['$scope', '$http', '$location', 'Users', 'Authentication', - function($scope, $http, $location, Users, Authentication) { +angular.module('users').controller('SocialAccountsController', ['$scope', '$http', 'Authentication', + function($scope, $http, Authentication) { $scope.user = Authentication.user; // Check if there are additional accounts diff --git a/modules/users/client/controllers/settings/settings.client.controller.js b/modules/users/client/controllers/settings/settings.client.controller.js index 25af58435f..090abc86c4 100644 --- a/modules/users/client/controllers/settings/settings.client.controller.js +++ b/modules/users/client/controllers/settings/settings.client.controller.js @@ -1,7 +1,7 @@ 'use strict'; -angular.module('users').controller('SettingsController', ['$scope', '$http', '$location', 'Users', 'Authentication', - function($scope, $http, $location, Users, Authentication) { +angular.module('users').controller('SettingsController', ['$scope', '$location', 'Authentication', + function($scope, $location, Authentication) { $scope.user = Authentication.user; // If user is not signed in then redirect back home diff --git a/modules/users/server/controllers/users/users.authentication.server.controller.js b/modules/users/server/controllers/users/users.authentication.server.controller.js index b31776e3fd..d2c5acd27c 100644 --- a/modules/users/server/controllers/users/users.authentication.server.controller.js +++ b/modules/users/server/controllers/users/users.authentication.server.controller.js @@ -12,7 +12,7 @@ var path = require('path'), /** * Signup */ -exports.signup = function(req, res) { +exports.signup = function (req, res) { // For security measurement we remove the roles from the req.body object delete req.body.roles; @@ -25,7 +25,7 @@ exports.signup = function(req, res) { user.displayName = user.firstName + ' ' + user.lastName; // Then save the user - user.save(function(err) { + user.save(function (err) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) @@ -35,7 +35,7 @@ exports.signup = function(req, res) { user.password = undefined; user.salt = undefined; - req.login(user, function(err) { + req.login(user, function (err) { if (err) { res.status(400).send(err); } else { @@ -49,8 +49,8 @@ exports.signup = function(req, res) { /** * Signin after passport authentication */ -exports.signin = function(req, res, next) { - passport.authenticate('local', function(err, user, info) { +exports.signin = function (req, res, next) { + passport.authenticate('local', function (err, user, info) { if (err || !user) { res.status(400).send(info); } else { @@ -58,7 +58,7 @@ exports.signin = function(req, res, next) { user.password = undefined; user.salt = undefined; - req.login(user, function(err) { + req.login(user, function (err) { if (err) { res.status(400).send(err); } else { @@ -72,7 +72,7 @@ exports.signin = function(req, res, next) { /** * Signout */ -exports.signout = function(req, res) { +exports.signout = function (req, res) { req.logout(); res.redirect('/'); }; @@ -80,13 +80,13 @@ exports.signout = function(req, res) { /** * OAuth callback */ -exports.oauthCallback = function(strategy) { - return function(req, res, next) { - passport.authenticate(strategy, function(err, user, redirectURL) { +exports.oauthCallback = function (strategy) { + return function (req, res, next) { + passport.authenticate(strategy, function (err, user, redirectURL) { if (err || !user) { return res.redirect('/#!/signin'); } - req.login(user, function(err) { + req.login(user, function (err) { if (err) { return res.redirect('/#!/signin'); } @@ -100,7 +100,7 @@ exports.oauthCallback = function(strategy) { /** * Helper function to save or update a OAuth user profile */ -exports.saveOAuthUserProfile = function(req, providerUserProfile, done) { +exports.saveOAuthUserProfile = function (req, providerUserProfile, done) { if (!req.user) { // Define a search query fields var searchMainProviderIdentifierField = 'providerData.' + providerUserProfile.providerIdentifierField; @@ -120,14 +120,14 @@ exports.saveOAuthUserProfile = function(req, providerUserProfile, done) { $or: [mainProviderSearchQuery, additionalProviderSearchQuery] }; - User.findOne(searchQuery, function(err, user) { + User.findOne(searchQuery, function (err, user) { if (err) { return done(err); } else { if (!user) { var possibleUsername = providerUserProfile.username || ((providerUserProfile.email) ? providerUserProfile.email.split('@')[0] : ''); - User.findUniqueUsername(possibleUsername, null, function(availableUsername) { + User.findUniqueUsername(possibleUsername, null, function (availableUsername) { user = new User({ firstName: providerUserProfile.firstName, lastName: providerUserProfile.lastName, @@ -140,7 +140,7 @@ exports.saveOAuthUserProfile = function(req, providerUserProfile, done) { }); // And save the user - user.save(function(err) { + user.save(function (err) { return done(err, user); }); }); @@ -163,7 +163,7 @@ exports.saveOAuthUserProfile = function(req, providerUserProfile, done) { user.markModified('additionalProvidersData'); // And save the user - user.save(function(err) { + user.save(function (err) { return done(err, user, '/#!/settings/accounts'); }); } else { @@ -175,33 +175,39 @@ exports.saveOAuthUserProfile = function(req, providerUserProfile, done) { /** * Remove OAuth provider */ -exports.removeOAuthProvider = function(req, res, next) { +exports.removeOAuthProvider = function (req, res, next) { var user = req.user; - var provider = req.params.provider; + var provider = req.query.provider; - if (user && provider) { - // Delete the additional provider - if (user.additionalProvidersData[provider]) { - delete user.additionalProvidersData[provider]; + if (!user) { + return res.status(401).json({ + message: 'User is not authenticated' + }); + } else if (!provider) { + return res.status(400).send(); + } - // Then tell mongoose that we've updated the additionalProvidersData field - user.markModified('additionalProvidersData'); - } + // Delete the additional provider + if (user.additionalProvidersData[provider]) { + delete user.additionalProvidersData[provider]; - user.save(function(err) { - if (err) { - return res.status(400).send({ - message: errorHandler.getErrorMessage(err) - }); - } else { - req.login(user, function(err) { - if (err) { - res.status(400).send(err); - } else { - res.json(user); - } - }); - } - }); + // Then tell mongoose that we've updated the additionalProvidersData field + user.markModified('additionalProvidersData'); } + + user.save(function (err) { + if (err) { + return res.status(400).send({ + message: errorHandler.getErrorMessage(err) + }); + } else { + req.login(user, function (err) { + if (err) { + return res.status(400).send(err); + } else { + return res.json(user); + } + }); + } + }); };