RoleView.java 2.79 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.exceptions.PermissionDeniedException;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.Role;
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 = new 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("roleManagement")) {
            // Give message to administration what happened here.
            throw new PermissionDeniedException(securitybean, getSessionhandler().getUser(), "User " + getSessionhandler().getUser() + " does not have permission to modify role!");
        }

        roleBean.mergeChanges(role);

        return "roleSaved";
    }


     public String create() {

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

        role = roleBean.create(role);

        return "roleCreated";
    }

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

        return "roleEdit";
    }

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

    /**
     * @return the role
     */
    public Role getRole() {
        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;
    }
}