PlaceView.java 2.44 KB
package fi.insomnia.bortal.view;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.insomnia.bortal.beans.PlaceBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Place;

@ManagedBean(name = "placeView")
@SessionScoped
public class PlaceView {

    private static final Logger logger = LoggerFactory.getLogger(PlaceView.class);
    private Place place;
    @EJB
    private UserBeanLocal userbean;
    @EJB
    private PlaceBeanLocal placebean;
    private ListDataModel<Place> placesPlacegroup;

    public String editPlace(Place place) {
        this.place = place;
        logger.debug("editing place {}", place);
        return "/place/edit";
    }

    public Place getPlace() {
        userbean.fatalPermission(Permission.MAP, RolePermission.WRITE, "Not permission to modify place");
        return place;
    }

    public String releasePlace() {
        userbean.fatalPermission(Permission.MAP, RolePermission.WRITE, "No right to release place ", place);

        place = placebean.find(place.getId());
        if (!place.release(place.getCurrentUser())) {
            logger.debug("Error releasing place.");
        }
        place = placebean.mergeChanges(place);
        return null;
    }

    public void initGroupsPlacelist() {
        if (place.getGroup() != null && !place.getGroup().getPlaces().isEmpty()) {
            placesPlacegroup = new ListDataModel<Place>(place.getGroup().getPlaces());
        } else {
            placesPlacegroup = null;
        }
    }

    public ListDataModel<Place> getPlacesGroupPlaces() {
        return placesPlacegroup;
    }

    public String editPlacegroupPlace() {
        place = placesPlacegroup.getRowData();
        return "/place/edit";
    }

    public String removePlaceFromGroup() {
        userbean.fatalPermission(Permission.MAP, RolePermission.WRITE, "No right to release place ", place);
        place.getGroup().getPlaces().remove(place);
        place.setGroup(null);
        place = placebean.mergeChanges(place);
        return null;
    }

    public String save() {
        placebean.mergeChanges(place);
        return null;
    }

    public String checkMemberships() {
        placebean.checkMemberships();
        return null;
    }
}