/* * $Id: LoginSessionBean.java,v 1.2.2.1 2007/01/12 19:31:55 idegaweb Exp $ * Created on 3.9.2004 * * Copyright (C) 2004 Idega Software hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. */ package com.idega.core.accesscontrol.business; import java.util.Hashtable; import java.util.List; import java.util.Map; import java.util.Stack; import com.idega.business.IBOSessionBean; import com.idega.core.data.GenericGroup; import com.idega.core.user.data.User; import com.idega.core.user.data.UserGroupRepresentative; import com.idega.user.business.UserProperties; /** * * Last modified: $Date: 2007/01/12 19:31:55 $ by $Author: idegaweb $ * * @author <a href="mailto:aron@idega.com">aron</a> * @version $Revision: 1.2.2.1 $ */ public class LoginSessionBean extends IBOSessionBean implements LoginSession{ private SessionHelper sessionHelper = new SessionHelper(); private Stack reservedSessionHelpers = new Stack(); private void reset(){ this.sessionHelper = null; this.sessionHelper = new SessionHelper(); /* sessionHelper.user=null; sessionHelper.permissionGroups = null; sessionHelper.primaryGroup = null; sessionHelper.repGroup = null; sessionHelper.loggedOnInfo = null; sessionHelper.loginState = LoginState.NoState; sessionHelper.userLoginName = null; sessionHelper.userProperties = null; sessionHelper.mapOfExtraAttributes = null; */ } /** * @return Returns the permissionGroups. */ public List getPermissionGroups() { return this.sessionHelper.permissionGroups; } /** * @param permissionGroups The permissionGroups to set. */ public void setPermissionGroups(List permissionGroups) { this.sessionHelper.permissionGroups = permissionGroups; } /** * @return Returns the primaryGroup. */ public GenericGroup getPrimaryGroup() { return this.sessionHelper.primaryGroup; } /** * @param primaryGroup The primaryGroup to set. */ public void setPrimaryGroup(GenericGroup primaryGroup) { this.sessionHelper.primaryGroup = primaryGroup; } /** * @return Returns the repGroup. */ public UserGroupRepresentative getRepresentativeGroup() { return this.sessionHelper.repGroup; } /** * @param repGroup The repGroup to set. */ public void setRepresentativeGroup(UserGroupRepresentative repGroup) { this.sessionHelper.repGroup = repGroup; } /** * @return Returns the user. */ public User getUser() { return this.sessionHelper.user; } /** * @param user The user to set. */ public void setUser(User user) { this.sessionHelper.user = user; } /** * @return Returns the loggedOnInfo. */ public LoggedOnInfo getLoggedOnInfo() { return this.sessionHelper.loggedOnInfo; } /** * @param loggedOnInfo The loggedOnInfo to set. */ public void setLoggedOnInfo(LoggedOnInfo loggedOnInfo) { this.sessionHelper.loggedOnInfo = loggedOnInfo; } /** * @return Returns the loginState. */ public LoginState getLoginState() { return this.sessionHelper.loginState; } /** * @param loginState The loginState to set. */ public void setLoginState(LoginState loginState) { this.sessionHelper.loginState = loginState; } /** * @return Returns the userLoginName. */ public String getUserLoginName() { return this.sessionHelper.userLoginName; } /** * @param userLoginName The userLoginName to set. */ public void setUserLoginName(String userLoginName) { this.sessionHelper.userLoginName = userLoginName; } public void setLoginAttribute(String key, Object value){ this.sessionHelper.mapOfExtraAttributes.put(key,value); } public Object getLoginAttribute(String key){ if(this.sessionHelper.mapOfExtraAttributes==null) { this.sessionHelper.mapOfExtraAttributes = new Hashtable(); } return this.sessionHelper.mapOfExtraAttributes.get(key); } public void removeLoginAttribute(String key){ this.sessionHelper.mapOfExtraAttributes.remove(key); } /** * @return Returns the mapOfExtraAttributes. */ protected Map getMapOfExtraAttributes() { return this.sessionHelper.mapOfExtraAttributes; } /** * @param mapOfExtraAttributes The mapOfExtraAttributes to set. */ protected void setMapOfExtraAttributes(Map mapOfExtraAttributes) { this.sessionHelper.mapOfExtraAttributes = mapOfExtraAttributes; } /** * @return Returns the userProperties. */ public UserProperties getUserProperties() { return this.sessionHelper.userProperties; } /** * @param userProperties The userProperties to set. */ public void setUserProperties(UserProperties userProperties) { this.sessionHelper.userProperties = userProperties; } public void retrieve(){ if (this.reservedSessionHelpers != null && !this.reservedSessionHelpers.isEmpty()) { this.sessionHelper = (SessionHelper) this.reservedSessionHelpers.pop(); } } public void reserve(){ this.reservedSessionHelpers.push(this.sessionHelper); reset(); } private class SessionHelper{ protected User user = null; protected List permissionGroups = null; protected GenericGroup primaryGroup = null; protected UserGroupRepresentative repGroup = null; protected LoggedOnInfo loggedOnInfo = null; protected LoginState loginState = LoginState.NoState; protected String userLoginName = null; protected UserProperties userProperties = null; protected Map mapOfExtraAttributes = new Hashtable(); protected User reserveUser = null; } }