UNPKG

generator-ngfs

Version:

Yeoman generator for creating MEAN stack applications, using MongoDB, Express, AngularJS, and Node

111 lines (98 loc) 2.78 kB
'use strict'; angular.module('<%= scriptAppName %>') .factory('Auth', function Auth($location, $rootScope, Session, User, $cookieStore) { // Get currentUser from cookie $rootScope.currentUser = $cookieStore.get('user') || null; $cookieStore.remove('user'); return { /** * Authenticate user * * @param {Object} user - login info * @param {Function} callback - optional * @return {Promise} */ login: function(user, callback) { var cb = callback || angular.noop; return Session.save({ email: user.email, password: user.password }, function(user) { $rootScope.currentUser = user; return cb(); }, function(err) { return cb(err); }).$promise; }, /** * Unauthenticate user * * @param {Function} callback - optional * @return {Promise} */ logout: function(callback) { var cb = callback || angular.noop; return Session.delete(function() { $rootScope.currentUser = null; return cb(); }, function(err) { return cb(err); }).$promise; }, /** * Create a new user * * @param {Object} user - user info * @param {Function} callback - optional * @return {Promise} */ createUser: function(user, callback) { var cb = callback || angular.noop; return User.save(user, function(user) { $rootScope.currentUser = user; return cb(user); }, function(err) { return cb(err); }).$promise; }, /** * Change password * * @param {String} oldPassword * @param {String} newPassword * @param {Function} callback - optional * @return {Promise} */ changePassword: function(oldPassword, newPassword, callback) { var cb = callback || angular.noop; return User.update({ oldPassword: oldPassword, newPassword: newPassword }, function(user) { return cb(user); }, function(err) { return cb(err); }).$promise; }, /** * Gets all available info on authenticated user * * @return {Object} user */ currentUser: function() { return User.get(); }, /** * Simple check to see if a user is logged in * * @return {Boolean} */ isLoggedIn: function() { var user = $rootScope.currentUser; return !!user; }, }; });