BillBean.java 1.59 KB
package fi.insomnia.bortal.beans;

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

import fi.insomnia.bortal.beanutil.AuthorisationBean;
import fi.insomnia.bortal.beanutil.AuthorisationBean.Right;
import fi.insomnia.bortal.beanutil.AuthorisationBean.RightType;

import fi.insomnia.bortal.facade.BillFacade;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.Event;
import fi.insomnia.bortal.model.User;

/**
 * Session Bean implementation class BillBean
 */
@Stateless
@DeclareRoles({ "user", "moneyadmin" })
public class BillBean implements BillBeanLocal {

    @EJB
    private BillFacade billFacade;

    @EJB
    private SessionHandlerBean sessionbean;

    @EJB
    private SecurityBean secubean;

    @EJB
    private AuthorisationBean authbean;

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

    public Bill findById(int eventId, int id) {
        if (eventId <= 0 && id <= 0) {
            return null;
        }
        Bill bill = billFacade.find(eventId, id);
        Event event = bill.getEvent();
        User currentuser = sessionbean.getCurrentUser(event);

        if (!currentuser.equals(bill.getUser()))
            if (!authbean.isAuthorised(currentuser, Right.ADMIN, RightType.READ)) {
                {
                    secubean.logPermissionDenied(currentuser,
                            "User tried to print the bill with insufficient rights. Bill id: " + bill);
                    return null;
                }
            }

        return bill;

    }
}