Index: topia-security/src/test/org/codelutin/topia/security/test/TopiaSecurityTest.java diff -u topia-security/src/test/org/codelutin/topia/security/test/TopiaSecurityTest.java:1.7 topia-security/src/test/org/codelutin/topia/security/test/TopiaSecurityTest.java:1.8 --- topia-security/src/test/org/codelutin/topia/security/test/TopiaSecurityTest.java:1.7 Tue Sep 19 09:01:15 2006 +++ topia-security/src/test/org/codelutin/topia/security/test/TopiaSecurityTest.java Thu Sep 21 13:22:14 2006 @@ -38,9 +38,11 @@ import org.codelutin.topia.TopiaContextFactory; import org.codelutin.topia.TopiaException; import org.codelutin.topia.framework.TopiaContextImplementor; -import org.codelutin.topia.persistence.TopiaDAO; +import org.codelutin.topia.security.TopiaSecurityDAOHelper; import org.codelutin.topia.security.TopiaSecurityManager; import org.codelutin.topia.security.TopiaSecurityManagerImpl; +import org.codelutin.topia.security.entities.authorization.TopiaAssociationAuthorization; +import org.codelutin.topia.security.entities.authorization.TopiaAssociationAuthorizationDAO; import org.codelutin.topia.security.entities.authorization.TopiaEntityAuthorization; import org.codelutin.topia.security.entities.authorization.TopiaEntityAuthorizationDAO; import org.codelutin.topia.security.entities.authorization.TopiaLinkAuthorization; @@ -51,6 +53,9 @@ import org.codelutin.topia.security.entities.user.TopiaUserDAO; import org.codelutin.topia.security.jaas.TopiaCallbackHandler; import org.codelutin.topia.security.test.entities.Person; +import org.codelutin.topia.security.test.entities.PersonDAO; +import org.codelutin.topia.security.test.entities.Pet; +import org.codelutin.topia.security.test.entities.PetDAO; public class TopiaSecurityTest extends TestCase { @@ -83,7 +88,8 @@ /* DAO Personne */ TopiaContextImplementor childContext = (TopiaContextImplementor) context.beginTransaction(); - TopiaDAO personDAO = childContext.getDAO(Person.class); + PersonDAO personDAO = TopiaSecurityDAOHelper.getPersonDAO(childContext); + PetDAO petDAO = TopiaSecurityDAOHelper.getPetDAO(childContext); /* DAOs Sécurité */ TopiaSecurityManager securityManager = new TopiaSecurityManagerImpl(context); @@ -91,6 +97,7 @@ TopiaGroupDAO topiaGroupDAO = ((TopiaSecurityManagerImpl)securityManager).getTopiaGroupDAO(); TopiaEntityAuthorizationDAO topiaEntityAuthorizationDAO = ((TopiaSecurityManagerImpl)securityManager).getTopiaEntityAuthorizationDAO(); TopiaLinkAuthorizationDAO topiaLinkAuthorizationDAO = ((TopiaSecurityManagerImpl)securityManager).getTopiaLinkAuthorizationDAO(); + TopiaAssociationAuthorizationDAO topiaAssociationAuthorizationDAO = ((TopiaSecurityManagerImpl)securityManager).getTopiaAssociationAuthorizationDAO(); /* Création d'un utilisateur */ TopiaUser thimel = topiaUserDAO.create(); @@ -123,6 +130,25 @@ mylene.setFirstname("mylene"); personDAO.update(mylene); + /* Création des annimaux */ + Pet debux = petDAO.create(); + debux.setName("debux"); + debux.setType("chat"); + debux.setPerson(jacques); + debux.update(); + + Pet pluto = petDAO.create(); + pluto.setName("pluto"); + pluto.setType("chien"); + pluto.setPerson(jacques); + pluto.update(); + + Pet fliper = petDAO.create(); + fliper.setName("fliper"); + fliper.setType("dauphin"); + fliper.setPerson(mylene); + fliper.update(); + /* Création des autorisations Entity */ TopiaEntityAuthorization authorizationForRuchaud = topiaEntityAuthorizationDAO.create(); authorizationForRuchaud.setId(Person.class.getName() + "#*"); @@ -140,9 +166,24 @@ /* Création d'une autorisation Link */ TopiaLinkAuthorization linkAuthorization = topiaLinkAuthorizationDAO.create(); linkAuthorization.setId(mylene.getTopiaId()); - linkAuthorization.setAuthorization(authorizationForThimel); + linkAuthorization.setTopiaAuthorization(authorizationForThimel); linkAuthorization.update(); + /* Création d'une authorisation association */ + TopiaAssociationAuthorization associationAuthorization = topiaAssociationAuthorizationDAO.create(); + associationAuthorization.setIdBeginAssociation(jacques.getTopiaId()); + associationAuthorization.setNameAssociation("pet"); + associationAuthorization.setActions(LOAD); + associationAuthorization.setPrincipals(ruchaud.getTopiaId()); + associationAuthorization.update(); + + associationAuthorization = topiaAssociationAuthorizationDAO.create(); + associationAuthorization.setIdBeginAssociation(mylene.getTopiaId()); + associationAuthorization.setNameAssociation("pet"); + associationAuthorization.setActions(LOAD); + associationAuthorization.setPrincipals(ruchaud.getTopiaId()); + associationAuthorization.update(); + /* Commit */ childContext.commitTransaction(); securityManager.getSecurityContext().commitTransaction(); @@ -198,8 +239,13 @@ public Object run() throws Exception { TopiaContext context = TopiaContextFactory.getContext(getProperties()); TopiaContextImplementor childContext = (TopiaContextImplementor) context.beginTransaction(); - TopiaDAO personDAO = childContext.getDAO(Person.class); + + PersonDAO personDAO = TopiaSecurityDAOHelper.getPersonDAO(childContext); assertEquals(personDAO.findAll().size(), 2); + + PetDAO petDAO = TopiaSecurityDAOHelper.getPetDAO(childContext); + assertEquals(petDAO.findAll().size(), 0); + return null; } }, null); @@ -219,8 +265,13 @@ public Object run() throws Exception { TopiaContext context = TopiaContextFactory.getContext(getProperties()); TopiaContextImplementor childContext = (TopiaContextImplementor) context.beginTransaction(); - TopiaDAO personDAO = childContext.getDAO(Person.class); + + PersonDAO personDAO = TopiaSecurityDAOHelper.getPersonDAO(childContext); assertEquals(personDAO.findAll().size(), 2); + + PetDAO petDAO = TopiaSecurityDAOHelper.getPetDAO(childContext); + assertEquals(petDAO.findAll().size(), 3); + return null; } }, null);