This is an automated email from the git hooks/post-receive script. unknown user pushed a commit to branch devel in repository Pollen. commit ac19052e347992a3e03407507f6fb1229961e618 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Wed May 21 12:15:40 2014 +0200 Unified Session Data on one factory --- pollen-ui-angular/src/main/webapp/js/app.js | 18 +++++----- .../src/main/webapp/js/controllers/userCtrl.js | 11 ++++--- pollen-ui-angular/src/main/webapp/js/services.js | 38 ++++++++++------------ 3 files changed, 31 insertions(+), 36 deletions(-) diff --git a/pollen-ui-angular/src/main/webapp/js/app.js b/pollen-ui-angular/src/main/webapp/js/app.js index 73cdd56..210685e 100644 --- a/pollen-ui-angular/src/main/webapp/js/app.js +++ b/pollen-ui-angular/src/main/webapp/js/app.js @@ -19,31 +19,29 @@ * #L% */ angular.module('pollen', ['pollenServices', 'ngRoute', 'pollControllers', 'userControllers', 'ui.bootstrap', 'ngCookies']) -.config(['$httpProvider', '$cookiesProvider', function($httpProvider, $cookies) { +.config(['$httpProvider', function($httpProvider) { // edit header for locale and sessionToken $httpProvider.interceptors.push('httpRequestInterceptor'); // edit content-type for send data to the server $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; - //$httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; }]) -.factory('httpRequestInterceptor', ['SessionToken', 'SessionLocale', function (SessionToken, SessionLocale) { +.factory('httpRequestInterceptor', ['SessionStorage', function (SessionStorage) { // set locale with browser preference // default : en - if (SessionLocale.get() == '') { + var session = SessionStorage.get(); + + if (angular.isUndefined(session.locale)) { var locale = navigator.language || navigator.userLanguage || 'en'; - SessionLocale.save(locale.substring(0,2)); + SessionStorage.save({locale:locale.substring(0,2)}); } return { request: function($config) { - var token = SessionToken.get(); - $config.headers['Accept-Language'] = SessionLocale.get(); - if (token != '') { - $config.headers['X-Pollen-Session-Token'] = token; - } + $config.headers['Accept-Language'] = session.locale; + $config.headers['X-Pollen-Session-Token'] = session.token; return $config; } }; diff --git a/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js b/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js index 328a94a..c05cb4e 100644 --- a/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js +++ b/pollen-ui-angular/src/main/webapp/js/controllers/userCtrl.js @@ -36,23 +36,24 @@ } }]) -.controller('UserLoginCtrl', ['$scope', 'UserLogin', 'UserLogout', 'User', 'SessionToken', function ($scope, UserLogin, UserLogout, User, SessionToken) { - if (!angular.isDefined($scope.data)) { +.controller('UserLoginCtrl', ['$scope', 'UserLogin', 'UserLogout', 'User', 'SessionStorage', function ($scope, UserLogin, UserLogout, User, SessionStorage) { + if (angular.isUndefined($scope.data)) { $scope.data = {user:{}}; } $scope.login = function () { UserLogin.login({}, $scope.data.user, function (data) { User.get({userId: data.id}, function (user) { $scope.currentUser = user; + SessionStorage.save({'user':user}); }) - SessionToken.save(data.permission); + SessionStorage.save({'token':data.permission}); }); } $scope.logout = function () { UserLogout.logout(function (data) { - SessionToken.remove(); - delete $scope.currentUser; + SessionStorage.remove('token'); + delete $scope.currentUser; }) } }]) \ No newline at end of file diff --git a/pollen-ui-angular/src/main/webapp/js/services.js b/pollen-ui-angular/src/main/webapp/js/services.js index 0cd8443..1c5fe2d 100644 --- a/pollen-ui-angular/src/main/webapp/js/services.js +++ b/pollen-ui-angular/src/main/webapp/js/services.js @@ -145,31 +145,27 @@ angular.module('pollenServices', ['ngResource']) }]) -.factory('SessionToken', [function () { - var storageId='sessionTokenStorage'; +.factory('SessionStorage', [function () { + var storageId='sessionStorage'; + var session = JSON.parse(localStorage.getItem(storageId) || '{}'); return { get: function () { - return localStorage.getItem(storageId) || ''; + return session; }, - save: function (token) { - localStorage.setItem(storageId, token); + save: function (data) { + angular.forEach(data, function (value,key) { + session[key] = value; + }) + localStorage.setItem(storageId, JSON.stringify(session)); }, - remove: function () { - localStorage.setItem(storageId, ''); - } - } -}]) -.factory('SessionLocale', [function () { - var storageId='sessionLocaleStorage'; - return { - get: function () { - return localStorage.getItem(storageId) || ''; - }, - save: function (token) { - localStorage.setItem(storageId, token); - }, - remove: function () { - localStorage.setItem(storageId, ''); + remove: function (key) { + if (angular.isString(key)) { + delete session[key]; + } + else { + session = {}; + } + localStorage.setItem(storageId, JSON.stringify(session)); } } }]) \ No newline at end of file -- To stop receiving notification emails like this one, please contact Chorem.org SCM administrator <admin+scm@chorem.org>.