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