2015-07-03 01:14:48 +00:00
|
|
|
// 'use strict';
|
|
|
|
|
|
|
|
// angular.module('users').factory('AuthenticationService', function($http, $timeout, $q) {
|
|
|
|
// var error;
|
|
|
|
// var service = {
|
|
|
|
// // Information about the current user
|
|
|
|
// currentUser: null,
|
|
|
|
|
|
|
|
// login: function(credentials) {
|
|
|
|
// var login = $http.post('/auth/signin', credentials);
|
|
|
|
// login.success(function(data) {
|
|
|
|
// service.currentUser = data.user;
|
|
|
|
// // $flash.clear();
|
|
|
|
// }).error(function(error) {
|
|
|
|
// error = error.error ? error.error : error;
|
|
|
|
// console.error(error.message || error);
|
2015-06-30 06:12:32 +00:00
|
|
|
// });
|
2015-07-03 01:14:48 +00:00
|
|
|
// return login;
|
2015-06-30 06:12:32 +00:00
|
|
|
// },
|
|
|
|
|
2015-07-03 01:14:48 +00:00
|
|
|
// logout: function() {
|
|
|
|
// var logout = $http.get('/auth/logout');
|
|
|
|
// logout.success(function() {
|
|
|
|
// service.currentUser = null;
|
|
|
|
// console.log("You've successfully logged out");
|
|
|
|
// });
|
|
|
|
// return logout;
|
|
|
|
// },
|
2015-06-30 06:12:32 +00:00
|
|
|
|
2015-07-03 01:14:48 +00:00
|
|
|
// signup: function(credentials) {
|
|
|
|
// var signup = $http.post('/auth/signup', credentials)
|
|
|
|
// signup.success(function(response) {
|
|
|
|
// console.log("You've successfully created an account");
|
2015-06-30 06:12:32 +00:00
|
|
|
// }).error(function(response) {
|
2015-07-03 01:14:48 +00:00
|
|
|
// error = error.error ? error.error : error;
|
|
|
|
// console.error(error.message || error);
|
2015-06-30 06:12:32 +00:00
|
|
|
// });
|
|
|
|
|
2015-07-03 01:14:48 +00:00
|
|
|
// return signup;
|
|
|
|
// },
|
|
|
|
|
|
|
|
// // Ask the backend to see if a user is already authenticated -
|
|
|
|
// // this may be from a previous session.
|
|
|
|
// identity: function() {
|
|
|
|
// if (service.isAuthenticated()) {
|
|
|
|
// return $q.when(service.currentUser);
|
|
|
|
// } else {
|
|
|
|
// return $http.get('/user/me').then(function(response) {
|
|
|
|
// service.currentUser = response.data.user;
|
|
|
|
// return service.currentUser;
|
|
|
|
// });
|
|
|
|
// }
|
2015-06-30 06:12:32 +00:00
|
|
|
// },
|
|
|
|
|
2015-07-03 01:14:48 +00:00
|
|
|
// // Is the current user authenticated?
|
|
|
|
// isAuthenticated: function() {
|
|
|
|
// return !!service.currentUser;
|
|
|
|
// },
|
2015-06-30 06:12:32 +00:00
|
|
|
|
2015-07-03 01:14:48 +00:00
|
|
|
// isInRole: function(role) {
|
|
|
|
// return service.isAuthenticated() (service.currentUser.roles.indexOf(role) !== -1);
|
2015-06-30 06:12:32 +00:00
|
|
|
// },
|
2015-07-03 01:14:48 +00:00
|
|
|
|
|
|
|
// isInAnyRole: function(roles) {
|
|
|
|
// if ( !service.isAuthenticated() || !service.currentUser.roles) return false;
|
|
|
|
// var roles = service.currentUser.roles;
|
|
|
|
|
|
|
|
// for (var i = 0; i < roles.length; i++) {
|
|
|
|
// if (this.isInRole(roles[i])) return true;
|
2015-06-30 06:12:32 +00:00
|
|
|
// }
|
2015-07-03 01:14:48 +00:00
|
|
|
|
|
|
|
// return false;
|
2015-06-30 06:12:32 +00:00
|
|
|
// },
|
2015-07-03 01:14:48 +00:00
|
|
|
|
|
|
|
// };
|
|
|
|
// return service;
|
|
|
|
// });
|
|
|
|
|
|
|
|
// // .factory('Principal', ['$window', '$http', '$q', '$timeout', '$state',
|
|
|
|
// // function($window, $http, $q, $timeout, $state) {
|
|
|
|
// // var _identity,
|
|
|
|
// // _authenticated = false;
|
|
|
|
|
|
|
|
// // return {
|
|
|
|
// // isIdentityResolved: function() {
|
|
|
|
// // return angular.isDefined(_identity);
|
|
|
|
// // },
|
|
|
|
// // isAuthenticated: function() {
|
|
|
|
// // return _authenticated;
|
|
|
|
// // },
|
|
|
|
// // isInRole: function(role) {
|
|
|
|
// // if (!_authenticated || !_identity.roles) return false;
|
|
|
|
|
|
|
|
// // return _identity.roles.indexOf(role) !== -1;
|
|
|
|
// // },
|
|
|
|
// // isInAnyRole: function(roles) {
|
|
|
|
// // if (!_authenticated || !_identity.roles) return false;
|
|
|
|
|
|
|
|
// // for (var i = 0; i < roles.length; i++) {
|
|
|
|
// // if (this.isInRole(roles[i])) return true;
|
|
|
|
// // }
|
|
|
|
|
|
|
|
// // return false;
|
|
|
|
// // },
|
|
|
|
// // authenticate: function(user) {
|
|
|
|
// // _identity = user;
|
|
|
|
// // _authenticated = (user !== null);
|
|
|
|
|
|
|
|
// // // for this demo, we'll store the identity in localStorage. For you, it could be a cookie, sessionStorage, whatever
|
|
|
|
// // if (user) $window.user = user;
|
|
|
|
// // else $window.user = null;
|
|
|
|
// // },
|
|
|
|
// // signin: function(credentials) {
|
|
|
|
|
|
|
|
// // var deferred = $q.defer();
|
|
|
|
// // var self = this;
|
|
|
|
// // $http.post('/auth/signin', credentials).success(function(response) {
|
|
|
|
// // // If successful we assign the response to the global user model
|
|
|
|
// // self.authenticate(response);
|
|
|
|
// // deferred.resolve(response);
|
|
|
|
// // }).error(function(response) {
|
|
|
|
// // _authenticated = false;
|
|
|
|
// // deferred.reject({ error: response.message });
|
|
|
|
// // });
|
|
|
|
// // return deferred.promise;
|
|
|
|
// // },
|
|
|
|
// // signup: function(credentials) {
|
|
|
|
|
|
|
|
// // var deferred = $q.defer();
|
|
|
|
|
|
|
|
// // $http.post('/auth/signup', credentials).success(function(response) {
|
|
|
|
// // // If successful we assign the response to the global user model
|
|
|
|
// // deferred.resolve(response);
|
|
|
|
// // }).error(function(response) {
|
|
|
|
|
|
|
|
// // deferred.reject({ error: response.message });
|
|
|
|
// // });
|
|
|
|
|
|
|
|
// // return deferred.promise;
|
|
|
|
// // },
|
|
|
|
// // signout: function() {
|
|
|
|
// // var deferred = $q.defer();
|
|
|
|
// // $http.get('/auth/signout').success(function(response) {
|
|
|
|
// // // If successful we assign the response to the global user model
|
|
|
|
// // deferred.resolve({});
|
|
|
|
// // }).error(function(response) {
|
|
|
|
// // deferred.reject({ error: response.message });
|
|
|
|
// // });
|
|
|
|
|
|
|
|
// // _authenticated = false;
|
|
|
|
// // _identity = undefined;
|
|
|
|
|
|
|
|
// // return deferred.promise;
|
|
|
|
// // },
|
|
|
|
// // identity: function() {
|
|
|
|
// // var self = this;
|
|
|
|
|
|
|
|
// // var deferred = $q.defer();
|
|
|
|
|
|
|
|
// // // check and see if we have retrieved the user data from the server. if we have, reuse it by immediately resolving
|
|
|
|
// // if (angular.isDefined(_identity)) {
|
|
|
|
|
|
|
|
// // deferred.resolve(_identity);
|
|
|
|
// // return deferred.promise;
|
|
|
|
// // }else if($window.user){
|
|
|
|
// // // console.log($window.user);
|
|
|
|
// // // self.authenticate($window.user);
|
|
|
|
// // // var user = $window.user;
|
|
|
|
// // _identity = $window.user;
|
|
|
|
// // self.authenticate(_identity);
|
|
|
|
// // deferred.resolve(_identity);
|
|
|
|
|
|
|
|
// // return deferred.promise;
|
|
|
|
// // }else {
|
|
|
|
|
|
|
|
// // // otherwise, retrieve the user data from the server, update the user object, and then resolve.
|
|
|
|
// // $http.get('/users/me', { ignoreErrors: true })
|
|
|
|
// // .success(function(response) {
|
|
|
|
// // self.authenticate(response);
|
|
|
|
// // $window.user = response;
|
|
|
|
// // deferred.resolve(_identity);
|
|
|
|
// // })
|
|
|
|
// // .error(function() {
|
|
|
|
// // _identity = null;
|
|
|
|
// // _authenticated = false;
|
|
|
|
// // $window.user = null;
|
|
|
|
// // $state.path('signin');
|
|
|
|
// // deferred.resolve(_identity);
|
|
|
|
// // });
|
|
|
|
|
|
|
|
// // return deferred.promise;
|
|
|
|
// // }
|
|
|
|
// // },
|
|
|
|
// // getUser: function(){
|
|
|
|
// // this.identity(false).then( function(user){
|
|
|
|
// // return user;
|
|
|
|
// // });
|
|
|
|
// // }
|
|
|
|
// // };
|
2015-06-29 22:51:29 +00:00
|
|
|
|
2015-07-03 01:14:48 +00:00
|
|
|
// // }
|
|
|
|
// // ]);
|