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

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

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.UserPermission;
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
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
    }
    
    public void createActionLogEvent(String message, Role crew, boolean isTask) {
    	ActionLogMessage alm = new ActionLogMessage();
    	alm.setCrew(crew);
    	if(isTask) {
    		alm.setState(ActionLogMessageState.PENDING);
    	} else {
    		alm.setState(null);
    	}
    	alm.setTime(new Date());
    	alm.setMessage(message);
    	alm.setUser(permissionBean.getCurrentUser());
    	
    	actionLogFacade.saveToActionLog(alm);
    }
    
    public List<ActionLogMessage> getAllActionLogEvents() {
    	return actionLogFacade.getAllSortedByTimestamp();
    }
    
    public List<Role> getAssignableRoles() {
    	return roleBean.listRoles();
    }
    
    public List<ActionLogMessageResponse> getActionLogMessageResponsesByID(Integer id) {
    	return actionLogFacade.getActionLogMessageResponsesByID(id);
    }
    
    public void addActionLogMessageResponse(Integer actionLogMessageId, String message, ActionLogMessageState state) {
    	ActionLogMessage alm = actionLogFacade.find(actionLogMessageId);
    	if(alm.getState() != state) {
    		alm.setState(state);
    	}
    	
    	ActionLogMessageResponse almr = new ActionLogMessageResponse();
    	almr.setMessage(message);
    	almr.setActionLogMessage(actionLogFacade.find(actionLogMessageId));
    	almr.setStateChange(state);
    	almr.setUser(permissionBean.getCurrentUser());
    	
    	actionLogFacade.saveActionLogResponse(almr);
    }

	@Override
	public ActionLogMessage find(Integer id) {
		return actionLogFacade.find(id);
		
	}
}