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

import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

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

import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;

/**
 * 
 * @author tuukka
 */
@ManagedBean(name = "roleView_old")
@SessionScoped
public class RoleView_old {

	@EJB
	private EventBeanLocal eventbean;
	@EJB
	private RoleBeanLocal roleBean;
	private static final Logger logger = LoggerFactory.getLogger(RoleView_old.class);
	@EJB
	private UserBeanLocal userbean;

	private Role role;
	private DataModel<Role> items;

	private ListDataModel<RoleRight> rolerights;

	public void initCreate() {
		role = new Role(eventbean.getCurrentEvent());
	}

	public List<Role> getRoleList() {
		userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);
		return roleBean.listRoles();
	}

	public DataModel<Role> getItems() {
		userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);

		return items;
	}

	public DataModel<Role> getRoles() {

		items = new ListDataModel<Role>(getRoleList());

		return items;
	}

	public DataModel<RoleRight> getRoleRights() {
		userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);

		if (rolerights == null) {
			logger.info("Fetching new rolerights from database");
			rolerights = new ListDataModel<RoleRight>(roleBean.getRoleRights(role));
		}
		return rolerights;
	}

	public String save() {

		userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.WRITE, "Does not have permission to modify role!");

		role = roleBean.mergeChanges(getRole());

		return "roleSaved";
	}

	public String editRoleRight() {
		userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.WRITE);

		logger.info("Roleright array: {}", rolerights);
		RoleRight row = rolerights.getRowData();
		roleBean.mergeChanges(row);
		logger.info("Saving roleright {}, r {}, w {}, x {}", new String[] { row.getPermission().toString(), new Boolean(row.isRead()).toString(), new Boolean(row.isWrite()).toString(), new Boolean(row.isExecute()).toString() });
		rolerights = null;

		return "editRoleright";
	}

	public String create() {

		userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.WRITE, "Does not have permission to create role!");
		logger.debug("Creating role {}", getRole());
		role = roleBean.create(getRole());
		return "roleCreated";
	}

	public String edit() {
		userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);

		logger.info("Editing row from items");
		setRole(items.getRowData());
		rolerights = null;
		items = null;

		return "roleEdit";
	}

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

	/**
	 * @return the role
	 */
	public Role getRole() {
		userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);

		return role;
	}

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

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

}