Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .controller('UserCreateController', function(User, $location, $window) {
- var vm = this;
- vm.signupUser = function() {
- vm.message = '';
- User.create(vm.userData)
- .then(function(response) {
- vm.userData = {};
- vm.message = response.data.message;
- $window.localStorage.setItem('token', response.data.token);
- $location.path('/');
- })
- }
- })
- angular.module('userService', [])
- .factory('User', function($http) {
- var userFactory = {};
- userFactory.create = function(userData) {
- return $http.post('/api/signup', userData);
- }
- userFactory.all = function() {
- return $http.get('/api/users');
- }
- return userFactory;
- });
- angular.module('authService', [])
- .factory('Auth', function($http, $q, AuthToken) {
- var authFactory = {};
- authFactory.login = function(username, password, tipo_user) {
- return $http.post('/api/login', {
- username: username,
- password: password,
- tipo_user: tipo_user
- })
- .success(function(data) {
- AuthToken.setToken(data.token);
- return data;
- })
- }
- authFactory.logout = function() {
- AuthToken.setToken();
- }
- authFactory.isLoggedIn = function() {
- if(AuthToken.getToken())
- return true;
- else
- return false;
- }
- authFactory.getUser = function() {
- if(AuthToken.getToken())
- return $http.get('/api/me');
- else
- return $q.reject({ message: "User has no token"});
- }
- return authFactory;
- })
- .factory('AuthToken', function($window) {
- var authTokenFactory = {};
- authTokenFactory.getToken = function() {
- return $window.localStorage.getItem('token');
- }
- authTokenFactory.setToken = function(token) {
- if(token)
- $window.localStorage.setItem('token', token);
- else
- $window.localStorage.removeItem('token');
- }
- return authTokenFactory;
- })
- .factory('AuthInterceptor', function($q, $location, AuthToken) {
- var interceptorFactory = {};
- interceptorFactory.request = function(config) {
- var token = AuthToken.getToken();
- if(token) {
- config.headers['x-access-token'] = token;
- }
- return config;
- };
- interceptorFactory.responseError = function(response){
- if(response.status == 403)
- $location.path('/login');
- return $q.reject(response);
- }
- return interceptorFactory;
- });
- angular.module('mainCtrl', [])
- .controller('MainController', function($rootScope, $state, Auth) {
- var vm = this;
- vm.loggedIn = Auth.isLoggedIn();
- $rootScope.$on('$stateChangeStart', function() {
- vm.loggedIn = Auth.isLoggedIn();
- Auth.getUser()
- .then(function(data) {
- vm.user = data.data;
- });
- });
- vm.doLogin = function() {
- vm.processing = true;
- vm.error = '';
- Auth.login(vm.loginData.username, vm.loginData.password, vm.loginData.tipo_user)
- .success(function(data) {
- vm.processing = false;
- Auth.getUser()
- .then(function(data) {
- vm.user = data.data;
- });
- if(data.success)
- $state.go('/');
- else
- vm.error = data.message;
- });
- }
- vm.doLogout = function() {
- Auth.logout();
- $location.path('logout');
- }
- });
- <div class="container" ng-controller="UserCreateController as user">
- <div class="row">
- <div class="col-sm-6 col-md-4 col-md-offset-4">
- <h1>Signup!</h1>
- <form class="form-sigin" method="post" ng-submit="user.signupUser()">
- Name: <input type="text" name="name" class="form-control" ng-model="user.userData.name">
- Username: <input type="text" name="username" class="form-control" ng-model="user.userData.username">
- Password: <input type="password" name="password" class="form-control" ng-model="user.userData.password">
- Tipo de Usuario:<SELECT name="tipo_user" class="form-control" ng-model="user.userData.tipo_user" >
- <OPTION VALUE="Administrador">Administrador</OPTION>
- <OPTION VALUE="Usuario">Usuario</OPTION>
- </SELECT>
- <!-- Tipo de Usuario: <input type="text" name="tipo_user" class="form-control" ng-model="user.userData.tipo_user">-->
- <button type="submit" class="btn btn-danger">Signup</button>
- </form>
- </div>
- </div>
- </div>
- angular.module('appRoutes', ['ui.router'])
- .config(function($stateProvider, $urlRouterProvider) {
- $stateProvider
- .state('/', {
- url: '/home' ,
- templateUrl: 'app/views/pages/home.html',
- controller: 'MainController',
- controllerAs: 'main'
- })
- .state('login', {
- url: '/login',
- templateUrl: 'app/views/pages/login.html'
- })
- .state('signup', {
- url: '/signup',
- templateUrl: 'app/views/pages/signup.html'
- });
- $urlRouterProvider.otherwise('index');
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement