package org.dcache.webadmin.view.beans; import org.apache.wicket.Session; import org.apache.wicket.authroles.authorization.strategies.role.Roles; import org.apache.wicket.protocol.http.WebSession; import org.apache.wicket.request.Request; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * The session-Object to store Session-Data like User-Credentials, and page * options. * * @author jans * @author arossi */ public class WebAdminInterfaceSession extends WebSession { private static final long serialVersionUID = -941613160805323716L; private static final Logger logger = LoggerFactory.getLogger(WebAdminInterfaceSession.class); private final AlarmQueryBean alarmQueryBean = new AlarmQueryBean(); private final PoolPlotOptionBean poolPlotBean = new PoolPlotOptionBean(); private UserBean user; public static WebAdminInterfaceSession get() { return (WebAdminInterfaceSession) Session.get(); } public static boolean hasUserRole(String role) { WebAdminInterfaceSession session = get(); if (!session.isSignedIn()) { return false; } return session.user.hasRole(role); } public static AlarmQueryBean getAlarmQueryBean() { return get().alarmQueryBean; } public static PoolPlotOptionBean getPoolPlotBean() { return get().poolPlotBean; } public WebAdminInterfaceSession(Request request) { super(request); } public String getUserName() { return user.getUsername(); } public boolean hasAnyRole(Roles roles) { logger.debug("asking for available roles {}", roles); if (!isSignedIn()) { return false; } return user.hasAnyRole(roles); } public boolean isSignedIn() { return user != null; } public void logoutUser() { user = null; } public void setUser(final UserBean user) { this.user = user; } }