ActionLogBean.java 2.68 KB
package fi.insomnia.bortal.beans;

import java.util.Date;
import java.util.List;

import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB;
import javax.ejb.Stateless;

import fi.insomnia.bortal.enums.ActionLogMessageState;
import fi.insomnia.bortal.enums.apps.ContentPermission;
import fi.insomnia.bortal.facade.ActionLogFacade;
import fi.insomnia.bortal.model.ActionLogMessage;
import fi.insomnia.bortal.model.ActionLogMessageResponse;
import fi.insomnia.bortal.model.Role;

/**
 * Session Bean implementation class ActionLogBean eventin - luominen -
 * editointi - deletointi
 */
@Stateless
@DeclareRoles(ContentPermission.S_MANAGE_ACTIONLOG)
public class ActionLogBean implements ActionLogBeanLocal {
	// TODO: Permissions

	@EJB
	private ActionLogFacade actionLogFacade;

	@EJB
	private RoleBeanLocal roleBean;

	@EJB
	private PermissionBeanLocal permissionBean;

	public ActionLogBean() {
		// TODO Auto-generated constructor stub
	}

	@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
	public void createActionLogEvent(String message, Role crew, boolean isTask) {
		ActionLogMessage alm = new ActionLogMessage();
		alm.setCrew(crew);
		if (isTask) {
			alm.setState(ActionLogMessageState.NEW);
		} else {
			alm.setState(null);
		}
		alm.setTime(new Date());
		alm.setMessage(message);
		alm.setUser(permissionBean.getCurrentUser().getUser());

		actionLogFacade.saveToActionLog(alm);
	}

	@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
	public List<ActionLogMessage> getAllActionLogEvents() {
		return actionLogFacade.getAllSortedByTimestamp();
	}

	@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
	public List<Role> getAssignableRoles() {
		return roleBean.listRoles();
	}

	@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
	public List<ActionLogMessageResponse> getActionLogMessageResponses(ActionLogMessage alm) {
		return actionLogFacade.getActionLogMessageResponses(alm);
	}

	@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
	public void addActionLogMessageResponse(ActionLogMessage alm, String message, ActionLogMessageState state) {
		if (alm.getState() != state && state != null) {
			alm = actionLogFacade.merge(alm);
			alm.setState(state);
		}

		ActionLogMessageResponse almr = new ActionLogMessageResponse();
		almr.setMessage(message);
		almr.setActionLogMessage(alm);
		almr.setStateChange(state);
		almr.setUser(permissionBean.getCurrentUser());

		actionLogFacade.saveActionLogResponse(almr);
	}

	@Override
	@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
	public ActionLogMessage find(Integer id) {
		return actionLogFacade.find(id);

	}
}