From: Andreas Müller Date: Tue, 9 Apr 2013 18:15:43 +0000 (+0000) Subject: merge trunk to hibernate4 X-Git-Tag: cdmlib-parent-3.2.0~158^2~1 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/commitdiff_plain/82d66edf1d09a130198d0977465924aaab478830?hp=fdfb03a5a33d1e36243c9ca3ebdd15a03560c738 merge trunk to hibernate4 --- diff --git a/.gitattributes b/.gitattributes index 550793f52f..9f99e82f0e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1464,6 +1464,7 @@ cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxo cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImplTest.java -text cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonNodeDaoHibernateImplTest.java -text cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/view/AuditEventDaoTest.java -text +cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/hibenate/permission/CdmAuthorityTest.java -text cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/hibernate/CacheStrategyGeneratorTest.java -text cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/hibernate/CdmDeleteListenerTest.java -text cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/hibernate/replace/ReferringObjectMetadataFactoryTest.java -text diff --git a/cdmlib-io/pom.xml b/cdmlib-io/pom.xml index 7016343656..7373839039 100644 --- a/cdmlib-io/pom.xml +++ b/cdmlib-io/pom.xml @@ -42,10 +42,6 @@ test-jar test ${project.version} - - - eu.etaxonomy - cdmlib-services eu.etaxonomy diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/GrantedAuthorityImpl.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/GrantedAuthorityImpl.java index 784e04be16..5c53b8236f 100644 --- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/GrantedAuthorityImpl.java +++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/GrantedAuthorityImpl.java @@ -65,6 +65,18 @@ public class GrantedAuthorityImpl extends CdmBase implements GrantedAuthority { } return 0; } + + @Override + public boolean equals(Object o) { + if (o instanceof GrantedAuthority) { + if(this.authority == null && ((GrantedAuthority) o).getAuthority() == null) { + return true; + } else { + return this.authority.equals(((GrantedAuthority) o).getAuthority()); + } + } + return false; + } /* (non-Javadoc) * @see eu.etaxonomy.cdm.model.common.CdmBase#toString() diff --git a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/permission/CdmAuthority.java b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/permission/CdmAuthority.java index 5943a2e9c1..825cd90a14 100644 --- a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/permission/CdmAuthority.java +++ b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/permission/CdmAuthority.java @@ -120,6 +120,10 @@ public class CdmAuthority implements GrantedAuthority, ConfigAttribute, IGranted public EnumSet getOperation(){ return operation; } + + public void setOperation(EnumSet operation) { + this.operation = operation; + } public UUID getTargetUUID(){ return targetUuid; @@ -155,7 +159,7 @@ public class CdmAuthority implements GrantedAuthority, ConfigAttribute, IGranted // \\.? -> . // (?:(\\w*))(?:\\{([\\da-z\\-]+)\\})? -> Permmission and targetUuid // - String regex = "(\\w*)(?:\\((\\w*)\\))?\\.?(?:(\\w*))(?:\\{([\\da-z\\-]+)\\})?"; + String regex = "(\\w*)(?:\\((\\w*)\\))?\\.?(?:\\[(\\D*)\\])?(?:\\{([\\da-z\\-]+)\\})?"; Pattern pattern = Pattern.compile(regex); String[] tokens = new String[4]; logger.debug("parsing '" + authority + "'"); diff --git a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/permission/Operation.java b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/permission/Operation.java index 8ad2c49323..c6fcecb824 100644 --- a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/permission/Operation.java +++ b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/permission/Operation.java @@ -9,6 +9,7 @@ package eu.etaxonomy.cdm.persistence.hibernate.permission; import java.util.EnumSet; +import java.util.StringTokenizer; /** @@ -46,7 +47,16 @@ public class Operation { if(string.equals("NONE")){ return NONE; } - return EnumSet.of(CRUD.valueOf(string)); + StringTokenizer st = new StringTokenizer(string,","); + EnumSet op = EnumSet.noneOf(CRUD.class); + + while (st.hasMoreElements()) { + + String opStr = (String) st.nextElement(); + op.add(CRUD.valueOf(opStr.trim())); + } + + return op; } public static boolean isOperation(Object o){ diff --git a/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBaseTest.java b/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBaseTest.java index 477cb94524..47bebeaa94 100644 --- a/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBaseTest.java +++ b/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBaseTest.java @@ -74,7 +74,7 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec cdmBase = Taxon.NewInstance(null, null); cdmBase.setUuid(UUID.fromString("e463b270-c76b-11dd-ad8b-0800200c9a66")); - taxonEditorToken = new TestingAuthenticationToken("taxonEditor", "password", "TAXONBASE.CREATE", "TAXONBASE.UPDATE"); + taxonEditorToken = new TestingAuthenticationToken("taxonEditor", "password", "TAXONBASE.[CREATE]", "TAXONBASE.[UPDATE]"); adminToken = new TestingAuthenticationToken("admin", "password", "ALL.ADMIN"); testerToken = new TestingAuthenticationToken("tester", "password"); @@ -198,9 +198,9 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec try{ cdmEntityDaoBase.save(cdmBase); commitAndStartNewTransaction(null); + logger.error("Expected failure of evaluation."); } catch (RuntimeException e){ - securityException = findSecurityRuntimeException(e); - logger.error("Unexpected failure of evaluation.", securityException); + securityException = findSecurityRuntimeException(e); } finally { // needed in case saveOrUpdate was interrupted by the RuntimeException // commitAndStartNewTransaction() would raise an UnexpectedRollbackException diff --git a/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/hibenate/permission/CdmAuthorityTest.java b/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/hibenate/permission/CdmAuthorityTest.java new file mode 100644 index 0000000000..532b684f4d --- /dev/null +++ b/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/hibenate/permission/CdmAuthorityTest.java @@ -0,0 +1,74 @@ +/** +* Copyright (C) 2007 EDIT +* European Distributed Institute of Taxonomy +* http://www.e-taxonomy.eu +* +* The contents of this file are subject to the Mozilla Public License Version 1.1 +* See LICENSE.TXT at the top of this package for the full license terms. +*/ + +package eu.etaxonomy.cdm.persistence.hibenate.permission; + +import static org.junit.Assert.*; + +import java.util.EnumSet; +import java.util.UUID; + +import org.junit.Before; +import org.junit.Test; +import org.springframework.security.core.GrantedAuthority; + +import sun.security.provider.PolicyParser.ParsingException; + +import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl; +import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD; +import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmAuthority; +import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmPermissionClass; + +/** + * @author c.mathew + * @created Mar 26, 2013 + * @version 1.0 + */ +public class CdmAuthorityTest { + + private GrantedAuthorityImpl grantedAuthority; + private String authority; + + /** + * @throws java.lang.Exception + */ + @Before + public void setUp() throws Exception { + grantedAuthority = GrantedAuthorityImpl.NewInstance(); + authority = ""; + } + + /** + * Test method for {@link eu.etaxonomy.cdm.persistence.hibernate.permission#getAuthority()}. + * @throws ParsingException + */ + @Test + public final void testGetAuthority() throws ParsingException { + // create CdmAuthority object manually + CdmPermissionClass tnClass = CdmPermissionClass.TAXONBASE; + String property = "Taxon"; + EnumSet operation = EnumSet.noneOf(CRUD.class); + operation.add(CRUD.READ); + operation.add(CRUD.UPDATE); + UUID uuid = UUID.fromString("e0358c98-4222-4d17-811c-7ce18bd565ee"); + CdmAuthority cdma = new CdmAuthority(tnClass,property, operation, uuid); + String expectedAuthority = "TAXONBASE(Taxon).[READ, UPDATE]{e0358c98-4222-4d17-811c-7ce18bd565ee}"; + System.out.println(cdma.getAuthority()); + System.out.println(expectedAuthority); + // check object getAuthority with expectedAuthority + assertEquals(expectedAuthority, cdma.getAuthority()); + //check programmatic generation of CdmAuthority by parsing authority string + cdma = CdmAuthority.fromGrantedAuthority(cdma); + assertEquals(expectedAuthority, cdma.getAuthority()); + } + + + +} + diff --git a/cdmlib-print/src/main/resources/stylesheets/mediawiki/multipages.xsl b/cdmlib-print/src/main/resources/stylesheets/mediawiki/multipages.xsl index 40d42d187d..fe67b6f014 100644 --- a/cdmlib-print/src/main/resources/stylesheets/mediawiki/multipages.xsl +++ b/cdmlib-print/src/main/resources/stylesheets/mediawiki/multipages.xsl @@ -9,10 +9,13 @@ - + select="concat(year-from-date(current-date()),'-',month-from-date(current-date()),'-',day-from-date(current-date()),'T',hours-from-time(current-time()),':',minutes-from-time(current-time()),':00Z')" + /> + + Sybille Test + @@ -147,14 +150,20 @@ - Sybille Test + + + + + + + - + @@ -226,7 +235,9 @@ - + + + @@ -312,6 +323,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + }} + + + + + + + + + + + + + + }}}} + + + + + + + + + + + + + + + + + + + b + + + + + + i + + + + + + diff --git a/cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/SecurityTest.xml b/cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/SecurityTest.xml index 71c6891343..667a2d8e85 100644 --- a/cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/SecurityTest.xml +++ b/cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/SecurityTest.xml @@ -15,19 +15,19 @@ - - - - - + + + + + - - - - - - + + + + + +