Index: topia-security/src/test/org/codelutin/topia/security/test/ScriptInitialisationDataBase.java diff -u topia-security/src/test/org/codelutin/topia/security/test/ScriptInitialisationDataBase.java:1.1 topia-security/src/test/org/codelutin/topia/security/test/ScriptInitialisationDataBase.java:1.2 --- topia-security/src/test/org/codelutin/topia/security/test/ScriptInitialisationDataBase.java:1.1 Mon Sep 25 13:24:40 2006 +++ topia-security/src/test/org/codelutin/topia/security/test/ScriptInitialisationDataBase.java Fri Sep 29 15:36:59 2006 @@ -88,6 +88,13 @@ TopiaEntityAuthorizationDAO topiaEntityAuthorizationDAO = TopiaSecurityDAOHelper.getTopiaEntityAuthorizationDAO(childContext); TopiaLinkAuthorizationDAO topiaLinkAuthorizationDAO = TopiaSecurityDAOHelper.getTopiaLinkAuthorizationDAO(childContext); TopiaAssociationAuthorizationDAO topiaAssociationAuthorizationDAO = TopiaSecurityDAOHelper.getTopiaAssociationAuthorizationDAO(childContext); + + /* Création d'un admin */ + TopiaUser admin = topiaUserDAO.create(); + admin.setLogin("admin"); + admin.setPassword("azerty"); + admin.update(); + childContext.commitTransaction(); /* Création d'un utilisateur */ TopiaUser thimel = topiaUserDAO.create(); @@ -152,6 +159,13 @@ childContext.commitTransaction(); /* Création des autorisations Entity */ + TopiaEntityAuthorization authorizationForAdmin = topiaEntityAuthorizationDAO.create(); + authorizationForAdmin.setId("*"); + authorizationForAdmin.setActions(15); + authorizationForAdmin.setPrincipals(admin.getTopiaId()); + authorizationForAdmin.update(); + childContext.commitTransaction(); + TopiaEntityAuthorization authorizationForRuchaud = topiaEntityAuthorizationDAO.create(); authorizationForRuchaud.setId(Person.class.getName() + "#*"); authorizationForRuchaud.setActions(LOAD); 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.9 topia-security/src/test/org/codelutin/topia/security/test/TopiaSecurityTest.java:1.10 --- topia-security/src/test/org/codelutin/topia/security/test/TopiaSecurityTest.java:1.9 Mon Sep 25 13:24:40 2006 +++ topia-security/src/test/org/codelutin/topia/security/test/TopiaSecurityTest.java Fri Sep 29 15:36:59 2006 @@ -126,10 +126,10 @@ List findAllPet = petDAO.findAll(); TopiaSecurityFilterList petLOAD = new TopiaSecurityFilterList(findAllPet, LOAD); - assertEquals(petLOAD.size(), 0); + assertEquals(0, petLOAD.size()); TopiaSecurityFilterList petUPDATE = new TopiaSecurityFilterList(findAllPet, UPDATE); - assertEquals(petUPDATE.size(), 0); + assertEquals(0, petUPDATE.size()); return null; } @@ -165,10 +165,49 @@ List findAllPet = petDAO.findAll(); TopiaSecurityFilterList petLOAD = new TopiaSecurityFilterList(findAllPet, LOAD); - assertEquals(petLOAD.size(), 2); + assertEquals(2, petLOAD.size()); TopiaSecurityFilterList petUPDATE = new TopiaSecurityFilterList(findAllPet, UPDATE); - assertEquals(petUPDATE.size(), 1); + assertEquals(1, petUPDATE.size()); + + return null; + } + }, null); + + loginContext.logout(); + } + + public void testAuthorizationAdmin() throws Exception { + /* Authentification de l'utilisateur Ruchaud */ + LoginContext loginContext = new LoginContext("topia", new TopiaCallbackHandler( + "admin", "azerty")); + loginContext.login(); + Subject subject = loginContext.getSubject(); + + /* Tests */ + Subject.doAsPrivileged(subject, new PrivilegedExceptionAction() { + public Object run() throws Exception { + TopiaContext childContext = context.beginTransaction(); + + /* Personnes */ + PersonDAO personDAO = TopiaSecurityDAOHelper.getPersonDAO(childContext); + List findAllPerson = personDAO.findAll(); + + TopiaSecurityFilterList personsLOAD = new TopiaSecurityFilterList(findAllPerson, LOAD); + assertEquals(3, personsLOAD.size()); + + TopiaSecurityFilterList personsUPDATE = new TopiaSecurityFilterList(findAllPerson, UPDATE); + assertEquals(3, personsUPDATE.size()); + + /* Annimaux */ + PetDAO petDAO = TopiaSecurityDAOHelper.getPetDAO(childContext); + List findAllPet = petDAO.findAll(); + + TopiaSecurityFilterList petLOAD = new TopiaSecurityFilterList(findAllPet, LOAD); + assertEquals(3, petLOAD.size()); + + TopiaSecurityFilterList petUPDATE = new TopiaSecurityFilterList(findAllPet, UPDATE); + assertEquals(3, petUPDATE.size()); return null; }