package org.jblooming.operator.businessLogic; import org.jblooming.operator.Operator; import org.jblooming.operator.User; import org.jblooming.persistence.PersistenceHome; import org.jblooming.security.Area; import org.jblooming.security.PlatformPermissions; /** * @author Pietro Polsinelli : ppolsinelli@open-lab.com */ public class OperatorHelper { private OperatorHelper.SecuritySettings getSecuritySettingsInstance(Operator loggedUser, Operator operator) { OperatorHelper.SecuritySettings sst = new OperatorHelper.SecuritySettings(); sst.loggedUser = loggedUser; sst.operator = operator; final Area area = null; sst.area = area; sst.isAdmin = loggedUser != null && loggedUser.hasPermissionAsAdmin(); sst.isNew = operator==null || operator.isNew(); sst.editingMyself = !sst.isNew && ((operator != null) && operator.getId().equals(loggedUser.getId())); boolean opW = loggedUser.hasPermissionFor(PlatformPermissions.operator_canWrite); sst.canEditRootData = sst.isNew || sst.editingMyself || opW; sst.canEditSecurityArea = (sst.area != null && sst.area.getOwner() != null && sst.area.getOwner().equals(loggedUser)) || (sst.area == null && sst.isAdmin); sst.canEditLoginName = sst.editingMyself || opW; //sst.isNew; sst.canRead = ( (sst.isNew && opW) || (!sst.isNew && (sst.editingMyself || opW)) ); sst.canWrite = ( (sst.isNew && opW) || (!sst.isNew && (sst.editingMyself || opW)) ); return sst; } public static OperatorHelper.SecuritySettings getSecuritySettings(Operator loggedUser, Operator operator) { OperatorHelper oh = new OperatorHelper(); return oh.getSecuritySettingsInstance(loggedUser, operator); } public class SecuritySettings { public User loggedUser; public User operator; public Area area; public boolean isAdmin; public boolean isNew; public boolean canRead; public boolean canWrite; public boolean editingMyself; public boolean canEditRootData; public boolean canEditSecurityArea; public boolean canEditLoginName; public String toString() { final String name = (area != null ? area.getName() : " is null"); return "isAdmin " + isAdmin + "<br>" + "isNew " + isNew + "<br>" + "area " + name + "<br>" + "canRead " + canRead + "<br>" + "canWrite " + canWrite + "<br>" + "editingMyself " + editingMyself + "<br>" + "canEditRootData " + canEditRootData + "<br>" + "canEditSecurityArea " + canEditSecurityArea + "<br>" + "canEditLoginName " + canEditLoginName + "<br>"; } } }