package is.idega.idegaweb.travel.business; import is.idega.idegaweb.travel.block.search.data.ServiceSearchEngine; import java.util.Collection; import java.util.HashMap; import java.util.Locale; import java.util.Map; import com.idega.block.trade.stockroom.business.TradePermissionBusiness; import com.idega.block.trade.stockroom.data.Reseller; import com.idega.block.trade.stockroom.data.Supplier; import com.idega.business.IBOLookup; import com.idega.business.IBOLookupException; import com.idega.business.IBORuntimeException; import com.idega.business.IBOSessionBean; import com.idega.core.accesscontrol.business.NotLoggedOnException; import com.idega.core.localisation.business.ICLocaleBusiness; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWResourceBundle; import com.idega.user.data.Group; import com.idega.user.data.User; /** * Title: idegaWeb * Description: * Copyright: Copyright (c) 2001 * Company: idega * @author <a href="mailto:gimmi@idega.is>Gr�mur J�nsson</a> * @version 1.0 */ public class TravelSessionManagerBean extends IBOSessionBean implements TravelSessionManager { public static String IW_BUNDLE_IDENTIFIER="is.idega.travel"; private IWResourceBundle _iwrb; private IWBundle _bundle; private Locale _locale; private int _localeId = -1; private boolean _isSet = false; private Supplier _supplier; private Reseller _reseller; private Group _supplierManager; private ServiceSearchEngine _engine; private boolean _isSupplierManager; private User _user; private int _userId = -1; private Map permissionMap; public TravelSessionManagerBean() { } public void clearLocale() { _locale = null; _localeId = -1; _iwrb = null; } public void clearAll() { clearLocale(); _supplier = null; _reseller = null; _engine = null; _userId = -1; _user = null; _supplierManager = null; _isSupplierManager = false; _isSet = false; clearRoleCache(); } // public boolean isSupplierManager() { // return _isSupplierManager; // } public boolean isSet() { return _isSet; } // public void setIsSupplierManager(boolean isSupplierManager) { // this._isSupplierManager = isSupplierManager; // } public void setSupplierManager(Group supplierManager) { this._supplierManager = supplierManager; } public Group getSupplierManager() { return _supplierManager; } public User getUser() { if (_user == null) { try { _user = getUserContext().getCurrentUser(); _isSet = (_user != null); } catch (NotLoggedOnException e) { // System.out.println("SessionManager : Noone is logged on"); } } return _user; } public int getUserId() { if (_userId == -1) { if (getUser() != null) { _userId = getUser().getID(); } } return _userId; } public Locale getLocale() { if (_locale == null) { _locale = super.getUserContext().getCurrentLocale(); } return _locale; } public int getLocaleId() { if (_localeId == -1) { _localeId = ICLocaleBusiness.getLocaleId(getLocale()); } return _localeId; } public IWResourceBundle getIWResourceBundle() { if (_iwrb == null) { _iwrb = getIWBundle().getResourceBundle(getLocale()); } return _iwrb; } public IWBundle getIWBundle() { if (_bundle == null) { _bundle = super.getIWApplicationContext().getIWMainApplication().getBundle(this.IW_BUNDLE_IDENTIFIER); } return _bundle; } public Supplier getSupplier() { return _supplier; } public void setSupplier(Supplier supplier) { _supplier = supplier; } public Reseller getReseller() { return _reseller; } public void setReseller(Reseller reseller) { _reseller = reseller; } public void setSearchEngine(ServiceSearchEngine engine) { this._engine = engine; } public ServiceSearchEngine getSearchEngine() { return _engine; } private Map getPermissionMap() { if (permissionMap == null) { permissionMap = new HashMap(); } return permissionMap; } public boolean hasRole(String role) { Boolean bool = (Boolean) getPermissionMap().get(role); if (bool == null) { try { Collection coll = getIWMainApplication().getAccessController().getAllRolesForCurrentUser(getUserContext()); if (coll != null && !coll.isEmpty()) { bool = new Boolean(coll.contains(role)); } } catch (NotLoggedOnException e) { } catch (Exception e) { e.printStackTrace(); } if (bool == null) { bool = new Boolean(false); // Returning false, if nothing is found } else { getPermissionMap().put(role, bool); } } return bool.booleanValue(); } public void clearRoleCache() { permissionMap = null; } protected TradePermissionBusiness getTradePermissionBusiness() { try { return (TradePermissionBusiness) IBOLookup.getServiceInstance(getIWApplicationContext(), TradePermissionBusiness.class); } catch (IBOLookupException e) { throw new IBORuntimeException(e); } } }