mirror of
https://github.com/fergalmoran/roboto-promoto.git
synced 2025-12-22 09:37:37 +00:00
Initial Commit
This commit is contained in:
111
app/scripts/services/auth.js
Normal file
111
app/scripts/services/auth.js
Normal file
@@ -0,0 +1,111 @@
|
||||
'use strict';
|
||||
|
||||
angular.module('robotoApp')
|
||||
.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;
|
||||
},
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user