package org.jblooming.ontology; import org.jblooming.security.*; import org.jblooming.operator.User; import org.jblooming.operator.Operator; import org.hibernate.search.annotations.IndexedEmbedded; import javax.persistence.MappedSuperclass; import javax.persistence.ManyToOne; import javax.persistence.JoinColumn; /** * @author Pietro Polsinelli ppolsinelli@open-lab.com * @author Roberto Bicchierai rbicchierai@open-lab.com */ //@MappedSuperclass public abstract class SecuredSupportWithArea extends SecuredLoggableHideableSupport implements SecurableWithArea { private Area area; //@ManyToOne(targetEntity = Area.class) //@JoinColumn(name="areax") @IndexedEmbedded public Area getArea() { return area; } public void setArea(Area area) { this.area = area; } public boolean hasPermissionFor(User u, Permission p) { if (getOwner() != null && getOwner().equals(u)) return true; if (getArea() == null) return u.hasPermissionAsAdmin(); return area.hasPermissionFor(u, p); } }