RoleView.java 3.2 KB
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fi.insomnia.bortal.view;

import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.SecurityBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.exceptions.PermissionDeniedException;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.Role;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author tuukka
 */
@ManagedBean(name = "roleView")
@SessionScoped
public class RoleView {

    @ManagedProperty("#{sessionHandler}")
    private SessionHandler sessionhandler;
    
    @EJB
    private RoleBeanLocal roleBean;
    private static final Logger logger = LoggerFactory.getLogger(RoleView.class);

    @EJB
    private SecurityBeanLocal securitybean;
    private Role role;
    DataModel<Role> items;

    public DataModel<Role> getRoles() {
        items = new ListDataModel<Role>(roleBean.listRoles());
        logger.info("Fetching roles. Found {}", items.getRowCount());

        return items;
    }

    public String save() {

        if (!sessionhandler.canWrite(Permission.ROLE_MANAGEMENT)) {
            // Give message to administration what happened here.
            throw new PermissionDeniedException(securitybean, getSessionhandler().getUser(), "User " + getSessionhandler().getUser() + " does not have permission to modify role!");
        }

        role = roleBean.mergeChanges(getRole());

        return "roleSaved";
    }


     public String create() {

        if (!sessionhandler.canWrite(Permission.ROLE_MANAGEMENT)) {
            // Give message to administration what happened here.
            throw new PermissionDeniedException(securitybean, getSessionhandler().getUser(), "User " + getSessionhandler().getUser() + " does not have permission to create role!");
        }
        if(getRole().getEvent() == null)
        {
        }

        role = roleBean.create(getRole());

        return "roleCreated";
    }

    public String edit() {
        setRole(items.getRowData());

        return "roleEdit";
    }

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

    /**
     * @return the role
     */
    public Role getRole() {
        if(role == null)
        {
            role = new Role(sessionhandler.getCurrentEvent());
        }
        return role;
    }

    /**
     * @param role the role to set
     */
    public void setRole(Role role) {
        this.role = role;
    }

    /**
     * @return the sessionhandler
     */
    public SessionHandler getSessionhandler() {
        return sessionhandler;
    }

    /**
     * @param sessionhandler the sessionhandler to set
     */
    public void setSessionhandler(SessionHandler sessionhandler) {
        this.sessionhandler = sessionhandler;
    }

    /**
     * @return the possibleParents
     */
    public List<Role> getPossibleParents() {
        return roleBean.getPossibleParents(getRole());
    }
}