EventOrganiserBean.java 1.65 KB
package fi.insomnia.bortal.beans;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import fi.insomnia.bortal.facade.EventOrganiserFacade;
import fi.insomnia.bortal.model.EventOrganiser;

/**
 * Session Bean implementation class EventOrganiserBean
 */
@Stateless
public class EventOrganiserBean implements EventOrganiserBeanLocal {

	@EJB
	private EventOrganiserFacade eventorgfacade;

	@EJB
	private LoggingBeanLocal loggingbean;
	@EJB
	private PermissionBeanLocal permbean;

	/**
	 * Default constructor.
	 */
	public EventOrganiserBean() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public void save(EventOrganiser eventorg) throws PermissionDeniedException {
		fatalPermission(eventorg);
		eventorgfacade.merge(eventorg);
	}

	@Override
	public void fatalPermission(EventOrganiser eventorg) throws PermissionDeniedException {
		if (!permbean.isCurrentUser(eventorg.getAdmin()) && !permbean.getCurrentUser().isSuperadmin()) {
			throw new PermissionDeniedException(loggingbean, permbean.getCurrentUser(), "Someone other than admin tried to access EventOrganiser: " + eventorg.toString());
		}
	}

	@Override
	public List<EventOrganiser> getEventOrganisers() throws PermissionDeniedException {
		if (!permbean.getCurrentUser().isSuperadmin()) {
			throw new PermissionDeniedException(loggingbean, permbean.getCurrentUser(), "Non-superadmin tried to list all EventOrganisers");
		}
		return eventorgfacade.findAll();
	}

	@Override
	public EventOrganiser create(String name) {
		EventOrganiser ret = new EventOrganiser();
		ret.setAdmin(permbean.getCurrentUser());
		ret.setOrganisation(name);
		eventorgfacade.create(ret);
		return ret;
	}
}