Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjphillips2010-07-20 19:27:15 +0000
committerjphillips2010-07-20 19:27:15 +0000
commitbeb3dfe0cf20b08d26f26c9ee759e76a73636854 (patch)
treefc7e8d291163b7e2a620350b89debae79d822ef6 /plugins/org.eclipse.osee.framework.core.model
parent3adc5fa026233019214bf8ec5f153da04fa84224 (diff)
downloadorg.eclipse.osee-beb3dfe0cf20b08d26f26c9ee759e76a73636854.tar.gz
org.eclipse.osee-beb3dfe0cf20b08d26f26c9ee759e76a73636854.tar.xz
org.eclipse.osee-beb3dfe0cf20b08d26f26c9ee759e76a73636854.zip
Added support for access control
Diffstat (limited to 'plugins/org.eclipse.osee.framework.core.model')
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/AccessData.java55
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AccessFilterChain.java17
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/ArtifactAccessFilter.java18
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AttributeTypeAccessFilter.java22
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/BranchAccessFilter.java16
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/IAccessFilter.java3
6 files changed, 78 insertions, 53 deletions
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/AccessData.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/AccessData.java
index 80afe5d7659..17c1d56cb87 100644
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/AccessData.java
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/AccessData.java
@@ -10,46 +10,35 @@
*******************************************************************************/
package org.eclipse.osee.framework.core.model;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.eclipse.osee.framework.core.data.IArtifactType;
-import org.eclipse.osee.framework.core.data.IAttributeType;
-import org.eclipse.osee.framework.core.data.IRelationType;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.osee.framework.core.data.IArtifactType;
+import org.eclipse.osee.framework.core.data.IAttributeType;
+import org.eclipse.osee.framework.core.data.IRelationType;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.model.access.ArtifactTypeFilter;
-import org.eclipse.osee.framework.core.model.access.AttributeTypeFilter;
-import org.eclipse.osee.framework.core.model.access.IAcceptFilter;
-import org.eclipse.osee.framework.core.model.access.IAccessControllable;
-import org.eclipse.osee.framework.jdk.core.type.DoubleKeyHashMap;
-import org.eclipse.osee.framework.jdk.core.type.Pair;
-
+import org.eclipse.osee.framework.core.model.access.ArtifactTypeFilter;
+import org.eclipse.osee.framework.core.model.access.AttributeTypeFilter;
+import org.eclipse.osee.framework.core.model.access.IAcceptFilter;
+import org.eclipse.osee.framework.jdk.core.type.DoubleKeyHashMap;
+import org.eclipse.osee.framework.jdk.core.type.Pair;
+
/**
* @author Jeff C. Phillips
* @author Roberto E. Escobar
*/
-public class AccessData {
-
- private final DoubleKeyHashMap<IBasicArtifact<?>, Object, PermissionEnum> artifactPermissions;
- private final Map<IAccessControllable, PermissionEnum> objectPermissions;
-
- public AccessData() {
- this.artifactPermissions = new DoubleKeyHashMap<IBasicArtifact<?>, Object, PermissionEnum>();
- this.objectPermissions = new HashMap<IAccessControllable, PermissionEnum>();
- }
-
- public void add(IAccessControllable accessObject, PermissionEnum permission) {
- objectPermissions.put(accessObject, permission);
- }
+public class AccessData {
- //////--------------------------------------------------------------------
+ private final DoubleKeyHashMap<IBasicArtifact<?>, Object, PermissionEnum> artifactPermissions;
- public void add(Object object, PermissionEnum permission) {
- artifactPermissions.put(null, object, permission);
- }
+ public AccessData() {
+ this.artifactPermissions = new DoubleKeyHashMap<IBasicArtifact<?>, Object, PermissionEnum>();
+ }
+
+ public void add(Object object, PermissionEnum permission) {
+ artifactPermissions.put(null, object, permission);
+ }
public void add(IBasicArtifact<?> artifact, Object object, PermissionEnum permission) {
artifactPermissions.put(artifact, object, permission);
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AccessFilterChain.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AccessFilterChain.java
index 373d76d2a35..d67faf7e60d 100644
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AccessFilterChain.java
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AccessFilterChain.java
@@ -5,10 +5,12 @@
*/
package org.eclipse.osee.framework.core.model.access.exp;
+import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.core.model.IBasicArtifact;
public class AccessFilterChain {
private final List<IAccessFilter> filters;
@@ -27,16 +29,25 @@ public class AccessFilterChain {
filters.add(filter);
}
- public boolean doFilter(Object object, PermissionEnum toPermission, PermissionEnum agrPermission) {
+ public boolean doFilter(IBasicArtifact<?> artifact, Object object, PermissionEnum toPermission, PermissionEnum agrPermission) {
+ boolean toReturn = false;
Collections.sort(filters);
for (IAccessFilter filter : filters) {
if (filter.acceptToObject(object)) {
- agrPermission = filter.filter(object, toPermission, agrPermission, this);
+ agrPermission = filter.filter(artifact, object, toPermission, agrPermission, this);
} else {
break;
}
}
- return agrPermission.matches(toPermission);
+
+ if (agrPermission != null) {
+ toReturn = agrPermission.matches(toPermission);
+ }
+ return toReturn;
+ }
+
+ public void addAll(Collection<IAccessFilter> filtersToAdd) {
+ filters.addAll(filtersToAdd);
}
}
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/ArtifactAccessFilter.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/ArtifactAccessFilter.java
index 6ba2dd99c76..f9d79c92081 100644
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/ArtifactAccessFilter.java
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/ArtifactAccessFilter.java
@@ -11,10 +11,10 @@ import org.eclipse.osee.framework.core.model.IBasicArtifact;
public class ArtifactAccessFilter extends AbstractAccessFilter {
- private PermissionEnum artifactPermission;
+ private final PermissionEnum artifactPermission;
private final IBasicArtifact<?> artifact;
- public ArtifactAccessFilter(PermissionEnum artifactPermission, IBasicArtifact<?> artifact) {
+ public ArtifactAccessFilter(IBasicArtifact<?> artifact, PermissionEnum artifactPermission) {
super();
this.artifactPermission = artifactPermission;
this.artifact = artifact;
@@ -26,15 +26,21 @@ public class ArtifactAccessFilter extends AbstractAccessFilter {
}
@Override
- public PermissionEnum filter(Object object, PermissionEnum toPermission, PermissionEnum agrPermission, AccessFilterChain filterChain) {
- if (agrPermission == PermissionEnum.DENY || artifactPermission == null) {
- artifactPermission = agrPermission;
+ public PermissionEnum filter(IBasicArtifact<?> artifact, Object object, PermissionEnum toPermission, PermissionEnum agrPermission, AccessFilterChain filterChain) {
+ PermissionEnum toReturn = null;
+
+ if (this.artifact.equals(artifact)) {
+ if (agrPermission != PermissionEnum.DENY && artifactPermission != null) {
+ agrPermission = artifactPermission;
+ }
+ toReturn = agrPermission;
}
- return artifactPermission;
+ return toReturn;
}
@Override
public boolean acceptToObject(Object object) {
+ //Return false if the object to be checked is a branch.
return !(object instanceof IOseeBranch);
}
}
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AttributeTypeAccessFilter.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AttributeTypeAccessFilter.java
index 521b233d240..df523311858 100644
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AttributeTypeAccessFilter.java
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/AttributeTypeAccessFilter.java
@@ -7,18 +7,19 @@ package org.eclipse.osee.framework.core.model.access.exp;
import org.eclipse.osee.framework.core.data.IAttributeType;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.core.model.IBasicArtifact;
public class AttributeTypeAccessFilter extends AbstractAccessFilter {
private final PermissionEnum permission;
private final IBasicArtifact<?> artifact;
- private final IAttributeType attribute;
+ private final IAttributeType type;
- public AttributeTypeAccessFilter(PermissionEnum permission, IBasicArtifact<?> artifact, IAttributeType attribute) {
+ public AttributeTypeAccessFilter(PermissionEnum permission, IBasicArtifact<?> artifact, IAttributeType type) {
super();
this.permission = permission;
this.artifact = artifact;
- this.attribute = attribute;
+ this.type = type;
}
@Override
@@ -28,12 +29,21 @@ public class AttributeTypeAccessFilter extends AbstractAccessFilter {
@Override
public boolean acceptToObject(Object object) {
- return true;
+ //Return false if the object to be checked is a branch or artifact.
+ return (!(object instanceof Branch) && !(object instanceof IBasicArtifact<?>));
}
@Override
- public PermissionEnum filter(Object object, PermissionEnum toPermission, PermissionEnum agrPermission, AccessFilterChain filterChain) {
- return null;
+ public PermissionEnum filter(IBasicArtifact<?> artifact, Object object, PermissionEnum toPermission, PermissionEnum agrPermission, AccessFilterChain filterChain) {
+ PermissionEnum toReturn = agrPermission;
+
+ if (this.artifact.equals(artifact) && type.equals(object)) {
+ if (agrPermission != PermissionEnum.DENY && permission != null) {
+ agrPermission = permission;
+ toReturn = agrPermission;
+ }
+ }
+ return toReturn;
}
}
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/BranchAccessFilter.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/BranchAccessFilter.java
index 578020da01c..239899dd71e 100644
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/BranchAccessFilter.java
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/BranchAccessFilter.java
@@ -6,12 +6,14 @@
package org.eclipse.osee.framework.core.model.access.exp;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.core.model.IBasicArtifact;
public class BranchAccessFilter extends AbstractAccessFilter {
private final PermissionEnum branchPermission;
+ private final IBasicArtifact<?> artifact;
- public BranchAccessFilter(PermissionEnum branchPermission) {
- super();
+ public BranchAccessFilter(IBasicArtifact<?> artifact, PermissionEnum branchPermission) {
+ this.artifact = artifact;
this.branchPermission = branchPermission;
}
@@ -21,8 +23,14 @@ public class BranchAccessFilter extends AbstractAccessFilter {
}
@Override
- public PermissionEnum filter(Object object, PermissionEnum toPermission, PermissionEnum agrPermission, AccessFilterChain filterChain) {
- return branchPermission;
+ public PermissionEnum filter(IBasicArtifact<?> artifact, Object object, PermissionEnum toPermission, PermissionEnum agrPermission, AccessFilterChain filterChain) {
+ PermissionEnum toReturn = agrPermission;
+
+ if (this.artifact.equals(artifact)) {
+ agrPermission = branchPermission;
+ }
+
+ return toReturn;
}
@Override
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/IAccessFilter.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/IAccessFilter.java
index 29426bfa37e..b5a29d45042 100644
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/IAccessFilter.java
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/exp/IAccessFilter.java
@@ -6,11 +6,12 @@
package org.eclipse.osee.framework.core.model.access.exp;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.core.model.IBasicArtifact;
public interface IAccessFilter extends Comparable<IAccessFilter> {
int getRank();
boolean acceptToObject(Object object);
- PermissionEnum filter(Object object, PermissionEnum toPermission, PermissionEnum agrPermission, AccessFilterChain filterChain);
+ PermissionEnum filter(IBasicArtifact<?> artifact, Object object, PermissionEnum toPermission, PermissionEnum agrPermission, AccessFilterChain filterChain);
}

Back to the top