Advertisement
Guest User

Untitled

a guest
Jul 5th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.01 KB | None | 0 0
  1. .controller('UserCreateController', function(User, $location, $window) {
  2.  
  3. var vm = this;
  4.  
  5. vm.signupUser = function() {
  6. vm.message = '';
  7.  
  8. User.create(vm.userData)
  9. .then(function(response) {
  10. vm.userData = {};
  11. vm.message = response.data.message;
  12.  
  13. $window.localStorage.setItem('token', response.data.token);
  14. $location.path('/');
  15. })
  16. }
  17.  
  18. })
  19.  
  20. angular.module('userService', [])
  21. .factory('User', function($http) {
  22.  
  23. var userFactory = {};
  24.  
  25. userFactory.create = function(userData) {
  26. return $http.post('/api/signup', userData);
  27. }
  28.  
  29. userFactory.all = function() {
  30. return $http.get('/api/users');
  31. }
  32.  
  33.  
  34.  
  35. return userFactory;
  36.  
  37. });
  38.  
  39. angular.module('authService', [])
  40. .factory('Auth', function($http, $q, AuthToken) {
  41.  
  42.  
  43. var authFactory = {};
  44.  
  45.  
  46. authFactory.login = function(username, password, tipo_user) {
  47.  
  48. return $http.post('/api/login', {
  49. username: username,
  50. password: password,
  51. tipo_user: tipo_user
  52. })
  53. .success(function(data) {
  54. AuthToken.setToken(data.token);
  55. return data;
  56. })
  57. }
  58.  
  59. authFactory.logout = function() {
  60. AuthToken.setToken();
  61. }
  62.  
  63. authFactory.isLoggedIn = function() {
  64. if(AuthToken.getToken())
  65. return true;
  66. else
  67. return false;
  68. }
  69.  
  70. authFactory.getUser = function() {
  71. if(AuthToken.getToken())
  72. return $http.get('/api/me');
  73. else
  74. return $q.reject({ message: "User has no token"});
  75.  
  76. }
  77.  
  78.  
  79. return authFactory;
  80.  
  81. })
  82.  
  83.  
  84. .factory('AuthToken', function($window) {
  85.  
  86. var authTokenFactory = {};
  87.  
  88. authTokenFactory.getToken = function() {
  89. return $window.localStorage.getItem('token');
  90. }
  91.  
  92. authTokenFactory.setToken = function(token) {
  93.  
  94. if(token)
  95. $window.localStorage.setItem('token', token);
  96. else
  97. $window.localStorage.removeItem('token');
  98.  
  99. }
  100.  
  101. return authTokenFactory;
  102.  
  103. })
  104.  
  105.  
  106. .factory('AuthInterceptor', function($q, $location, AuthToken) {
  107.  
  108. var interceptorFactory = {};
  109.  
  110.  
  111. interceptorFactory.request = function(config) {
  112.  
  113. var token = AuthToken.getToken();
  114.  
  115. if(token) {
  116.  
  117. config.headers['x-access-token'] = token;
  118.  
  119. }
  120.  
  121. return config;
  122.  
  123. };
  124.  
  125.  
  126. interceptorFactory.responseError = function(response){
  127. if(response.status == 403)
  128. $location.path('/login');
  129. return $q.reject(response);
  130.  
  131.  
  132. }
  133.  
  134.  
  135. return interceptorFactory;
  136. });
  137.  
  138. angular.module('mainCtrl', [])
  139.  
  140.  
  141. .controller('MainController', function($rootScope, $state, Auth) {
  142.  
  143. var vm = this;
  144.  
  145.  
  146. vm.loggedIn = Auth.isLoggedIn();
  147.  
  148. $rootScope.$on('$stateChangeStart', function() {
  149.  
  150. vm.loggedIn = Auth.isLoggedIn();
  151.  
  152. Auth.getUser()
  153. .then(function(data) {
  154. vm.user = data.data;
  155. });
  156. });
  157.  
  158.  
  159. vm.doLogin = function() {
  160.  
  161. vm.processing = true;
  162.  
  163. vm.error = '';
  164.  
  165. Auth.login(vm.loginData.username, vm.loginData.password, vm.loginData.tipo_user)
  166. .success(function(data) {
  167. vm.processing = false;
  168.  
  169. Auth.getUser()
  170. .then(function(data) {
  171. vm.user = data.data;
  172. });
  173.  
  174. if(data.success)
  175. $state.go('/');
  176. else
  177. vm.error = data.message;
  178.  
  179. });
  180. }
  181.  
  182.  
  183.  
  184. vm.doLogout = function() {
  185. Auth.logout();
  186. $location.path('logout');
  187. }
  188.  
  189.  
  190.  
  191.  
  192.  
  193. });
  194.  
  195. <div class="container" ng-controller="UserCreateController as user">
  196. <div class="row">
  197. <div class="col-sm-6 col-md-4 col-md-offset-4">
  198. <h1>Signup!</h1>
  199. <form class="form-sigin" method="post" ng-submit="user.signupUser()">
  200. Name: <input type="text" name="name" class="form-control" ng-model="user.userData.name">
  201. Username: <input type="text" name="username" class="form-control" ng-model="user.userData.username">
  202. Password: <input type="password" name="password" class="form-control" ng-model="user.userData.password">
  203. Tipo de Usuario:<SELECT name="tipo_user" class="form-control" ng-model="user.userData.tipo_user" >
  204.  
  205. <OPTION VALUE="Administrador">Administrador</OPTION>
  206. <OPTION VALUE="Usuario">Usuario</OPTION>
  207. </SELECT>
  208. <!-- Tipo de Usuario: <input type="text" name="tipo_user" class="form-control" ng-model="user.userData.tipo_user">-->
  209. <button type="submit" class="btn btn-danger">Signup</button>
  210. </form>
  211. </div>
  212. </div>
  213. </div>
  214.  
  215. angular.module('appRoutes', ['ui.router'])
  216.  
  217. .config(function($stateProvider, $urlRouterProvider) {
  218.  
  219. $stateProvider
  220. .state('/', {
  221. url: '/home' ,
  222. templateUrl: 'app/views/pages/home.html',
  223. controller: 'MainController',
  224. controllerAs: 'main'
  225.  
  226. })
  227. .state('login', {
  228. url: '/login',
  229. templateUrl: 'app/views/pages/login.html'
  230.  
  231. })
  232.  
  233. .state('signup', {
  234. url: '/signup',
  235. templateUrl: 'app/views/pages/signup.html'
  236.  
  237. });
  238.  
  239. $urlRouterProvider.otherwise('index');
  240.  
  241.  
  242.  
  243.  
  244. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement