SessionHandler.java 2.48 KB
package fi.codecrew.moya.terminal.handler;

import java.util.TimeZone;

import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.clientutils.BortalLocalContextHolder;
import fi.codecrew.moya.enums.apps.IAppPermission;
import fi.codecrew.moya.model.EventUser;

@Named()
@RequestScoped
public class SessionHandler {

	private static final Logger logger = LoggerFactory
			.getLogger(SessionHandler.class);

	// @Inject
	// private HttpServletRequest httprequest;

	// @EJB
	// private RoleBeanLocal rolebean;

	@EJB
	private EventBeanLocal eventbean;

	@EJB
	private PermissionBeanLocal permbean;

	public TimeZone getTimezone() {
		return TimeZone.getTimeZone("Europe/Helsinki");
	}

	public String getLocale() {
		// TODO: Locale selection code missing
		// return "en_ST_v7";
		// return "fi_IN_XIII";
		return "fi_FI";
	}

	public String getLayout() {
		// TODO: layout selection code missing!!
		// return "stream1";
		// return "insomnia2";
		return "default";
	}

	public String getDateFormat() {
		return "dd.MM.yyyy";
	}

	public String getDatetimeFormat() {
		return "dd.MM.yyyy HH:mm";
	}

	public boolean hasPermission(IAppPermission permission) {
		if (permission == null) {
			logger.warn("permission is null");
			throw new RuntimeException("Empty target or permission!");
		}
		boolean ret = permbean.hasPermission(permission);

		return ret;
	}

	public boolean isLoggedIn() {

		boolean ret = permbean.isLoggedIn();
		return ret;
	}

	public boolean isSuperadmin() {
		return permbean.getCurrentUser().getUser().isSuperadmin();

	}

	public EventUser getCurrentUser() {
		return permbean.getCurrentUser();
	}

	public String flushCache() {
		return eventbean.flushCache();

	}

	private String preurlString = null;

	public String getRequestPreUrl() {
		if (preurlString == null) {
			Object ext = FacesContext.getCurrentInstance().getExternalContext()
					.getRequest();
			if (ext instanceof HttpServletRequest) {
				StringBuffer url = ((HttpServletRequest) ext).getRequestURL();

				preurlString = url.substring(0, url.indexOf("/", 8));

			} else {
				preurlString = "";
			}
		}
		return preurlString;
	}

	public boolean isInDevelopmentMode() {
		return BortalLocalContextHolder.isInDevelopmentMode();
	}
}