| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| |
| // Manages the user session |
| define(function(require){ |
| 'use strict'; |
| |
| var VXPortalUser = require('models/VXPortalUser'); |
| |
| // Private properties |
| var vXPortalUser = null; |
| var vSessionSettings = null; |
| |
| // Public methods |
| var SessionMgr = {}; |
| |
| /** |
| * Gets the user profile for the given session |
| * |
| * @returns VXPortalUser |
| */ |
| |
| SessionMgr.getUserProfile = function() { |
| if ( vXPortalUser){ |
| return vXPortalUser; |
| } |
| |
| vXPortalUser = new VXPortalUser(); |
| vXPortalUser.getUserProfile({async : false,cache:false}).done(function(data){ |
| vXPortalUser.set(data); |
| }); |
| return vXPortalUser; |
| }; |
| |
| |
| SessionMgr.getLoginId = function() { |
| if (vXPortalUser) { |
| return vXPortalUser.get('loginId'); |
| } |
| }; |
| |
| SessionMgr.userInRole = function(role) { |
| var vXPortalUser = SessionMgr.getUserProfile(); |
| var userRoles = vXPortalUser.get('userRoleList'); |
| if (!userRoles || !role) { |
| return false; |
| } |
| if (userRoles.constructor != Array) { |
| userRoles = [ userRoles ]; |
| } |
| |
| return (userRoles.indexOf(role) > -1); |
| }; |
| |
| SessionMgr.getUserRoles = function() { |
| var vXPortalUser = SessionMgr.getUserProfile(); |
| var userRoles = vXPortalUser.get('userRoleList'); |
| if (!userRoles) { |
| return []; |
| } |
| if (userRoles.constructor != Array) { |
| userRoles = [ userRoles ]; |
| } |
| |
| return userRoles; |
| }; |
| |
| SessionMgr.getSetting = function(key) { |
| if (!vSessionSettings) { |
| var msResponse = GeneralMgr.getSessionSettings(); |
| if (msResponse.isSuccess()) { |
| vSessionSettings = msResponse.response; |
| } |
| } |
| var value = null; |
| if (vSessionSettings && key) { |
| vSessionSettings.each(function(vNameValue) { |
| if (vNameValue.get('name') == key) { |
| value = vNameValue.get('value'); |
| } |
| }); |
| } |
| return value; |
| }; |
| |
| SessionMgr.resetSession = function() { |
| vXPortalUser = null; |
| vSessionSettings = null; |
| MSCacheMgr.resetAll(); |
| }; |
| |
| /** |
| * Logs out the user and resets all session variables |
| */ |
| SessionMgr.logout = function(reDirectUser) { |
| SessionMgr.resetSession(); |
| MSCacheMgr.resetAll(); |
| if (reDirectUser) { |
| // This will ask the browser to redirect |
| window.location.replace("logout.html"); |
| } else { |
| // We will do an implicit logout |
| $.ajax({ |
| url : 'logout.html', |
| type : 'GET', |
| async : false |
| }); |
| } |
| }; |
| |
| SessionMgr.isSystemAdmin = function(){ |
| return this.userInRole('ROLE_SYS_ADMIN') ? true : false; |
| }; |
| SessionMgr.isKeyAdmin = function(){ |
| return this.userInRole('ROLE_KEY_ADMIN') ? true : false; |
| }; |
| SessionMgr.isUser = function(){ |
| return this.userInRole('ROLE_USER') ? true : false; |
| }; |
| return SessionMgr; |
| }); |