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

import java.util.List;

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

import fi.insomnia.bortal.exceptions.PermissionDeniedException;
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 UserBeanLocal userbean;
    @EJB
    private SecurityBeanLocal securitybean;

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

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

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

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

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