/*
 * 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.isUser = function(){
	// 	var roles = this.getRoleInUserSchool();
	// 	return  $.inArray('ROLE_USER',roles) != -1  ? true  : false ;
	// };
	// return SessionMgr;
});	
