diff --git a/src/app/components/auth/auth.controller.js b/src/app/components/auth/auth.controller.js new file mode 100644 index 0000000..ed6e866 --- /dev/null +++ b/src/app/components/auth/auth.controller.js @@ -0,0 +1,17 @@ +(function() { + 'use strict'; + + angular + .module('angular') + .controller('AuthController', AuthController); + + + /** @ngInject */ + function AuthController(noosfero, $log, $stateParams, AuthService) { + var vm = this; + vm.credentials = {}; + vm.login = function() { + AuthService.login(vm.credentials); + } + } +})(); diff --git a/src/app/components/auth/auth.service.js b/src/app/components/auth/auth.service.js index 99eba79..04946b2 100644 --- a/src/app/components/auth/auth.service.js +++ b/src/app/components/auth/auth.service.js @@ -7,7 +7,7 @@ .factory('AuthService', AuthService); /** @ngInject */ - function AuthService($q, $http, $rootScope, Session, $log) { + function AuthService($q, $http, $rootScope, Session, $log, AUTH_EVENTS) { function login (credentials) { var url = '/api/v1/login'; @@ -24,13 +24,13 @@ $log.debug('AuthService.login [SUCCESS] response', response); var currentUser = Session.create(response.data); $rootScope.currentUser = currentUser; - $rootScope.$broadcast('login-success', currentUser); + $rootScope.$broadcast(AUTH_EVENTS.loginSuccess, currentUser); return currentUser; } function loginFailedCallback(response) { $log.debug('AuthService.login [FAIL] response', response); - $rootScope.$broadcast('login-failed'); + $rootScope.$broadcast(AUTH_EVENTS.loginFailed); // return $q.reject(response); return null; } @@ -38,7 +38,7 @@ function logout () { Session.destroy(); $rootScope.currentUser = undefined; - $rootScope.$broadcast('logout-success'); + $rootScope.$broadcast(AUTH_EVENTS.logoutSuccess); } function isAuthenticated () { diff --git a/src/app/components/auth/login.html b/src/app/components/auth/login.html new file mode 100644 index 0000000..7ca6e2e --- /dev/null +++ b/src/app/components/auth/login.html @@ -0,0 +1,16 @@ + + diff --git a/src/app/components/navbar/navbar.directive.js b/src/app/components/navbar/navbar.directive.js index b5eb267..1c7348f 100644 --- a/src/app/components/navbar/navbar.directive.js +++ b/src/app/components/navbar/navbar.directive.js @@ -21,11 +21,27 @@ return directive; /** @ngInject */ - function NavbarController(moment) { + function NavbarController(moment, $modal, AuthService, Session, $scope, AUTH_EVENTS) { var vm = this; // "vm.creation" is avaible by directive option "bindToController: true" vm.relativeDate = moment(vm.creationDate).fromNow(); + vm.currentUser = Session.getCurrentUser(); + + vm.openLogin = function() { + var modalInstance = $modal.open({ + templateUrl: 'app/components/auth/login.html', + controller: 'AuthController', + controllerAs: 'vm', + bindToController: true + }); + $scope.$on(AUTH_EVENTS.loginSuccess, function() { + modalInstance.close(); + }); + }; + vm.logout = function() { + AuthService.logout(); + }; } } diff --git a/src/app/components/navbar/navbar.html b/src/app/components/navbar/navbar.html index 5cf0142..bfc1fd6 100644 --- a/src/app/components/navbar/navbar.html +++ b/src/app/components/navbar/navbar.html @@ -12,7 +12,7 @@ diff --git a/src/app/index.config.js b/src/app/index.config.js index 2329d78..a79078d 100644 --- a/src/app/index.config.js +++ b/src/app/index.config.js @@ -6,10 +6,11 @@ .config(config); /** @ngInject */ - function config($logProvider, $locationProvider, RestangularProvider) { + function config($logProvider, $locationProvider, RestangularProvider, $httpProvider) { $logProvider.debugEnabled(true); $locationProvider.html5Mode({enabled: true}); RestangularProvider.setBaseUrl('/api/v1'); + $httpProvider.defaults.headers.post = {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'}; } })(); diff --git a/src/app/index.constants.js b/src/app/index.constants.js index d7577be..ed3dc71 100644 --- a/src/app/index.constants.js +++ b/src/app/index.constants.js @@ -4,6 +4,11 @@ angular .module('angular') - .constant('moment', moment); + .constant('moment', moment) + .constant('AUTH_EVENTS', { + loginSuccess: 'auth-login-success', + loginFailed: 'auth-login-failed', + logoutSuccess: 'auth-logout-success' + }); })(); -- libgit2 0.21.2