diff --git a/src/main/java/caosdb/server/permissions/AbstractEntityACLFactory.java b/src/main/java/caosdb/server/permissions/AbstractEntityACLFactory.java index 6460cb34b6d9e450b8e419e1120ac7e2a490ef67..5d8174711c2dfd06798c5f5690b61540f55e5c56 100644 --- a/src/main/java/caosdb/server/permissions/AbstractEntityACLFactory.java +++ b/src/main/java/caosdb/server/permissions/AbstractEntityACLFactory.java @@ -31,14 +31,10 @@ import java.util.Map.Entry; public abstract class AbstractEntityACLFactory<T extends EntityACL> { - private final Map<ResponsibleAgent, Long> normalGrants = - new HashMap<>(); - private final Map<ResponsibleAgent, Long> priorityGrants = - new HashMap<>(); - private final Map<ResponsibleAgent, Long> normalDenials = - new HashMap<>(); - private final Map<ResponsibleAgent, Long> priorityDenials = - new HashMap<>(); + private final Map<ResponsibleAgent, Long> normalGrants = new HashMap<>(); + private final Map<ResponsibleAgent, Long> priorityGrants = new HashMap<>(); + private final Map<ResponsibleAgent, Long> normalDenials = new HashMap<>(); + private final Map<ResponsibleAgent, Long> priorityDenials = new HashMap<>(); public void grant(final ResponsibleAgent role, final int... permissionBitNumber) { grant(role, false, permissionBitNumber); @@ -183,8 +179,7 @@ public abstract class AbstractEntityACLFactory<T extends EntityACL> { set.getKey(), this.normalDenials.get(set.getKey()) & ~set.getValue()); } if (this.normalGrants.containsKey(set.getKey())) { - this.normalGrants.put( - set.getKey(), this.normalGrants.get(set.getKey()) & ~set.getValue()); + this.normalGrants.put(set.getKey(), this.normalGrants.get(set.getKey()) & ~set.getValue()); } } for (final Entry<ResponsibleAgent, Long> set : this.priorityGrants.entrySet()) { @@ -193,14 +188,12 @@ public abstract class AbstractEntityACLFactory<T extends EntityACL> { set.getKey(), this.normalDenials.get(set.getKey()) & ~set.getValue()); } if (this.normalGrants.containsKey(set.getKey())) { - this.normalGrants.put( - set.getKey(), this.normalGrants.get(set.getKey()) & ~set.getValue()); + this.normalGrants.put(set.getKey(), this.normalGrants.get(set.getKey()) & ~set.getValue()); } } for (final Entry<ResponsibleAgent, Long> set : this.normalDenials.entrySet()) { if (this.normalGrants.containsKey(set.getKey())) { - this.normalGrants.put( - set.getKey(), this.normalGrants.get(set.getKey()) & ~set.getValue()); + this.normalGrants.put(set.getKey(), this.normalGrants.get(set.getKey()) & ~set.getValue()); } } } diff --git a/src/main/java/caosdb/server/permissions/EntityACL.java b/src/main/java/caosdb/server/permissions/EntityACL.java index 154c2bf756dfab7791fcee3a2687eb5cd47ff880..86346bdfa3c3846e7951e41268e117ec2a99aaab 100644 --- a/src/main/java/caosdb/server/permissions/EntityACL.java +++ b/src/main/java/caosdb/server/permissions/EntityACL.java @@ -24,6 +24,10 @@ package caosdb.server.permissions; import static caosdb.server.permissions.Role.OTHER_ROLE; import static caosdb.server.permissions.Role.OWNER_ROLE; + +import caosdb.server.accessControl.AuthenticationUtils; +import caosdb.server.accessControl.Principal; +import caosdb.server.database.exceptions.TransactionException; import java.util.ArrayList; import java.util.BitSet; import java.util.Collection; @@ -36,9 +40,6 @@ import org.apache.shiro.subject.Subject; import org.eclipse.jetty.util.ajax.JSON; import org.jdom2.DataConversionException; import org.jdom2.Element; -import caosdb.server.accessControl.AuthenticationUtils; -import caosdb.server.accessControl.Principal; -import caosdb.server.database.exceptions.TransactionException; public class EntityACL { @@ -153,7 +154,8 @@ public class EntityACL { private static boolean subjectIsOwner( final Subject subject, final List<ResponsibleAgent> owners) { for (final ResponsibleAgent owner : owners) { - if ((owner instanceof Role && subject.hasRole(owner.toString())) || (owner instanceof Principal && subject.getPrincipal().equals(owner))) { + if ((owner instanceof Role && subject.hasRole(owner.toString())) + || (owner instanceof Principal && subject.getPrincipal().equals(owner))) { return true; } } diff --git a/src/main/java/caosdb/server/permissions/EntityACLFactory.java b/src/main/java/caosdb/server/permissions/EntityACLFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..eeacb1260729f78f490e592891c0a93a334b42fa --- /dev/null +++ b/src/main/java/caosdb/server/permissions/EntityACLFactory.java @@ -0,0 +1,11 @@ +package caosdb.server.permissions; + +import java.util.Collection; + +public class EntityACLFactory extends AbstractEntityACLFactory<EntityACL> { + + @Override + protected EntityACL create(final Collection<EntityACI> acis) { + return new EntityACL(acis); + } +} diff --git a/src/main/java/caosdb/server/permissions/Role.java b/src/main/java/caosdb/server/permissions/Role.java index 95ce72897917665bcc6c05ba76be6c666d1db8c8..70e1a61f754b4beeffe8f8fe203b42842d49cb6d 100644 --- a/src/main/java/caosdb/server/permissions/Role.java +++ b/src/main/java/caosdb/server/permissions/Role.java @@ -22,10 +22,10 @@ */ package caosdb.server.permissions; +import caosdb.server.accessControl.UserSources; import java.util.HashMap; import org.jdom2.Attribute; import org.jdom2.Element; -import caosdb.server.accessControl.UserSources; public class Role implements ResponsibleAgent {