Author: glandais Date: 2008-03-04 18:25:34 +0000 (Tue, 04 Mar 2008) New Revision: 1285 Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoPermission.java trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoPermissionImpl.java trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Permission.java Log: superadmin should not have permissions explicitly on elements, as he already has all permissions implicitly Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java 2008-03-04 17:25:07 UTC (rev 1284) +++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java 2008-03-04 18:25:34 UTC (rev 1285) @@ -29,6 +29,9 @@ import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import fr.cemagref.simexplorer.is.security.dao.DaoActor; import fr.cemagref.simexplorer.is.security.dao.DaoPermission; import fr.cemagref.simexplorer.is.security.entities.Actor; @@ -44,6 +47,8 @@ @TransactionAttribute(TransactionAttributeType.REQUIRED) public class CredentialManagerImpl implements CredentialManager { + private static final Log log = LogFactory.getLog(CredentialManagerImpl.class); + /** The dao. */ @EJB private DaoActor daoActor; @@ -148,15 +153,18 @@ public void saveElement(String token, String businessId) { User user = daoActor.getLoggedUser(token); Permission p = getPermission(token, businessId); - if ((p == null) || (!user.getId().equals(p.getActor().getId()))) { - p = new Permission(); - p.setActor(user); - p.setBusinessId(businessId); - p.setOwner(true); - daoPermission.savePermission(p); - } else { - p.setOwner(true); - daoPermission.updatePermission(p); + if (!user.isSuperAdmin()) { + if ((p == null) || (!user.getId().equals(p.getActor().getId()))) { + p = new Permission(); + p.setActor(user); + p.setBusinessId(businessId); + p.setOwner(true); + daoPermission.savePermission(p); + log.debug("CREATED PERMISSION : " + p.toString()); + } else { + p.setOwner(true); + daoPermission.updatePermission(p); + } } synchronized (usersCachedSynchronizer) { usersCached.clear(); Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoPermission.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoPermission.java 2008-03-04 17:25:07 UTC (rev 1284) +++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoPermission.java 2008-03-04 18:25:34 UTC (rev 1285) @@ -41,17 +41,7 @@ /** * Gets the permissions. * - * @param businessId the business id * @param actor the actor - * - * @return the permissions - */ - public List<Permission> getPermissions(Actor actor, String businessId); - - /** - * Gets the permissions. - * - * @param actor the actor * @param count the count * @param indexStart the index start * Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoPermissionImpl.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoPermissionImpl.java 2008-03-04 17:25:07 UTC (rev 1284) +++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoPermissionImpl.java 2008-03-04 18:25:34 UTC (rev 1285) @@ -24,11 +24,12 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.codelutin.util.CollectionUtil; import fr.cemagref.simexplorer.is.security.entities.Actor; import fr.cemagref.simexplorer.is.security.entities.Permission; -import fr.cemagref.simexplorer.is.security.entities.User; /** * The Class DaoPermissionImpl. @@ -36,6 +37,8 @@ @Stateless(name = "DaoPermission") public class DaoPermissionImpl implements DaoPermission { + private static final Log log = LogFactory.getLog(DaoPermissionImpl.class); + /** The em. */ @PersistenceContext(unitName = "simexploreris-security") private EntityManager em; @@ -52,17 +55,6 @@ } /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.security.dao.DaoActor#getPermissions(fr.cemagref.simexplorer.is.security.entities.Actor, java.lang.String) - */ - @Override - public List<Permission> getPermissions(Actor actor, String businessId) { - List<Permission> permissions = CollectionUtil.toGenericList(em.createQuery( - "select p from Permission p where p.businessId=:businessId and p.actor=:actor").setParameter( - "businessId", businessId).setParameter("actor", actor).getResultList(), Permission.class); - return permissions; - } - - /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.security.dao.DaoPermission#getPermissionsOwnedBy(fr.cemagref.simexplorer.is.security.entities.Actor) */ @Override Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Permission.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Permission.java 2008-03-04 17:25:07 UTC (rev 1284) +++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/entities/Permission.java 2008-03-04 18:25:34 UTC (rev 1285) @@ -48,6 +48,20 @@ /** The is owner. */ private boolean isOwner; + @Override + public String toString() { + StringBuffer sb = new StringBuffer(); + sb.append("Permission ").append(id).append(" ["); + sb.append("businessId : ").append(businessId).append(", "); + sb.append("actor : ").append(actor).append(", "); + sb.append("canRead : ").append(canRead).append(", "); + sb.append("canWrite : ").append(canWrite).append(", "); + sb.append("canAdmin : ").append(canAdmin).append(", "); + sb.append("isOwner : ").append(isOwner).append(", "); + sb.append("]"); + return sb.toString(); + } + /** * Gets the id. *