SessionHandler.java 2.68 KB
/*

 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fi.insomnia.bortal.handler;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;

import fi.insomnia.bortal.beans.RolePermission;
import fi.insomnia.bortal.beans.SessionHandlerBeanLocal;
import fi.insomnia.bortal.model.User;
import javax.faces.bean.SessionScoped;

/**
 * 
 * @author tuukka
 */
@ManagedBean(name = "sessionHandler")
@SessionScoped
public class SessionHandler {

    @EJB
    private SessionHandlerBeanLocal handlerbean;
    private User user = null;
    private String username = "";
    private String password = "";

    /** Creates a new instance of SessionHandler */
    public SessionHandler() {
    }

    public boolean hasPermission(String target, String permission) {
        RolePermission perm = null;
        if (permission.equalsIgnoreCase("read")) {
            perm = RolePermission.READ;
        } else if (permission.equals("write")) {
            perm = RolePermission.WRITE;
        } else if (permission.equals("execute")) {
            perm = RolePermission.EXECUTE;
        }

        return hasPermission(target, perm);
    }

    public boolean hasPermission(String target, RolePermission permission) {
        return true;
        // return handlerbean.hasPermission(target, getUser(), permission);

    }

    public boolean canWrite(String target) {
        return hasPermission(target, RolePermission.WRITE);
    }

    public boolean canRead(String target) {
        return hasPermission(target, RolePermission.READ);
    }

    public boolean canExecute(String target) {
        return hasPermission(target, RolePermission.EXECUTE);
    }

    public void setUser(User user) {
        this.user = user;
    }

    public User getUser() {

        if (user == null) {
            user = handlerbean.getDefaultUser();
        }
        
        return user;
    }

    public String logout() {
        user = null;

        return "logout";
    }

    public String login() {

        user = handlerbean.tryLogin(username, password);

        if (user == null) {
            return "loginFailed";
        } else {
            return "loginSuccess";
        }
    }

    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }

    /**
     * @param username the username to set
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * @return the password
     */
    public String getPassword() {
        return password;
    }

    /**
     * @param password the password to set
     */
    public void setPassword(String password) {
        this.password = password;
    }
}