Index: topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernatePermissionManager.java diff -u topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernatePermissionManager.java:1.2 topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernatePermissionManager.java:1.3 --- topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernatePermissionManager.java:1.2 Fri Jul 21 00:55:03 2006 +++ topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernatePermissionManager.java Tue Aug 22 09:04:50 2006 @@ -110,6 +110,7 @@ TopiaEntityPermissionImpl entityPerm = (TopiaEntityPermissionImpl)getDAO().create("id", id); entityPerm.init(id, principals, actions); getDAO().update(entityPerm); + //Le cache a ete mis a jour au moment du create TopiaPermission perm = getCache().get(entityPerm); return perm; } @@ -143,4 +144,12 @@ TopiaSecurityVetoableListener.checkPermission(topiaId, actions); } + public void commit() throws TopiaException { + context.commitTransaction(); + } + + public void rollback() throws TopiaException { + context.rollbackTransaction(); + } + } //TopiaHibernatePermissionManager Index: topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernateUserManager.java diff -u topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernateUserManager.java:1.2 topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernateUserManager.java:1.3 --- topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernateUserManager.java:1.2 Fri Jul 21 00:55:03 2006 +++ topia2/src/java/org/codelutin/topia/security/entities/hibernate/TopiaHibernateUserManager.java Tue Aug 22 09:04:50 2006 @@ -43,6 +43,8 @@ import java.util.List; import java.util.Set; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.codelutin.topia.TopiaContext; import org.codelutin.topia.TopiaException; import org.codelutin.topia.framework.TopiaContextImplementor; @@ -56,6 +58,8 @@ */ public class TopiaHibernateUserManager implements TopiaUserManager { + private final Log log = LogFactory.getLog(TopiaHibernateUserManager.class); + private TopiaDAO dao; private TopiaContextImplementor context; @@ -65,6 +69,8 @@ this.context = (TopiaContextImplementor)context; if (this.context.getParentContext() == null) { this.context = (TopiaContextImplementor)context.beginTransaction(); + } else { + log.warn("The context creation should be done on the root context"); } } @@ -138,4 +144,25 @@ return principals; } + /* (non-Javadoc) + * @see org.codelutin.topia.security.entities.TopiaUserManager#commit() + */ + public void commit() throws TopiaException { + context.commitTransaction(); + } + + /* (non-Javadoc) + * @see org.codelutin.topia.security.entities.TopiaUserManager#rollback() + */ + public void rollback() throws TopiaException { + context.rollbackTransaction(); + } + + /* (non-Javadoc) + * @see org.codelutin.topia.framework.security.TopiaUserManager#findUserByEmail(java.lang.String) + */ + public List listUsers() throws TopiaException { + return getDAO().findAll(); + } + } //TopiaHibernateUserManager