blob: dda3a1a8001deb6dcf2a4db2a5dd76d129ed4bf5 [file] [log] [blame]
diff --git a/features/org.eclipse.osee.core.server.external.feature/feature.xml b/features/org.eclipse.osee.core.server.external.feature/feature.xml
index 0eb95c6d0c..683b9d4a63 100644
--- a/features/org.eclipse.osee.core.server.external.feature/feature.xml
+++ b/features/org.eclipse.osee.core.server.external.feature/feature.xml
@@ -1076,20 +1076,6 @@
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.osee.framework.core.dsl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osee.framework.core.dsl.integration"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
<plugin
id="org.eclipse.osee.framework.resource.management"
download-size="0"
diff --git a/features/org.eclipse.osee.core.server.feature/feature.xml b/features/org.eclipse.osee.core.server.feature/feature.xml
index 56e23e30f1..f072155677 100644
--- a/features/org.eclipse.osee.core.server.feature/feature.xml
+++ b/features/org.eclipse.osee.core.server.feature/feature.xml
@@ -552,20 +552,6 @@
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.osee.framework.core.dsl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osee.framework.core.dsl.integration"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
<plugin
id="org.eclipse.osee.framework.core.model"
download-size="0"
diff --git a/features/org.eclipse.osee.framework.feature/feature.xml b/features/org.eclipse.osee.framework.feature/feature.xml
index 834bf6f182..2d6a2585bd 100644
--- a/features/org.eclipse.osee.framework.feature/feature.xml
+++ b/features/org.eclipse.osee.framework.feature/feature.xml
@@ -239,34 +239,6 @@
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.osee.framework.access"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osee.framework.access.provider"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osee.framework.core.dsl.integration"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osee.framework.core.dsl"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
<plugin
id="org.eclipse.osee.framework.branch.gantt"
download-size="0"
diff --git a/features/org.eclipse.osee.framework.ui.feature/feature.xml b/features/org.eclipse.osee.framework.ui.feature/feature.xml
index 3d717212ae..f07e988c3e 100644
--- a/features/org.eclipse.osee.framework.ui.feature/feature.xml
+++ b/features/org.eclipse.osee.framework.ui.feature/feature.xml
@@ -31,7 +31,6 @@
<import plugin="org.eclipse.osee.framework.jdk.core"/>
<import plugin="org.eclipse.osee.framework.logging"/>
<import plugin="org.eclipse.osee.framework.plugin.core"/>
- <import plugin="org.eclipse.osee.framework.access"/>
<import plugin="org.eclipse.osee.framework.ui.plugin"/>
<import plugin="org.eclipse.osee.framework.ui.swt"/>
<import plugin="org.eclipse.ui.intro"/>
@@ -58,7 +57,6 @@
<import plugin="org.eclipse.zest.layouts"/>
<import plugin="org.eclipse.gef"/>
<import plugin="org.eclipse.osee.ote.define"/>
- <import plugin="org.eclipse.osee.framework.core.dsl"/>
<import plugin="org.eclipse.xtext.ui"/>
<import plugin="org.eclipse.ui.editors" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.xtext.ui.shared"/>
@@ -70,7 +68,6 @@
<import plugin="org.eclipse.xtext"/>
<import plugin="org.eclipse.core.commands"/>
<import plugin="org.eclipse.core.jobs"/>
- <import plugin="org.eclipse.osee.framework.core.dsl.integration"/>
<import plugin="org.eclipse.swt"/>
<import plugin="org.eclipse.osgi"/>
<import plugin="org.eclipse.jdt.core"/>
@@ -140,18 +137,4 @@
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.osee.framework.core.dsl.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.osee.framework.core.dsl.ui.integration"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
</feature>
diff --git a/plugins/org.eclipse.osee.ats.api/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.api/META-INF/MANIFEST.MF
index 1875dc5b13..4a5c885fc2 100644
--- a/plugins/org.eclipse.osee.ats.api/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.api/META-INF/MANIFEST.MF
@@ -66,11 +66,14 @@ Import-Package: com.fasterxml.jackson.annotation,
org.eclipse.nebula.widgets.xviewer.core.model,
org.eclipse.osee.activity.api,
org.eclipse.osee.framework.core,
+ org.eclipse.osee.framework.core.access,
+ org.eclipse.osee.framework.core.access.context,
org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.enums.token,
org.eclipse.osee.framework.core.event,
org.eclipse.osee.framework.core.model,
+ org.eclipse.osee.framework.core.model.access,
org.eclipse.osee.framework.core.model.change,
org.eclipse.osee.framework.core.util,
org.eclipse.osee.framework.core.util.result,
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/AtsApi.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/AtsApi.java
index 5cb4cdfd1b..f1cd52214c 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/AtsApi.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/AtsApi.java
@@ -15,6 +15,7 @@ package org.eclipse.osee.ats.api;
import java.util.Collection;
import java.util.List;
+import org.eclipse.osee.ats.api.access.IAtsAccessService;
import org.eclipse.osee.ats.api.agile.IAgileService;
import org.eclipse.osee.ats.api.agile.IAgileSprintHtmlOperation;
import org.eclipse.osee.ats.api.ai.IAtsActionableItemService;
@@ -56,6 +57,7 @@ import org.eclipse.osee.ats.api.workflow.log.IAtsLogFactory;
import org.eclipse.osee.ats.api.workflow.state.IAtsStateFactory;
import org.eclipse.osee.ats.api.workflow.state.IAtsWorkStateFactory;
import org.eclipse.osee.framework.core.OseeApi;
+import org.eclipse.osee.framework.core.access.IAccessControlService;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
@@ -200,6 +202,11 @@ public interface AtsApi extends OseeApi, IAtsEarnedValueServiceProvider, IAtsWor
IAtsServerEndpointProvider getServerEndpoints();
+ IAtsAccessService getAtsAccessService();
+
+ @Override
+ IAccessControlService getAccessControlService();
+
default void reloadServerAndClientCaches() {
getServerEndpoints().getConfigEndpoint().getWithPend();
getConfigService().getConfigurationsWithPend();
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/access/AtsAccessContextTokens.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/access/AtsAccessContextTokens.java
index 9ea5544367..598b2b9962 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/access/AtsAccessContextTokens.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/access/AtsAccessContextTokens.java
@@ -20,8 +20,8 @@ import org.eclipse.osee.framework.core.data.AccessContextToken;
*/
public final class AtsAccessContextTokens {
- public static final AccessContextToken DENY_CONTEXT =
- AccessContextToken.valueOf(4870045005030602805L, "ats.branchobject.deny");
+ public static final AccessContextToken ATS_BRANCH_READ =
+ AccessContextToken.valueOf(4870045005030602805L, "ats.branch.read");
private AtsAccessContextTokens() {
// Branch Object Contexts;
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/tx/IAtsConfigTxActionableItem.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/tx/IAtsConfigTxActionableItem.java
index 8ed5867c63..94151a1d4c 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/tx/IAtsConfigTxActionableItem.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/tx/IAtsConfigTxActionableItem.java
@@ -16,6 +16,7 @@ package org.eclipse.osee.ats.api.config.tx;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.config.Csci;
import org.eclipse.osee.ats.api.config.WorkType;
+import org.eclipse.osee.framework.core.data.AccessContextToken;
import org.eclipse.osee.framework.core.data.AttributeTypeToken;
import org.eclipse.osee.framework.core.data.AccessContextToken;
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/tx/IAtsConfigTxTeamDef.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/tx/IAtsConfigTxTeamDef.java
index 7c0430c899..228dd6fe43 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/tx/IAtsConfigTxTeamDef.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/config/tx/IAtsConfigTxTeamDef.java
@@ -20,6 +20,7 @@ import org.eclipse.osee.ats.api.query.NextRelease;
import org.eclipse.osee.ats.api.query.ReleasedOption;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.version.IAtsVersion;
+import org.eclipse.osee.framework.core.data.AccessContextToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.AttributeTypeToken;
import org.eclipse.osee.framework.core.data.AccessContextToken;
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/data/AtsUserGroups.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/data/AtsUserGroups.java
index 477883d8ed..b69ccc26f3 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/data/AtsUserGroups.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/data/AtsUserGroups.java
@@ -22,8 +22,8 @@ import org.eclipse.osee.framework.core.data.UserGroupArtifactToken;
public class AtsUserGroups {
public static IUserGroupArtifactToken AtsAddAttrColumns =
- UserGroupArtifactToken.valueOf(10847751L, "AtsAddAttrColumns");
- public static IUserGroupArtifactToken AtsAdmin = UserGroupArtifactToken.valueOf(136750L, "AtsAdmin");
- public static IUserGroupArtifactToken AtsTempAdmin = UserGroupArtifactToken.valueOf(5367074L, "AtsTempAdmin");
+ UserGroupArtifactToken.valueOf(10847751L, "Ats Add Attr Columns");
+ public static IUserGroupArtifactToken AtsAdmin = UserGroupArtifactToken.valueOf(136750L, "Ats Admin");
+ public static IUserGroupArtifactToken AtsTempAdmin = UserGroupArtifactToken.valueOf(5367074L, "AtsTemp Admin");
}
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/demo/DemoArtifactToken.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/demo/DemoArtifactToken.java
index e590012b0a..8b7e88dd22 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/demo/DemoArtifactToken.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/demo/DemoArtifactToken.java
@@ -43,6 +43,17 @@ public final class DemoArtifactToken {
public static final ArtifactToken SystemReqArtifact = ArtifactToken.valueOf(45454545, "System Req Artifact", DemoBranches.SAW_Bld_1, CoreArtifactTypes.SystemRequirementMsWord);
public static final ArtifactToken EventsSwReq = ArtifactToken.valueOf(200090, "Events", DemoBranches.SAW_Bld_1, CoreArtifactTypes.SoftwareRequirementMsWord);
+ //////////////////////////////////
+ // Software Requirements
+ //////////////////////////////////
+ public static final ArtifactToken CollaborativeRobotEvents = ArtifactToken.valueOf(200092, "Collaborative robot events", DemoBranches.SAW_Bld_2);
+ public static final ArtifactToken VirtualFixes = ArtifactToken.valueOf(200095, "VirtualFixes", DemoBranches.SAW_PL_Access_Baseline_Test);
+
+ //////////////////////////////////
+ // System Requirements
+ //////////////////////////////////
+ public static final ArtifactToken PerformanceRequirements = ArtifactToken.valueOf(200112, "Performance Requirements", DemoBranches.SAW_Bld_2);
+
//////////////////////////////////
// Impl Details Configuration
//////////////////////////////////
@@ -154,6 +165,10 @@ public final class DemoArtifactToken {
public static final ArtifactToken SAW_NoBranch_Req_TeamWf = ArtifactToken.valueOf(5564873, DemoWorkflowTitles.SAW_NO_BRANCH_REQT_CHANGES_FOR_DIAGRAM_VIEW, COMMON, AtsDemoOseeTypes.DemoReqTeamWorkflow);
public static final ArtifactToken SAW_NoBranch_Test_TeamWf = ArtifactToken.valueOf(11548766, DemoWorkflowTitles.SAW_NO_BRANCH_REQT_CHANGES_FOR_DIAGRAM_VIEW, COMMON, AtsDemoOseeTypes.DemoTestTeamWorkflow);
+ public static final ArtifactToken SAW_Access_Control_Req_TeamWf = ArtifactToken.valueOf(32482, "SAW Access Ctrl Test - Req", AtsDemoOseeTypes.DemoReqTeamWorkflow);
+ public static final ArtifactToken SAW_Access_Control_Code_TeamWf = ArtifactToken.valueOf(32483, "SAW Access Ctrl Test - Code", AtsDemoOseeTypes.DemoCodeTeamWorkflow);
+ public static final ArtifactToken SAW_Access_Control_Test_TeamWf = ArtifactToken.valueOf(32484, "SAW Access Ctrl Test - Test", AtsDemoOseeTypes.DemoTestTeamWorkflow);
+
//////////////////////////////////
// RD Agile Configuration
//////////////////////////////////
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/IRelationResolver.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/IRelationResolver.java
index d8f64f4ff0..0756cd4007 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/IRelationResolver.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/IRelationResolver.java
@@ -17,6 +17,7 @@ import java.util.Collection;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.osee.ats.api.IAtsObject;
import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.framework.core.access.context.IParentProvider;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
@@ -27,7 +28,7 @@ import org.eclipse.osee.framework.core.enums.DeletionFlag;
/**
* @author Donald G. Dunne
*/
-public interface IRelationResolver {
+public interface IRelationResolver extends IParentProvider {
Collection<ArtifactToken> getRelated(ArtifactId artifact, RelationTypeSide relationType);
@@ -68,8 +69,6 @@ public interface IRelationResolver {
Collection<ArtifactToken> getChildren(ArtifactId artifact);
- ArtifactToken getParent(ArtifactId artifact);
-
int getRelatedCount(ArtifactToken artifact, RelationTypeSide relationTypeSide);
Collection<Long> getRelatedIds(ArtifactId artifact, RelationTypeSide relationTypeSide);
diff --git a/plugins/org.eclipse.osee.ats.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.core/META-INF/MANIFEST.MF
index 9c7b174179..88b8532604 100644
--- a/plugins/org.eclipse.osee.ats.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.core/META-INF/MANIFEST.MF
@@ -39,6 +39,7 @@ Import-Package: com.fasterxml.jackson.annotation,
org.osgi.service.event
Bundle-Vendor: Eclipse Open System Engineering Environment
Export-Package: org.eclipse.osee.ats.core.access,
+ org.eclipse.osee.ats.core.access.demo,
org.eclipse.osee.ats.core.agile,
org.eclipse.osee.ats.core.agile.operations,
org.eclipse.osee.ats.core.ai,
diff --git a/plugins/org.eclipse.osee.ats.core/OSGI-INF/artifact.check.provider.task.autogen.xml b/plugins/org.eclipse.osee.ats.core/OSGI-INF/artifact.check.provider.task.autogen.xml
deleted file mode 100644
index b299df7545..0000000000
--- a/plugins/org.eclipse.osee.ats.core/OSGI-INF/artifact.check.provider.task.autogen.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
- <implementation class="org.eclipse.osee.ats.core.task.TaskAutoGenArtifactChecks"/>
- <service>
- <provide interface="org.eclipse.osee.framework.core.access.IArtifactCheck"/>
- </service>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.ats.core/OSGI-INF/artifact.check.provider.xml b/plugins/org.eclipse.osee.ats.core/OSGI-INF/artifact.check.provider.xml
deleted file mode 100644
index 726d59dea4..0000000000
--- a/plugins/org.eclipse.osee.ats.core/OSGI-INF/artifact.check.provider.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
- <implementation class="org.eclipse.osee.ats.core.access.AtsArtifactChecks"/>
- <service>
- <provide interface="org.eclipse.osee.framework.core.access.IArtifactCheck"/>
- </service>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/config/tx/AtsConfigTxTeamDef.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/config/tx/AtsConfigTxTeamDef.java
index 60b66ba11b..0e8a922487 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/config/tx/AtsConfigTxTeamDef.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/config/tx/AtsConfigTxTeamDef.java
@@ -35,6 +35,7 @@ import org.eclipse.osee.ats.api.query.ReleasedOption;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.version.IAtsVersion;
+import org.eclipse.osee.framework.core.data.AccessContextToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.AccessContextToken;
import org.eclipse.osee.framework.core.data.BranchToken;
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java
index 67af55270a..5fb1a5a78d 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AbstractAtsChangeSet.java
@@ -32,6 +32,7 @@ import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.core.util.AtsRelationChange.RelationOperation;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
+import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.AttributeTypeGeneric;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
@@ -180,6 +181,11 @@ public abstract class AbstractAtsChangeSet implements IAtsChangeSet {
@Override
public ArtifactToken createArtifact(ArtifactToken token) {
+ ArtifactTypeToken typeToken = token.getArtifactType();
+ if (typeToken.isInvalid()) {
+ throw new OseeArgumentException("Artifact Type Token %s is invalid for artifact creation",
+ typeToken.toStringWithId());
+ }
return createArtifact(token.getArtifactType(), token.getName(), token.getId());
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsApiImpl.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsApiImpl.java
index bfb1b6b0bd..b8435ba257 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsApiImpl.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsApiImpl.java
@@ -20,6 +20,7 @@ import java.util.List;
import java.util.logging.Level;
import org.eclipse.osee.ats.api.AtsApi;
import org.eclipse.osee.ats.api.IAtsObject;
+import org.eclipse.osee.ats.api.access.IAtsAccessService;
import org.eclipse.osee.ats.api.agile.IAgileSprintHtmlOperation;
import org.eclipse.osee.ats.api.ai.IAtsActionableItemService;
import org.eclipse.osee.ats.api.column.IAtsColumnService;
@@ -59,6 +60,7 @@ import org.eclipse.osee.ats.api.workflow.ITeamWorkflowProvidersLazy;
import org.eclipse.osee.ats.api.workflow.log.IAtsLogFactory;
import org.eclipse.osee.ats.api.workflow.state.IAtsStateFactory;
import org.eclipse.osee.ats.api.workflow.state.IAtsWorkStateFactory;
+import org.eclipse.osee.ats.core.access.AtsAccessService;
import org.eclipse.osee.ats.core.config.TeamDefinitionServiceImpl;
import org.eclipse.osee.ats.core.internal.column.ev.AtsColumnService;
import org.eclipse.osee.ats.core.internal.log.AtsLogFactory;
@@ -131,6 +133,7 @@ public abstract class AtsApiImpl extends OseeApiBase implements AtsApi {
protected IAtsTaskSetDefinitionProviderService taskSetDefinitionProviderService;
protected IAtsNotificationService notificationService;
protected List<INewActionPageAttributeFactoryProvider> attributeFactoryProviders = new LinkedList<>();
+ protected IAtsAccessService atsAccessService;
Collection<IAgileSprintHtmlOperation> agileSprintHtmlReportOperations = new LinkedList<>();
@@ -588,4 +591,12 @@ public abstract class AtsApiImpl extends OseeApiBase implements AtsApi {
return notificationService;
}
+ @Override
+ public IAtsAccessService getAtsAccessService() {
+ if (atsAccessService == null) {
+ atsAccessService = new AtsAccessService(this);
+ }
+ return atsAccessService;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.ide.demo/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.ide.demo/META-INF/MANIFEST.MF
index 9bfbad256c..abaefc8b42 100644
--- a/plugins/org.eclipse.osee.ats.ide.demo/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.ide.demo/META-INF/MANIFEST.MF
@@ -13,6 +13,8 @@ Require-Bundle: org.eclipse.ui,
Import-Package: javax.ws.rs.core,
org.eclipse.core.filesystem,
org.eclipse.osee.ats.api,
+ org.eclipse.osee.ats.core.access,
+ org.eclipse.osee.ats.core.access.demo,
org.eclipse.osee.ats.core.config,
org.eclipse.osee.ats.core.model,
org.eclipse.osee.ats.core.model.impl,
@@ -43,13 +45,16 @@ Import-Package: javax.ws.rs.core,
org.eclipse.osee.client.demo,
org.eclipse.osee.define.ide.traceability,
org.eclipse.osee.define.ide.traceability.data,
- org.eclipse.osee.framework.access,
+ org.eclipse.osee.framework.core,
+ org.eclipse.osee.framework.core.access,
+ org.eclipse.osee.framework.core.access.context,
org.eclipse.osee.framework.core.client,
org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.enums.token,
org.eclipse.osee.framework.core.exception,
org.eclipse.osee.framework.core.model,
+ org.eclipse.osee.framework.core.model.access,
org.eclipse.osee.framework.core.model.type,
org.eclipse.osee.framework.core.operation,
org.eclipse.osee.framework.core.util,
diff --git a/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/artifact/DemoTeamWorkflows.java b/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/artifact/DemoTeamWorkflows.java
index da49ec6343..43015ff8ac 100644
--- a/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/artifact/DemoTeamWorkflows.java
+++ b/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/artifact/DemoTeamWorkflows.java
@@ -45,8 +45,8 @@ public class DemoTeamWorkflows implements ITeamWorkflowProvider {
@Override
public String getBranchName(IAtsTeamWorkflow teamWf, String defaultBranchName) {
try {
- if (teamWf.getTeamDefinition().getName().contains("SAW Test")) {
- return "SAW Test - " + defaultBranchName;
+ if (teamWf.getTeamDefinition().getName().contains("SAW Code")) {
+ return "SAW Code - " + defaultBranchName;
}
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
diff --git a/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/populate/Pdd10SetupAndImportReqs.java b/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/populate/Pdd10SetupAndImportReqs.java
index 1d3935e452..edf741ed24 100644
--- a/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/populate/Pdd10SetupAndImportReqs.java
+++ b/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/populate/Pdd10SetupAndImportReqs.java
@@ -21,12 +21,13 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Level;
+import org.eclipse.osee.ats.api.data.AtsArtifactToken;
import org.eclipse.osee.ats.api.demo.DemoArtifactToken;
import org.eclipse.osee.ats.ide.demo.config.DemoDbUtil;
import org.eclipse.osee.ats.ide.demo.internal.Activator;
import org.eclipse.osee.ats.ide.demo.internal.AtsApiService;
+import org.eclipse.osee.ats.ide.demo.internal.OseeApiService;
import org.eclipse.osee.ats.ide.util.AtsUtilClient;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.BranchId;
@@ -37,6 +38,8 @@ import org.eclipse.osee.framework.core.enums.CoreArtifactTokens;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.enums.CoreUserGroups;
+import org.eclipse.osee.framework.core.enums.DemoBranches;
import org.eclipse.osee.framework.core.enums.DemoUsers;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.operation.IOperation;
@@ -99,12 +102,35 @@ public class Pdd10SetupAndImportReqs implements IPopulateDemoDatabase {
demoDbTraceabilityTx(demoDbTraceability, SAW_Bld_1);
demoDbTraceability.execute();
+ // Note: SAW_Bld_1 is created during orcs dbinit in CreateDemoBranches
+ BranchManager.setAssociatedArtifactId(SAW_Bld_1, AtsArtifactToken.AtsCmBranch);
+
createNewBaselineBranch(SAW_Bld_1, SAW_Bld_2);
+ BranchManager.setAssociatedArtifactId(SAW_Bld_2, AtsArtifactToken.AtsCmBranch);
createNewBaselineBranch(SAW_Bld_2, SAW_Bld_3);
+ BranchManager.setAssociatedArtifactId(SAW_Bld_3, AtsArtifactToken.AtsCmBranch);
+
+ // Note: CIS_Bld_1 is created during orcs dbinit in CreateDemoBranches
+ BranchManager.setAssociatedArtifactId(DemoBranches.CIS_Bld_1, AtsArtifactToken.AtsCmBranch);
+
+ // Note: PL branches are created in CreateDemoBranches
+ BranchManager.setAssociatedArtifactId(DemoBranches.SAW_PL, AtsArtifactToken.AtsCmBranch);
+ setBaselineAccessControl(DemoBranches.SAW_PL);
+
+ BranchManager.setAssociatedArtifactId(DemoBranches.SAW_PL_Hardening_Branch, AtsArtifactToken.AtsCmBranch);
+ setBaselineAccessControl(DemoBranches.SAW_PL_Hardening_Branch);
configureRequirementsForImplDetails();
}
+ private void setBaselineAccessControl(BranchToken branch) {
+ OseeApiService.get().getAccessControlService().removePermissions(branch);
+ ArtifactToken kayJones = UserManager.getUserByArtId(DemoUsers.Kay_Jones);
+ OseeApiService.get().getAccessControlService().setPermission(kayJones, branch, PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(CoreUserGroups.Everyone, branch,
+ PermissionEnum.READ);
+ }
+
private void configureRequirementsForImplDetails() {
SkynetTransaction transaction =
@@ -196,8 +222,8 @@ public class Pdd10SetupAndImportReqs implements IPopulateDemoDatabase {
try {
childBranch = BranchManager.createBaselineBranch(srcBranch, destBranch);
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), childBranch,
- PermissionEnum.FULLACCESS);
+ AtsApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith),
+ childBranch, PermissionEnum.FULLACCESS);
// need to update the branch type;
ConnectionHandler.runPreparedUpdate(UPDATE_BRANCH_TYPE, BranchType.BASELINE, childBranch);
diff --git a/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/populate/Pdd95CreateDemoEVConfigAndWorkPackages.java b/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/populate/Pdd95CreateDemoEVConfigAndWorkPackages.java
index 99403ebb12..d0f8b52b27 100644
--- a/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/populate/Pdd95CreateDemoEVConfigAndWorkPackages.java
+++ b/plugins/org.eclipse.osee.ats.ide.demo/src/org/eclipse/osee/ats/ide/demo/populate/Pdd95CreateDemoEVConfigAndWorkPackages.java
@@ -182,7 +182,7 @@ public class Pdd95CreateDemoEVConfigAndWorkPackages {
// create country
createCountry(countryEp, country);
- // create and relate programs
+ // create and relate programs; these calls ensure that the static tokens are loaded and thus related to proper parents
DemoInsertion.getInsertions();
DemoInsertionActivity.getActivities();
for (DemoProgram program : country.getPrograms()) {
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.ide.integration.tests/META-INF/MANIFEST.MF
index 52f3464345..9913462a03 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/META-INF/MANIFEST.MF
@@ -29,6 +29,7 @@ Import-Package: com.fasterxml.jackson.core,
org.eclipse.nebula.widgets.xviewer.util,
org.eclipse.osee.account.rest.model,
org.eclipse.osee.ats.core.access,
+ org.eclipse.osee.ats.core.access.demo,
org.eclipse.osee.ats.core.column,
org.eclipse.osee.ats.core.config,
org.eclipse.osee.ats.core.query,
@@ -47,7 +48,6 @@ Import-Package: com.fasterxml.jackson.core,
org.eclipse.osee.ats.core.workflow.transition,
org.eclipse.osee.ats.core.workflow.util,
org.eclipse.osee.ats.ide,
- org.eclipse.osee.ats.ide.access,
org.eclipse.osee.ats.ide.actions,
org.eclipse.osee.ats.ide.actions.wizard,
org.eclipse.osee.ats.ide.branch,
@@ -91,8 +91,8 @@ Import-Package: com.fasterxml.jackson.core,
org.eclipse.osee.ats.ide.world.search,
org.eclipse.osee.client.test.framework,
org.eclipse.osee.define.api,
- org.eclipse.osee.framework.access,
org.eclipse.osee.framework.core,
+ org.eclipse.osee.framework.core.access,
org.eclipse.osee.framework.core.client,
org.eclipse.osee.framework.core.client.server,
org.eclipse.osee.framework.core.data,
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/OSGI-INF/ats.api.ide.ref.xml b/plugins/org.eclipse.osee.ats.ide.integration.tests/OSGI-INF/ats.api.ide.ref.xml
deleted file mode 100644
index d55db6c17a..0000000000
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/OSGI-INF/ats.api.ide.ref.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
- <implementation class="org.eclipse.osee.ats.ide.integration.tests.AtsApiService"/>
- <reference bind="setAtsApiIde" cardinality="1..1" interface="org.eclipse.osee.ats.ide.util.AtsApiIde" name="AtsApiIde" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/AtsIdeIntegrationTestSuite.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/AtsIdeIntegrationTestSuite.java
index 22d61eb048..239c96015f 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/AtsIdeIntegrationTestSuite.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/AtsIdeIntegrationTestSuite.java
@@ -16,6 +16,7 @@ package org.eclipse.osee.ats.ide.integration;
import org.eclipse.osee.ats.ide.integration.tests.AtsTest_AllAts_Suite;
import org.eclipse.osee.ats.ide.integration.tests.DemoDbPopulateSuite;
import org.eclipse.osee.ats.ide.integration.tests.DirtyArtifactCacheTest;
+import org.eclipse.osee.ats.ide.integration.tests.framework.access.FrameworkAccess_Suite;
import org.eclipse.osee.ats.ide.integration.tests.framework.skynet.core.artifact.SkyentCoreArtifact_Suite;
import org.eclipse.osee.ats.ide.integration.tests.framework.ui.skynet.FrameworkUiSkynetTest_Suite;
import org.eclipse.osee.ats.ide.integration.tests.framework.ui.skynet.dialog.FrameworkUiSkynetTest_Dialog_Suite;
@@ -36,6 +37,7 @@ import org.junit.runners.Suite;
@Suite.SuiteClasses({
DbInitTest.class,
DemoDbPopulateSuite.class,
+ FrameworkAccess_Suite.class,
SkyentCoreArtifact_Suite.class,
AtsTest_AllAts_Suite.class,
FrameworkUiSkynetTest_Suite.class,
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/access/AtsBranchAccessManagerTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/access/AtsBranchAccessManagerTest.java
index 410e18014d..26e64990b6 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/access/AtsBranchAccessManagerTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/access/AtsBranchAccessManagerTest.java
@@ -14,24 +14,26 @@
package org.eclipse.osee.ats.ide.integration.tests.ats.access;
import static org.eclipse.osee.framework.core.enums.DemoBranches.SAW_Bld_1;
-import java.util.Arrays;
import java.util.Collection;
-import org.eclipse.osee.ats.api.data.AtsRelationTypes;
-import org.eclipse.osee.ats.api.demo.DemoActionableItems;
+import org.eclipse.osee.ats.api.access.AtsAccessContextTokens;
+import org.eclipse.osee.ats.api.access.IAtsAccessService;
+import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
+import org.eclipse.osee.ats.api.demo.DemoArtifactToken;
import org.eclipse.osee.ats.api.demo.DemoWorkType;
-import org.eclipse.osee.ats.ide.access.AtsBranchAccessManager;
+import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
+import org.eclipse.osee.ats.api.util.IAtsChangeSet;
+import org.eclipse.osee.ats.api.version.IAtsVersion;
+import org.eclipse.osee.ats.core.access.AtsAccessService;
+import org.eclipse.osee.ats.core.access.demo.DemoAtsAccessContextTokens;
+import org.eclipse.osee.ats.ide.demo.DemoUtil;
import org.eclipse.osee.ats.ide.integration.tests.AtsApiService;
import org.eclipse.osee.ats.ide.integration.tests.util.DemoTestUtil;
import org.eclipse.osee.ats.ide.workflow.teamwf.TeamWorkFlowArtifact;
-import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.AccessContextToken;
+import org.eclipse.osee.framework.core.data.ArtifactId;
+import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
-import org.junit.After;
import org.junit.Assert;
-import org.junit.Before;
import org.junit.Test;
/**
@@ -41,7 +43,7 @@ public class AtsBranchAccessManagerTest {
@Test
public void testIsApplicable() {
- AtsBranchAccessManager mgr = new AtsBranchAccessManager();
+ AtsAccessService mgr = new AtsAccessService(AtsApiService.get());
Assert.assertFalse(mgr.isApplicable(AtsApiService.get().getAtsBranch()));
Assert.assertFalse(mgr.isApplicable(SAW_Bld_1));
@@ -55,94 +57,63 @@ public class AtsBranchAccessManagerTest {
Assert.assertTrue(mgr.isApplicable(branch));
}
- @Before
- @After
- public void cleanup() {
- TeamWorkFlowArtifact teamArt =
- (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements);
- SkynetTransaction transaction = TransactionManager.createTransaction(AtsApiService.get().getAtsBranch(),
- "testGetContextIdArtifact cleanup");
- Artifact teamDefArt = AtsApiService.get().getQueryServiceIde().getArtifact(teamArt.getTeamDefinition());
- teamDefArt.deleteAttributes(CoreAttributeTypes.AccessContextId);
- teamDefArt.persist(transaction);
- for (Artifact art : teamDefArt.getRelatedArtifacts(AtsRelationTypes.TeamActionableItem_ActionableItem)) {
- art.deleteAttributes(CoreAttributeTypes.AccessContextId);
- art.persist(transaction);
- }
- teamArt.deleteAttributes(CoreAttributeTypes.AccessContextId);
- teamArt.persist(transaction);
- transaction.execute();
- }
-
- /**
- * Test method for
- * {@link org.eclipse.osee.ats.ide.access.AtsBranchAccessManager#getContextId(org.eclipse.osee.framework.skynet.core.artifact.Artifact)}
- * {@link org.eclipse.osee.ats.ide.access.AtsBranchAccessManager#getEventFilters()}.
- * {@link org.eclipse.osee.ats.ide.access.AtsBranchAccessManager#handleArtifactEvent(org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent, org.eclipse.osee.framework.skynet.core.event.model.Sender)}
- */
@Test
- public void testGetContextIdBranch() throws Exception {
- AtsBranchAccessManager mgr = new AtsBranchAccessManager();
- TeamWorkFlowArtifact teamArt =
- (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements);
-
- // confirm that no context id returned
- Assert.assertEquals(0, mgr.getContextId(teamArt.getWorkingBranch(), false).size());
-
- String teamDefContextId1 = "1234";
- String teamDefContextId2 = "2345";
- Artifact teamDefArt = AtsApiService.get().getQueryServiceIde().getArtifact(teamArt.getTeamDefinition());
- teamDefArt.setAttributeValues(CoreAttributeTypes.AccessContextId,
- Arrays.asList(teamDefContextId1, teamDefContextId2));
- teamDefArt.persist(getClass().getSimpleName());
-
- Assert.assertEquals(2, mgr.getContextId(teamArt.getWorkingBranch(), false).size());
-
- String aiContextId = "6789";
- Artifact aiArt = AtsApiService.get().getQueryServiceIde().getArtifact(
- AtsApiService.get().getActionableItemService().getActionableItems(
- Arrays.asList(DemoActionableItems.SAW_Requirements.getName())).iterator().next());
- aiArt.setAttributeValues(CoreAttributeTypes.AccessContextId, Arrays.asList(aiContextId));
- aiArt.persist(getClass().getSimpleName());
+ public void testGetContextIds() throws Exception {
+ IAtsAccessService accessService = AtsApiService.get().getAtsAccessService();
+ TeamWorkFlowArtifact teamArt = DemoUtil.getButtonWDoesntWorkOnSituationPageWf();
+ IAtsTeamDefinition teamDef = teamArt.getTeamDefinition();
+ IAtsActionableItem ai = teamArt.getActionableItems().iterator().next();
+
+ // confirm that deny context id is returned cause no branch
+ Collection<AccessContextToken> contextIds = accessService.getContextIds(teamArt.getWorkingBranch(), false);
+ Assert.assertEquals(1, contextIds.size());
+ Assert.assertTrue(contextIds.contains(AtsAccessContextTokens.ATS_BRANCH_READ));
+
+ // create branch
+ IAtsChangeSet changes = AtsApiService.get().createChangeSet(getClass().getSimpleName() + " - set target ver");
+ IAtsVersion ver = AtsApiService.get().getVersionService().getVersionById(DemoArtifactToken.CIS_Bld_1);
+ AtsApiService.get().getVersionService().setTargetedVersion(teamArt, ver, changes);
+ changes.execute();
+ AtsApiService.get().getBranchServiceIde().createWorkingBranch_Create(teamArt, true);
+
+ // confirm 0 contexts
+ contextIds = accessService.getContextIds(teamArt.getWorkingBranch(), false);
+ Assert.assertEquals(0, contextIds.size());
+
+ // set 2 on team def
+ AtsApiService.get().getAtsAccessService().setContextIds(teamDef, DemoAtsAccessContextTokens.DEMO_CODE_CONTEXT,
+ DemoAtsAccessContextTokens.DEMO_TEST_CONTEXT);
+
+ // 2 returned
+ contextIds = accessService.getContextIds(teamArt.getWorkingBranch(), false);
+ Assert.assertEquals(2, contextIds.size());
+ Assert.assertTrue(contextIds.contains(DemoAtsAccessContextTokens.DEMO_CODE_CONTEXT));
+ Assert.assertTrue(contextIds.contains(DemoAtsAccessContextTokens.DEMO_TEST_CONTEXT));
+
+ // set 1 on ai
+ AtsApiService.get().getAtsAccessService().setContextIds(ai, DemoAtsAccessContextTokens.DEMO_SYSTEMS_CONTEXT);
+
+ // only 1 cause AI overrides Team Def
+ contextIds = accessService.getContextIds(teamArt.getWorkingBranch(), false);
+ Assert.assertEquals(1, contextIds.size());
+ Assert.assertTrue(contextIds.contains(DemoAtsAccessContextTokens.DEMO_SYSTEMS_CONTEXT));
- Assert.assertEquals(1, mgr.getContextId(teamArt.getWorkingBranch(), false).size());
+ // set 1 on workflow
+ AtsApiService.get().getAtsAccessService().setContextIds(teamArt,
+ DemoAtsAccessContextTokens.DEMO_REQUIREMENT_CONTEXT);
- String teamContextId1 = "1234";
- String teamContextId2 = "2345";
- String teamContextId3 = "3456";
- teamArt.setAttributeValues(CoreAttributeTypes.AccessContextId,
- Arrays.asList(teamContextId1, teamContextId2, teamContextId3));
- teamArt.persist(getClass().getSimpleName());
+ // only 1 cause workflow overrides AI and Team Def
+ contextIds = accessService.getContextIds(teamArt.getWorkingBranch(), false);
+ Assert.assertEquals(1, contextIds.size());
+ Assert.assertTrue(contextIds.contains(DemoAtsAccessContextTokens.DEMO_REQUIREMENT_CONTEXT));
- AtsApiService.get().clearCaches();
+ // cleanup
+ changes = AtsApiService.get().createChangeSet(getClass().getSimpleName() + " - cleanup");
+ changes.deleteAttributes((ArtifactId) teamArt, CoreAttributeTypes.AccessContextId);
+ changes.deleteAttributes(teamDef, CoreAttributeTypes.AccessContextId);
+ changes.deleteAttributes(ai, CoreAttributeTypes.AccessContextId);
+ changes.execute();
- Assert.assertEquals(3, mgr.getContextId(teamArt.getWorkingBranch(), false).size());
}
- /**
- * Test method for {
- *
- * @param useCache TODO@link org.eclipse.osee.ats.ide.access.AtsBranchAccessManager#convertAccessAttributeToGuid
- */
- @Test
- public void testConvertAccessAttributeToGuid() throws Exception {
- AtsBranchAccessManager mgr = new AtsBranchAccessManager();
- TeamWorkFlowArtifact teamArt =
- (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements);
-
- // confirm that no context id returned
- Assert.assertEquals(0, mgr.getContextId(teamArt.getWorkingBranch()).size());
-
- String teamDefContextId1 = "16546, this is the name";
- Artifact teamDefArt = AtsApiService.get().getQueryServiceIde().getArtifact(teamArt.getTeamDefinition());
- teamDefArt.setAttributeValues(CoreAttributeTypes.AccessContextId, Arrays.asList(teamDefContextId1));
- teamDefArt.persist(getClass().getSimpleName());
-
- mgr.clearCache();
-
- Collection<AccessContextToken> contextIds = mgr.getContextId(teamArt.getWorkingBranch());
- Assert.assertEquals(1, contextIds.size());
- AccessContextToken contextId = contextIds.iterator().next();
- Assert.assertEquals(Long.valueOf(16546), contextId.getId());
- }
}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/access/UserGroupImplTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/access/UserGroupImplTest.java
index 3d530e383e..e46a689d96 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/access/UserGroupImplTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/access/UserGroupImplTest.java
@@ -27,7 +27,7 @@ public class UserGroupImplTest {
@Test
public void test() {
- // Joe Smith is no admin by default, but is temp admin
+ // Joe Smith is not admin by default, but is temp admin
Assert.assertFalse(UserGroupService.get(AtsUserGroups.AtsAdmin).isCurrentUserMember());
Assert.assertTrue(UserGroupService.get(AtsUserGroups.AtsTempAdmin).isCurrentUserMember());
}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/config/ActionableItemResourceTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/config/ActionableItemResourceTest.java
index 1f1b041ec4..4dec693a37 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/config/ActionableItemResourceTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/config/ActionableItemResourceTest.java
@@ -33,12 +33,12 @@ public class ActionableItemResourceTest extends AbstractRestTest {
@Test
public void testAtsAisRestCall() {
- testActionableItemUrl("/ats/ai", 68, false);
+ testActionableItemUrl("/ats/ai", 70, false);
}
@Test
public void testAtsAisDetailsRestCall() {
- testActionableItemUrl("/ats/ai/details", 68, true);
+ testActionableItemUrl("/ats/ai/details", 70, true);
}
@Test
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/config/TeamResourceTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/config/TeamResourceTest.java
index f1b20480f7..53fe7c96fa 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/config/TeamResourceTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/config/TeamResourceTest.java
@@ -33,13 +33,13 @@ public class TeamResourceTest extends AbstractRestTest {
@Test
public void testAtsTeamsRestCall() {
- JsonNode team = testTeamUrl("/ats/team", 25, false);
+ JsonNode team = testTeamUrl("/ats/team", 27, false);
Assert.assertFalse(team.has("version"));
}
@Test
public void testAtsTeamsDetailsRestCall() {
- JsonNode team = testTeamUrl("/ats/team/details", 25, true);
+ JsonNode team = testTeamUrl("/ats/team/details", 27, true);
Assert.assertEquals(3, team.get("version").size());
}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/resource/AtsActionEndpointImplTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/resource/AtsActionEndpointImplTest.java
index ee827d37aa..b738594cae 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/resource/AtsActionEndpointImplTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/resource/AtsActionEndpointImplTest.java
@@ -93,7 +93,7 @@ public class AtsActionEndpointImplTest extends AbstractRestTest {
"Title", "SAW"//
);
- getFirstAndCount(target, 3);
+ getFirstAndCount(target, 4);
}
@Test
@@ -113,7 +113,7 @@ public class AtsActionEndpointImplTest extends AbstractRestTest {
"Team", codeWfId, //
"StateType", StateType.Working.name()//
);
- getAndCountWorkItems(target, 4);
+ getAndCountWorkItems(target, 5);
}
@Test
@@ -122,7 +122,7 @@ public class AtsActionEndpointImplTest extends AbstractRestTest {
"Team", codeWfId, //
"Assignee", "4444", //
"Assignee", "3333");
- getAndCountWorkItems(target, 4);
+ getAndCountWorkItems(target, 5);
}
@Test
@@ -131,13 +131,13 @@ public class AtsActionEndpointImplTest extends AbstractRestTest {
"Team", codeWfId, //
"Originator", "3333" //
);
- getAndCountWorkItems(target, 4);
+ getAndCountWorkItems(target, 5);
}
@Test
public void testQueryTeam() {
WebTarget target = createWebTarget("Team", codeWfId);
- getFirstAndCount(target, 4);
+ getFirstAndCount(target, 5);
}
@Test
@@ -148,7 +148,7 @@ public class AtsActionEndpointImplTest extends AbstractRestTest {
"Priority", "3", //
"StateType", StateType.Working.name() //
);
- getFirstAndCount(target, 2);
+ getFirstAndCount(target, 3);
}
public TeamWorkFlowArtifact getCodeWorkflow() {
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/resource/AtsProductLineEndpointTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/resource/AtsProductLineEndpointTest.java
index c5ec9ae52d..edc3a93b5d 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/resource/AtsProductLineEndpointTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/resource/AtsProductLineEndpointTest.java
@@ -34,7 +34,7 @@ public class AtsProductLineEndpointTest extends AbstractRestTest {
String path = "ats/ple/branches/";
WebTarget target = jaxRsApi.newTargetQuery(path + "/baseline");
- testActionRestCall(target, 1);
+ testActionRestCall(target, 2);
}
private JsonNode testActionRestCall(WebTarget target, int size) {
@@ -43,4 +43,4 @@ public class AtsProductLineEndpointTest extends AbstractRestTest {
Assert.assertEquals(size, arrayNode.size());
return arrayNode.get(0);
}
-}
\ No newline at end of file
+}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/util/AtsProgramServiceTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/util/AtsProgramServiceTest.java
index 735070718c..7570f2896d 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/util/AtsProgramServiceTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/util/AtsProgramServiceTest.java
@@ -138,7 +138,7 @@ public class AtsProgramServiceTest {
public void testGetTeamDefinition() {
assertEquals("SAW SW", programService.getTeamDefinition(sawProgram).getName());
- assertEquals(6, programService.getTeamDefs(sawProgram).size());
+ assertEquals(8, programService.getTeamDefs(sawProgram).size());
assertEquals(1, programService.getTeamDefs(sawProgram, WorkType.Code).size());
@@ -147,7 +147,7 @@ public class AtsProgramServiceTest {
@Test
public void testGetAIs() {
- assertEquals(6, programService.getAis(sawProgram).size());
+ assertEquals(8, programService.getAis(sawProgram).size());
assertEquals(1, programService.getAis(sawProgram, WorkType.Code).size());
@@ -157,7 +157,7 @@ public class AtsProgramServiceTest {
@Test
public void testGetWorkType() {
Collection<IAtsTeamWorkflow> workflows = programService.getWorkflows(sawProgram, WorkType.Code);
- assertEquals(4, workflows.size());
+ assertEquals(5, workflows.size());
IAtsTeamWorkflow codeTeamWf = workflows.iterator().next();
assertEquals(WorkType.Code, programService.getWorkType(codeTeamWf));
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/util/CreateActionUsingAllActionableItemsTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/util/CreateActionUsingAllActionableItemsTest.java
index 4088f9a80e..92f9eecfcd 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/util/CreateActionUsingAllActionableItemsTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/util/CreateActionUsingAllActionableItemsTest.java
@@ -50,7 +50,7 @@ public class CreateActionUsingAllActionableItemsTest {
SevereLoggingMonitor monitor = TestUtil.severeLoggingStart();
ActionResult action = CreateActionUsingAllActionableItems.createActionWithAllAis();
if (TestUtil.isDemoDb()) {
- Assert.assertEquals("Should be 21 workflows created", 21, action.getTeams().size());
+ Assert.assertEquals("Should be 23 workflows created", 23, action.getTeams().size());
} else {
Assert.assertEquals("Should be 34 workflows created", 34, action.getTeams().size());
}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/transition/TransitionManagerTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/transition/TransitionManagerTest.java
index d485434b92..4eca2998dd 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/transition/TransitionManagerTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/workflow/transition/TransitionManagerTest.java
@@ -97,11 +97,10 @@ public class TransitionManagerTest {
@org.junit.Test
public void testHandleTransitionValidation__NoAwas() {
AtsTestUtil.cleanupAndReset("TransitionManagerTest-A");
- TransitionHelper helper =
- new TransitionHelper(getClass().getSimpleName(), EMPTY_AWAS, AtsTestUtil.getImplementStateDef().getName(),
- Arrays.asList(AtsApiService.get().getUserService().getCurrentUser()), null,
- AtsApiService.get().createChangeSet(getClass().getSimpleName()), AtsApiService.get(),
- TransitionOption.None);
+ TransitionHelper helper = new TransitionHelper(getClass().getSimpleName(), EMPTY_AWAS,
+ AtsTestUtil.getImplementStateDef().getName(),
+ Arrays.asList(AtsApiService.get().getUserService().getCurrentUser()), null,
+ AtsApiService.get().createChangeSet(getClass().getSimpleName()), AtsApiService.get(), TransitionOption.None);
TransitionManager transMgr = new TransitionManager(helper);
TransitionResults results = new TransitionResults();
transMgr.handleTransitionValidation(results);
@@ -112,8 +111,7 @@ public class TransitionManagerTest {
public void testHandleTransitionValidation__ToStateNotNull() {
TransitionHelper helper = new TransitionHelper(getClass().getSimpleName(), Arrays.asList(AtsTestUtil.getTeamWf()),
null, Arrays.asList(AtsApiService.get().getUserService().getCurrentUser()), null,
- AtsApiService.get().createChangeSet(getClass().getSimpleName()), AtsApiService.get(),
- TransitionOption.None);
+ AtsApiService.get().createChangeSet(getClass().getSimpleName()), AtsApiService.get(), TransitionOption.None);
TransitionManager transMgr = new TransitionManager(helper);
TransitionResults results = new TransitionResults();
transMgr.handleTransitionValidation(results);
@@ -124,8 +122,7 @@ public class TransitionManagerTest {
public void testHandleTransitionValidation__InvalidToState() {
TransitionHelper helper = new TransitionHelper(getClass().getSimpleName(), Arrays.asList(AtsTestUtil.getTeamWf()),
"InvalidStateName", Arrays.asList(AtsApiService.get().getUserService().getCurrentUser()), null,
- AtsApiService.get().createChangeSet(getClass().getSimpleName()), AtsApiService.get(),
- TransitionOption.None);
+ AtsApiService.get().createChangeSet(getClass().getSimpleName()), AtsApiService.get(), TransitionOption.None);
TransitionManager transMgr = new TransitionManager(helper);
TransitionResults results = new TransitionResults();
transMgr.handleTransitionValidation(results);
@@ -143,8 +140,7 @@ public class TransitionManagerTest {
TransitionHelper helper = new TransitionHelper(getClass().getSimpleName(), Arrays.asList(teamArt),
AtsTestUtil.getImplementStateDef().getName(),
Arrays.asList(AtsApiService.get().getUserService().getCurrentUser()), null,
- AtsApiService.get().createChangeSet(getClass().getSimpleName()), AtsApiService.get(),
- TransitionOption.None);
+ AtsApiService.get().createChangeSet(getClass().getSimpleName()), AtsApiService.get(), TransitionOption.None);
helper.setExecuteChanges(true);
TransitionManager transMgr = new TransitionManager(helper);
TransitionResults results = new TransitionResults();
@@ -156,8 +152,7 @@ public class TransitionManagerTest {
// Un-Assign Joe Smith
results.clear();
Assert.assertFalse(helper.isOverrideAssigneeCheck());
- teamArt.getStateMgr().setAssignee(
- AtsApiService.get().getUserService().getUserByToken(DemoUsers.Alex_Kay));
+ teamArt.getStateMgr().setAssignee(AtsApiService.get().getUserService().getUserByToken(DemoUsers.Alex_Kay));
transMgr.handleTransitionValidation(results);
Assert.assertTrue(results.contains(AtsTestUtil.getTeamWf(), TransitionResult.MUST_BE_ASSIGNED));
@@ -165,8 +160,7 @@ public class TransitionManagerTest {
results.clear();
helper.addTransitionOption(TransitionOption.OverrideAssigneeCheck);
Assert.assertTrue(helper.isOverrideAssigneeCheck());
- teamArt.getStateMgr().setAssignee(
- AtsApiService.get().getUserService().getUserByToken(DemoUsers.Alex_Kay));
+ teamArt.getStateMgr().setAssignee(AtsApiService.get().getUserService().getUserByToken(DemoUsers.Alex_Kay));
transMgr.handleTransitionValidation(results);
Assert.assertTrue(results.isEmpty());
@@ -174,14 +168,12 @@ public class TransitionManagerTest {
results.clear();
helper.removeTransitionOption(TransitionOption.OverrideAssigneeCheck);
Assert.assertFalse(helper.isOverrideAssigneeCheck());
- teamArt.getStateMgr().setAssignee(
- AtsApiService.get().getUserService().getUserByToken(SystemUser.UnAssigned));
+ teamArt.getStateMgr().setAssignee(AtsApiService.get().getUserService().getUserByToken(SystemUser.UnAssigned));
transMgr.handleTransitionValidation(results);
Assert.assertTrue(getResultsAndDebug(results, teamArt, helper), results.isEmpty());
// cleanup test
- teamArt.getStateMgr().setAssignee(
- AtsApiService.get().getUserService().getUserByToken(SystemUser.UnAssigned));
+ teamArt.getStateMgr().setAssignee(AtsApiService.get().getUserService().getUserByToken(SystemUser.UnAssigned));
}
private String getResultsAndDebug(TransitionResults results, TeamWorkFlowArtifact teamArt, TransitionHelper helper) {
@@ -365,6 +357,7 @@ public class TransitionManagerTest {
TransitionResults results = new TransitionResults();
when(teamWf.isTeamWorkflow()).thenReturn(true);
+ when(teamWf.getId()).thenReturn(4353454L);
// validate that if rule exists and is working, then transition with tasks is ok
when(teamWf.getStateDefinition()).thenReturn(toStateDef);
@@ -512,8 +505,8 @@ public class TransitionManagerTest {
// validate that can transition cause review completed
changes = AtsApiService.get().createChangeSet(getClass().getSimpleName());
- Result result = AtsApiService.get().getReviewService().transitionDecisionTo(decArt,
- DecisionReviewState.Completed, AtsApiService.get().getUserService().getCurrentUser(), false, changes);
+ Result result = AtsApiService.get().getReviewService().transitionDecisionTo(decArt, DecisionReviewState.Completed,
+ AtsApiService.get().getUserService().getCurrentUser(), false, changes);
Assert.assertTrue(result.getText(), result.isTrue());
changes.execute();
results.clear();
@@ -674,9 +667,9 @@ public class TransitionManagerTest {
// transition workflow to cancelled - peer review not cancelled
changes.clear();
- TransitionHelper transHelper = new TransitionHelper("Transition Team Workflow Review", Arrays.asList(teamArt),
- "Cancelled", new ArrayList<AtsUser>(), "", changes, AtsApiService.get(),
- TransitionOption.OverrideAssigneeCheck);
+ TransitionHelper transHelper =
+ new TransitionHelper("Transition Team Workflow Review", Arrays.asList(teamArt), "Cancelled",
+ new ArrayList<AtsUser>(), "", changes, AtsApiService.get(), TransitionOption.OverrideAssigneeCheck);
transHelper.setTransitionUser(AtsApiService.get().getUserService().getCurrentUser());
TransitionManager mgr = new TransitionManager(transHelper);
results = mgr.handleAll();
@@ -687,8 +680,7 @@ public class TransitionManagerTest {
results.clear();
changes.clear();
transHelper = new TransitionHelper("Transition Team Workflow Review", Arrays.asList(peerReview), "Cancelled",
- new ArrayList<AtsUser>(), "", changes, AtsApiService.get(),
- TransitionOption.OverrideAssigneeCheck);
+ new ArrayList<AtsUser>(), "", changes, AtsApiService.get(), TransitionOption.OverrideAssigneeCheck);
transHelper.setTransitionUser(AtsApiService.get().getUserService().getCurrentUser());
mgr = new TransitionManager(transHelper);
results = mgr.handleAll();
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/AtsConfigQueryImplTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/AtsConfigQueryImplTest.java
index 1007a83cda..f2e88de4aa 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/AtsConfigQueryImplTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/AtsConfigQueryImplTest.java
@@ -58,10 +58,10 @@ public class AtsConfigQueryImplTest {
public void test() {
IAtsConfigQuery query = queryService.createQuery(AtsArtifactTypes.TeamDefinition);
ResultSet<IAtsTeamDefinition> teamDefs = query.getConfigObjectResultSet();
- assertEquals(25, teamDefs.size());
+ assertEquals(27, teamDefs.size());
Collection<ArtifactToken> resultArtifacts = query.getArtifacts();
- assertEquals(25, resultArtifacts.size());
+ assertEquals(27, resultArtifacts.size());
query.andAttr(CoreAttributeTypes.Name, DemoArtifactToken.SAW_Code.getName());
IAtsTeamDefinition teamDef =
@@ -73,7 +73,7 @@ public class AtsConfigQueryImplTest {
query = queryService.createQuery(AtsArtifactTypes.ActionableItem);
ResultSet<IAtsActionableItem> ais = query.getConfigObjectResultSet();
- assertEquals(68, ais.size());
+ assertEquals(70, ais.size());
}
@Test
@@ -105,7 +105,7 @@ public class AtsConfigQueryImplTest {
IAtsConfigQuery query =
queryService.createQuery(AtsArtifactTypes.TeamDefinition).andProgram(DemoArtifactToken.SAW_Program.getId());
ResultSet<IAtsTeamDefinition> teamDefs = query.getConfigObjectResultSet();
- assertEquals(6, teamDefs.size());
+ assertEquals(8, teamDefs.size());
}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/AtsQueryImplTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/AtsQueryImplTest.java
index b41602821b..7f912bd98d 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/AtsQueryImplTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/AtsQueryImplTest.java
@@ -60,7 +60,7 @@ public class AtsQueryImplTest {
// test by type
IAtsQuery query = queryService.createQuery(WorkItemType.TeamWorkflow);
- assertEquals(28, query.getResults().size());
+ assertEquals(31, query.getResults().size());
query = queryService.createQuery(WorkItemType.Task);
assertEquals(50, query.getResults().size());
@@ -68,18 +68,18 @@ public class AtsQueryImplTest {
// assignee
query = queryService.createQuery(WorkItemType.TeamWorkflow);
query.andAssignee(atsApi.getUserService().getUserByUserId("3333"));
- assertEquals(8, query.getResults().size());
+ assertEquals(10, query.getResults().size());
// team
query = queryService.createQuery(WorkItemType.TeamWorkflow);
query.andTeam(Arrays.asList(30013695L));
- assertEquals(4, query.getResults().size());
+ assertEquals(5, query.getResults().size());
// ai
query = queryService.createQuery(WorkItemType.TeamWorkflow);
ArtifactId ai = atsApi.getQueryService().getArtifactByName(AtsArtifactTypes.ActionableItem, "SAW Requirements");
query.andActionableItem(Arrays.asList(ai.getId()));
- assertEquals(5, query.getResults().size());
+ assertEquals(6, query.getResults().size());
// by ids (hijack two workflows from previous search)
List<Long> ids = new LinkedList<>();
@@ -100,11 +100,11 @@ public class AtsQueryImplTest {
// by state type
query = queryService.createQuery(WorkItemType.WorkItem);
query.andStateType(StateType.Working);
- assertEquals(92, query.getResults().size());
+ assertEquals(95, query.getResults().size());
query = queryService.createQuery(WorkItemType.TeamWorkflow);
query.andStateType(StateType.Working);
- assertEquals(24, query.getResults().size());
+ assertEquals(27, query.getResults().size());
query = queryService.createQuery(WorkItemType.TeamWorkflow);
query.andStateType(StateType.Completed);
@@ -112,23 +112,23 @@ public class AtsQueryImplTest {
query = queryService.createQuery(WorkItemType.TeamWorkflow);
query.andStateType(StateType.Completed, StateType.Working);
- assertEquals(28, query.getResults().size());
+ assertEquals(31, query.getResults().size());
// by version
query = queryService.createQuery(WorkItemType.TeamWorkflow);
ArtifactId version = atsApi.getQueryService().getArtifactByName(AtsArtifactTypes.Version, "SAW_Bld_2");
query.andVersion(version.getId());
- assertEquals(17, query.getResults().size());
+ assertEquals(20, query.getResults().size());
// by assignee
query = queryService.createQuery(WorkItemType.TeamWorkflow);
query.andAssignee(joeSmith);
- assertEquals(8, query.getResults().size());
+ assertEquals(10, query.getResults().size());
// by originator
query = queryService.createQuery(WorkItemType.TeamWorkflow);
query.andOriginator(joeSmith);
- assertEquals(28, query.getResults().size());
+ assertEquals(31, query.getResults().size());
// by favorite
query = queryService.createQuery(WorkItemType.TeamWorkflow);
@@ -152,8 +152,8 @@ public class AtsQueryImplTest {
IAtsInsertion insertion = programService.getInsertion(activity); // COMM
IAtsProgram program = programService.getProgram(insertion); // SAW Program
- IAtsTeamWorkflow codeWf = AtsApiService.get().getWorkItemService().getTeamWf(
- DemoTestUtil.getCommittedActionWorkflow(DemoWorkType.Code));
+ IAtsTeamWorkflow codeWf =
+ AtsApiService.get().getWorkItemService().getTeamWf(DemoTestUtil.getCommittedActionWorkflow(DemoWorkType.Code));
IAtsTask codeTask = (IAtsTask) AtsApiService.get().getQueryService().createQuery(WorkItemType.Task).andAttr(
CoreAttributeTypes.Name, "Create test plan").getItems().iterator().next();
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/MyWorldSearchItemTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/MyWorldSearchItemTest.java
index 9ba6ff0de2..bc64ea7fa0 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/MyWorldSearchItemTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/MyWorldSearchItemTest.java
@@ -38,15 +38,15 @@ public class MyWorldSearchItemTest {
AtsUser currentUser = AtsApiService.get().getUserService().getCurrentUser();
MyWorldSearchItem search = new MyWorldSearchItem("Search", currentUser);
Collection<Artifact> results = search.performSearchGetResults();
- DemoTestUtil.assertTypes(results, 12, IAtsWorkItem.class);
- DemoTestUtil.assertTypes(results, 8, IAtsTeamWorkflow.class);
+ DemoTestUtil.assertTypes(results, 14, IAtsWorkItem.class);
+ DemoTestUtil.assertTypes(results, 10, IAtsTeamWorkflow.class);
DemoTestUtil.assertTypes(results, 2, IAtsDecisionReview.class);
DemoTestUtil.assertTypes(results, 2, IAtsPeerToPeerReview.class);
search = new MyWorldSearchItem("Search",
AtsApiService.get().getUserService().getUserByUserId(DemoUsers.Kay_Jones.getUserId()));
results = search.performSearchGetResults();
- DemoTestUtil.assertTypes(results, 13, IAtsWorkItem.class);
+ DemoTestUtil.assertTypes(results, 14, IAtsWorkItem.class);
DemoTestUtil.assertTypes(results, 1, IAtsPeerToPeerReview.class);
}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/NextVersionSearchItemTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/NextVersionSearchItemTest.java
index b6e49d4255..3b5fd8ba0a 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/NextVersionSearchItemTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/NextVersionSearchItemTest.java
@@ -33,11 +33,11 @@ public class NextVersionSearchItemTest {
@Test
public void testByTeam() {
- IAtsTeamDefinition teamDef = AtsApiService.get().getTeamDefinitionService().getTeamDefinitions(
- Arrays.asList("SAW SW")).iterator().next();
+ IAtsTeamDefinition teamDef =
+ AtsApiService.get().getTeamDefinitionService().getTeamDefinitions(Arrays.asList("SAW SW")).iterator().next();
NextVersionSearchItem search = new NextVersionSearchItem(teamDef, LoadView.WorldEditor);
Collection<Artifact> results = search.performSearchGetResults();
- DemoTestUtil.assertTypes(results, 17, IAtsTeamWorkflow.class);
+ DemoTestUtil.assertTypes(results, 20, IAtsTeamWorkflow.class);
}
}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/VersionTargetedForTeamSearchItemTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/VersionTargetedForTeamSearchItemTest.java
index 680899bdb4..ee55467f8c 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/VersionTargetedForTeamSearchItemTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/VersionTargetedForTeamSearchItemTest.java
@@ -37,7 +37,7 @@ public class VersionTargetedForTeamSearchItemTest {
VersionTargetedForTeamSearchItem search =
new VersionTargetedForTeamSearchItem(null, version, false, LoadView.WorldEditor);
Collection<Artifact> results = search.performSearchGetResults();
- DemoTestUtil.assertTypes(results, 17, IAtsTeamWorkflow.class);
+ DemoTestUtil.assertTypes(results, 20, IAtsTeamWorkflow.class);
}
}
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/WorldSearchItemTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/WorldSearchItemTest.java
index 7409eeef00..824d9f5959 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/WorldSearchItemTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/ats/world/search/WorldSearchItemTest.java
@@ -66,7 +66,7 @@ public class WorldSearchItemTest {
data.setTeamDefIds(Arrays.asList(DemoArtifactToken.SAW_Code.getId()));
WorldSearchItem search = new WorldSearchItem(data);
Collection<Artifact> results = search.performSearch(SearchType.Search);
- Assert.assertEquals(4, results.size());
+ Assert.assertEquals(5, results.size());
}
@Test
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/framework/ui/skynet/FrameworkUiSkynetTest_Suite.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/framework/ui/skynet/FrameworkUiSkynetTest_Suite.java
index 20eaf228b8..4295d8585b 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/framework/ui/skynet/FrameworkUiSkynetTest_Suite.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/framework/ui/skynet/FrameworkUiSkynetTest_Suite.java
@@ -23,8 +23,8 @@ import org.junit.runners.Suite;
*/
@RunWith(Suite.class)
@Suite.SuiteClasses({ //
- OpenBlamsTest.class, //
LinkUtilTest.class, //
+ OpenBlamsTest.class, //
WordTemplateProcessorTest.class //
})
public class FrameworkUiSkynetTest_Suite {
diff --git a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/util/DbInitTest.java b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/util/DbInitTest.java
index 66aac55362..b96379bd9d 100644
--- a/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/util/DbInitTest.java
+++ b/plugins/org.eclipse.osee.ats.ide.integration.tests/src/org/eclipse/osee/ats/ide/integration/tests/util/DbInitTest.java
@@ -81,7 +81,7 @@ public class DbInitTest {
UserManager.setSetting(UserManager.DOUBLE_CLICK_SETTING_KEY_EDIT, "false");
UserManager.getUser().saveSettings();
- UserGroupService.get(CoreUserGroups.DefaultArtifactEditor).addMember(UserManager.getUser());
+ UserGroupService.get(CoreUserGroups.DefaultArtifactEditor).addMember(UserManager.getUser(), true);
}
diff --git a/plugins/org.eclipse.osee.ats.ide/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.ide/META-INF/MANIFEST.MF
index e52095a4c0..a5f56ffeb2 100644
--- a/plugins/org.eclipse.osee.ats.ide/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.ide/META-INF/MANIFEST.MF
@@ -23,7 +23,6 @@ Require-Bundle: org.eclipse.gef,
org.junit,
org.apache.commons.httpclient
Export-Package: org.eclipse.osee.ats.ide,
- org.eclipse.osee.ats.ide.access,
org.eclipse.osee.ats.ide.actions,
org.eclipse.osee.ats.ide.actions.wizard,
org.eclipse.osee.ats.ide.branch,
@@ -136,16 +135,12 @@ Import-Package: com.fasterxml.jackson.annotation,
org.eclipse.osee.ats.ide.search,
org.eclipse.osee.define.ide.traceability,
org.eclipse.osee.define.ide.traceability.report,
- org.eclipse.osee.framework.access,
org.eclipse.osee.framework.core,
org.eclipse.osee.framework.core.access,
+ org.eclipse.osee.framework.core.access.event,
org.eclipse.osee.framework.core.client,
org.eclipse.osee.framework.core.client.server,
org.eclipse.osee.framework.core.data,
- org.eclipse.osee.framework.core.dsl.integration,
- org.eclipse.osee.framework.core.dsl.integration.util,
- org.eclipse.osee.framework.core.dsl.oseeDsl,
- org.eclipse.osee.framework.core.dsl.ui.integration.operations,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.enums.token,
org.eclipse.osee.framework.core.event,
diff --git a/plugins/org.eclipse.osee.ats.ide/OSGI-INF/ats.cm.access.xml b/plugins/org.eclipse.osee.ats.ide/OSGI-INF/ats.cm.access.xml
deleted file mode 100644
index 25c93e9bb1..0000000000
--- a/plugins/org.eclipse.osee.ats.ide/OSGI-INF/ats.cm.access.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.ats.ide.access.internal.AtsCmAccessControlProxy"/>
- <service>
- <provide interface="org.eclipse.osee.framework.core.services.CmAccessControl"/>
- <provide interface="org.eclipse.osee.framework.core.model.access.HasAccessModel"/>
- </service>
- <reference bind="setAccessModelInterpreter" cardinality="1..1" interface="org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter" name="AccessModelInterpreter" policy="static"/>
- <reference bind="setEventService" cardinality="1..1" interface="org.eclipse.osee.framework.skynet.core.event.OseeEventService" name="OseeEventService" policy="static"/>
- <reference cardinality="1..1" interface="org.eclipse.core.resources.IWorkspace" name="IWorkspace" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/AtsBranchAccessManager.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/AtsBranchAccessManager.java
deleted file mode 100644
index 9461ecc8cd..0000000000
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/AtsBranchAccessManager.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.ats.ide.access;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.logging.Level;
-import org.eclipse.osee.ats.api.access.AtsAccessContextTokens;
-import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
-import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
-import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
-import org.eclipse.osee.ats.ide.internal.Activator;
-import org.eclipse.osee.ats.ide.internal.AtsApiService;
-import org.eclipse.osee.ats.ide.util.AtsUtilClient;
-import org.eclipse.osee.ats.ide.workflow.teamwf.TeamWorkFlowArtifact;
-import org.eclipse.osee.framework.access.AccessControlManager;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.integration.RoleContextProvider;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.GUID;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.UserManager;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactCache;
-import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
-import org.eclipse.osee.framework.skynet.core.event.filter.ArtifactTypeEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.filter.IEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.listener.IArtifactEventListener;
-import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.EventBasicGuidArtifact;
-import org.eclipse.osee.framework.skynet.core.event.model.Sender;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
-
-/**
- * This class will return access context ids related to editing artifacts stored on a team workflow's working branch.
- * <br>
- * <br>
- * Access control can be called frequently, thus a cache is used. Events will clear cache as necessary.<br>
- * <br>
- * Access is determined from "Access Context Id" value stored on Team Workflow, if not there, then Actionable Items, if
- * not there, then Team Defs.
- *
- * @author Donald G. Dunne
- */
-public class AtsBranchAccessManager implements IArtifactEventListener, EventHandler {
-
- // Cache to store branch id to context id list so don't have to re-compute
- private static final Map<BranchId, Collection<AccessContextToken>> branchIdToContextIdCache = new HashMap<>(50);
-
- private final RoleContextProvider roleContextProvider;
- private volatile long cacheUpdated = 0;
-
- public AtsBranchAccessManager() {
- // Available for osgi instantiation
- this(null);
- }
-
- public AtsBranchAccessManager(RoleContextProvider roleContextProvider) {
- this.roleContextProvider = roleContextProvider;
- }
-
- /**
- * True if not common branch and branch's associated artifact is a Team Workflow artifact
- */
- public boolean isApplicable(BranchId objectBranch) {
- boolean result = false;
- try {
- if (AtsApiService.get().getAtsBranch().notEqual(objectBranch)) {
- Artifact associatedArtifact = BranchManager.getAssociatedArtifact(objectBranch);
- if (associatedArtifact.isValid()) {
- result = associatedArtifact.isOfType(AtsArtifactTypes.AtsArtifact);
- }
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.INFO, "Error determining access applicibility", ex);
- }
- return result;
- }
-
- public Collection<AccessContextToken> getContextId(BranchId branch) {
- return getContextId(branch, true);
- }
-
- public Collection<AccessContextToken> getContextId(BranchId branch, boolean useCache) {
- if (useCache && branchIdToContextIdCache.containsKey(branch)) {
- return branchIdToContextIdCache.get(branch);
- }
- Collection<AccessContextToken> contextIds = new ArrayList<>();
-
- if (branch.isInvalid()) {
- contextIds.add(AtsAccessContextTokens.DENY_CONTEXT);
-
- return contextIds;
- }
-
- branchIdToContextIdCache.put(branch, contextIds);
- try {
- // don't access control common branch artifacts...yet
- if (AtsApiService.get().getAtsBranch().notEqual(branch)) {
- // do this check first since role will supersede others
- if (roleContextProvider != null) {
- contextIds.addAll(roleContextProvider.getContextId(UserManager.getUser()));
- }
-
- if (contextIds.isEmpty()) {
- // Else, get from associated artifact
- Artifact assocArtifact = BranchManager.getAssociatedArtifact(branch);
- if (assocArtifact.isOfType(AtsArtifactTypes.TeamWorkflow)) {
- contextIds.addAll(internalGetFromWorkflow((TeamWorkFlowArtifact) assocArtifact));
- } else {
- contextIds.add(AtsAccessContextTokens.DENY_CONTEXT);
- }
- }
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, "Exception obtaining Branch Access Context Id; Deny returned", ex);
- contextIds.add(AtsAccessContextTokens.DENY_CONTEXT);
- }
- return contextIds;
- }
-
- /**
- * Provided for testing purposes only.
- */
- public Collection<AccessContextToken> internalGetFromWorkflow(IAtsTeamWorkflow teamWf) {
- Set<AccessContextToken> contextIds = new HashSet<>();
- try {
- contextIds.addAll(getFromArtifact(AtsApiService.get().getQueryServiceIde().getArtifact(teamWf)));
- if (contextIds.isEmpty()) {
- for (IAtsActionableItem aia : AtsApiService.get().getActionableItemService().getActionableItems(
- teamWf)) {
- Artifact artifact = AtsApiService.get().getQueryServiceIde().getArtifact(aia);
- if (artifact != null) {
- contextIds.addAll(getFromArtifact(artifact));
- }
- if (!contextIds.isEmpty()) {
- return contextIds;
- }
- }
- if (contextIds.isEmpty()) {
- Artifact artifact =
- AtsApiService.get().getQueryServiceIde().getArtifact(teamWf.getTeamDefinition());
- if (artifact != null) {
- contextIds.addAll(getFromArtifact(artifact));
- }
- }
- }
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE, "Exception obtaining Branch Access Context Id; Deny returned", ex);
- return Arrays.asList(AtsAccessContextTokens.DENY_CONTEXT);
- }
- return contextIds;
- }
-
- /**
- * Recursively check artifact and all default hierarchy parents
- */
- private Collection<AccessContextToken> getFromArtifact(Artifact artifact) {
- Set<AccessContextToken> contextIds = new HashSet<>();
- try {
- for (String id : artifact.getAttributesToStringList(CoreAttributeTypes.AccessContextId)) {
- // Do not use getOrCreateId here cause name represents where context ids came from
- // Cache above will take care of this not being created on each access request call.
- contextIds.add(AccessContextToken.valueOf(convertAccessAttributeToContextId(id, artifact),
- "From [" + artifact.getArtifactTypeName() + "]" + artifact.toStringWithId() + " as [" + id + "]"));
- }
- if (contextIds.isEmpty() && artifact.getParent() != null) {
- contextIds.addAll(getFromArtifact(artifact.getParent()));
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- return contextIds;
- }
-
- /**
- * ATS "Access Context Id" attribute value can be stored as "id" or "id,name" for easy reading. This method strips
- * ,name out so only id is returned.
- */
- private Long convertAccessAttributeToContextId(String value, Artifact art) {
- String idStr = value.split(",")[0];
- if (Strings.isNumeric(idStr)) {
- return Long.valueOf(idStr);
- } else if (GUID.isValid(idStr)) {
- return roleContextProvider.getContextGuidToIdMap().get(idStr);
- }
- throw new OseeArgumentException("Invalid access value [%s] on artifact %s", value, art.toStringWithId());
- }
-
- /**
- * Need to process artifact events for Common branch Team Workflows, Actionable Items and Team Definitions in case
- * Access Context Id attribute is edited.
- */
- @Override
- public List<? extends IEventFilter> getEventFilters() {
- return getAtsObjectEventFilters();
- }
-
- private static final List<IEventFilter> atsObjectEventFilter = new ArrayList<>(2);
- private static final ArtifactTypeEventFilter atsArtifactTypesFilter = new ArtifactTypeEventFilter(
- AtsArtifactTypes.TeamWorkflow, AtsArtifactTypes.TeamDefinition, AtsArtifactTypes.ActionableItem);
-
- private synchronized static List<IEventFilter> getAtsObjectEventFilters() {
- try {
- if (atsObjectEventFilter.isEmpty()) {
- atsObjectEventFilter.add(AtsUtilClient.getAtsBranchFilter());
- atsObjectEventFilter.add(atsArtifactTypesFilter);
- }
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- return atsObjectEventFilter;
- }
-
- /**
- * Since multiple events of same artifact type can come through, only clear cache every one second
- */
- public synchronized void clearCache() {
- long now = new Date().getTime();
- if (now - cacheUpdated > 1000) {
- branchIdToContextIdCache.clear();
- }
- }
-
- @Override
- public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
- for (EventBasicGuidArtifact guidArt : artifactEvent.getArtifacts()) {
- if (guidArt.getArtifactType().matches(AtsArtifactTypes.ActionableItem, AtsArtifactTypes.TeamDefinition)) {
- clearCache();
- return;
- }
- try {
- if (guidArt.getArtifactType().inheritsFrom(AtsArtifactTypes.TeamWorkflow)) {
- TeamWorkFlowArtifact teamArt = (TeamWorkFlowArtifact) ArtifactCache.getActive(guidArt);
- if (teamArt != null && teamArt.getWorkingBranch().isValid()) {
- branchIdToContextIdCache.remove(teamArt.getWorkingBranch());
- }
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- }
- }
-
- @Override
- public void handleEvent(Event event) {
- try {
- clearCache();
- } catch (Exception ex) {
- OseeLog.log(AccessControlManager.class, Level.SEVERE, ex);
- }
- }
-
- public static void clearCaches() {
- branchIdToContextIdCache.clear();
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsAccessOseeDslProvider.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsAccessOseeDslProvider.java
deleted file mode 100644
index e34d5b0f1c..0000000000
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsAccessOseeDslProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.ats.ide.access.internal;
-
-import org.eclipse.osee.ats.api.data.AtsArtifactToken;
-import org.eclipse.osee.framework.core.dsl.ui.integration.operations.AbstractOseeDslProvider;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AtsAccessOseeDslProvider extends AbstractOseeDslProvider {
-
- public AtsAccessOseeDslProvider(String locationUri) {
- super(locationUri);
- }
-
- private Artifact getStorageArtifact() {
- try {
- return ArtifactQuery.getArtifactFromToken(AtsArtifactToken.AtsCmAccessControl);
- } catch (OseeCoreException ex) {
- return null;
- }
- }
-
- @Override
- protected String getModelFromStorage() {
- Artifact storageArtifact = getStorageArtifact();
- if (storageArtifact != null) {
- return storageArtifact.getSoleAttributeValue(CoreAttributeTypes.GeneralStringData);
- } else {
- return Strings.EMPTY_STRING;
- }
- }
-
- @Override
- protected void saveModelToStorage(String model) {
- Artifact artifact = getStorageArtifact();
- if (artifact != null) {
- artifact.setSoleAttributeFromString(CoreAttributeTypes.GeneralStringData, model);
- artifact.persist(getClass().getSimpleName());
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsCmAccessControl.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsCmAccessControl.java
deleted file mode 100644
index b03d7c097e..0000000000
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsCmAccessControl.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.ats.ide.access.internal;
-
-import java.util.Collection;
-import java.util.Collections;
-import org.eclipse.osee.ats.ide.access.AtsBranchAccessManager;
-import org.eclipse.osee.ats.ide.internal.AtsApiService;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-
-/**
- * ATS currently only provides access control for artifacts on a Team Workflow's working branch.
- *
- * @author Roberto E. Escobar
- * @author Donald G. Dunne
- */
-public class AtsCmAccessControl implements CmAccessControl {
-
- private final AtsBranchAccessManager atsBranchAccessManager;
-
- public AtsCmAccessControl(AtsBranchAccessManager atsBranchObjectManager) {
- this.atsBranchAccessManager = atsBranchObjectManager;
- }
-
- @Override
- public boolean isApplicable(ArtifactToken user, Object object) {
- boolean result = false;
- if (object != null) {
- if (object instanceof Artifact && !AtsApiService.get().getQueryServiceIde().getArtifact(
- object).isOnBranch(AtsApiService.get().getAtsBranch())) {
- result = atsBranchAccessManager.isApplicable(
- AtsApiService.get().getQueryServiceIde().getArtifact(object).getBranch());
- }
- if (object instanceof BranchId) {
- result = atsBranchAccessManager.isApplicable((BranchId) object);
- }
- }
- return result;
- }
-
- @Override
- public Collection<? extends AccessContextToken> getContextId(ArtifactToken user, Object object) {
- if (object != null) {
- if (object instanceof Artifact && !AtsApiService.get().getQueryServiceIde().getArtifact(
- object).isOnBranch(AtsApiService.get().getAtsBranch())) {
- return atsBranchAccessManager.getContextId(
- AtsApiService.get().getQueryServiceIde().getArtifact(object).getBranch());
- }
- if (object instanceof BranchId) {
- return atsBranchAccessManager.getContextId((BranchId) object);
- }
- }
- return Collections.emptyList();
- }
-}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsCmAccessControlProxy.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsCmAccessControlProxy.java
deleted file mode 100644
index e8e1150a1b..0000000000
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsCmAccessControlProxy.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.ats.ide.access.internal;
-
-import java.util.Collection;
-import org.eclipse.osee.ats.ide.access.AtsBranchAccessManager;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter;
-import org.eclipse.osee.framework.core.dsl.integration.OseeDslAccessModel;
-import org.eclipse.osee.framework.core.dsl.integration.OseeDslProvider;
-import org.eclipse.osee.framework.core.dsl.integration.RoleContextProvider;
-import org.eclipse.osee.framework.core.dsl.ui.integration.operations.OseeDslRoleContextProvider;
-import org.eclipse.osee.framework.core.model.access.AccessModel;
-import org.eclipse.osee.framework.core.model.access.HasAccessModel;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-import org.eclipse.osee.framework.skynet.core.event.OseeEventService;
-import org.eclipse.osee.framework.skynet.core.event.listener.EventQosType;
-import org.eclipse.osee.framework.skynet.core.event.listener.IEventListener;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AtsCmAccessControlProxy implements CmAccessControl, HasAccessModel {
-
- private IEventListener listener;
- private AtsBranchAccessManager atsBranchObjectManager;
- private ServiceReference<AccessModelInterpreter> reference;
- private CmAccessControl cmService;
- private AccessModel accessModel;
- private OseeEventService eventService;
- private BundleContext bundleContext;
-
- private volatile boolean isInitialized = false;
-
- public void setAccessModelInterpreter(ServiceReference<AccessModelInterpreter> reference) {
- this.reference = reference;
- }
-
- public void setEventService(OseeEventService eventService) {
- this.eventService = eventService;
- }
-
- public void start(BundleContext bundleContext) {
- this.bundleContext = bundleContext;
- }
-
- public void stop() {
- if (listener != null) {
- eventService.removeListener(EventQosType.NORMAL, listener);
- listener = null;
- }
-
- if (atsBranchObjectManager != null) {
- atsBranchObjectManager = null;
- }
- cmService = null;
- accessModel = null;
- bundleContext = null;
- isInitialized = false;
- }
-
- private boolean isReady() {
- return reference != null && eventService != null && bundleContext != null;
- }
-
- private synchronized void ensureInitialized() {
- if (isReady() && !isInitialized) {
- AccessModelInterpreter interpreter = bundleContext.getService(reference);
- OseeDslProvider dslProvider = new AtsAccessOseeDslProvider("ats:/xtext/cm.access.osee");
- accessModel = new OseeDslAccessModel(interpreter, dslProvider);
- RoleContextProvider roleAccessProvider = new OseeDslRoleContextProvider(dslProvider);
-
- atsBranchObjectManager = new AtsBranchAccessManager(roleAccessProvider);
- cmService = new AtsCmAccessControl(atsBranchObjectManager);
-
- listener = new AtsDslProviderUpdateListener(dslProvider);
- eventService.addListener(EventQosType.NORMAL, listener);
- isInitialized = true;
- }
- }
-
- private CmAccessControl getProxiedService() {
- ensureInitialized();
- return cmService;
- }
-
- @Override
- public boolean isApplicable(ArtifactToken user, Object object) {
- return getProxiedService().isApplicable(user, object);
- }
-
- @Override
- public Collection<? extends AccessContextToken> getContextId(ArtifactToken user, Object object) {
- return getProxiedService().getContextId(user, object);
- }
-
- @Override
- public AccessModel getAccessModel() {
- ensureInitialized();
- return accessModel;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsDslProviderUpdateListener.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsDslProviderUpdateListener.java
deleted file mode 100644
index d20c7d8762..0000000000
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/access/internal/AtsDslProviderUpdateListener.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.ats.ide.access.internal;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.logging.Level;
-import org.eclipse.osee.ats.ide.internal.Activator;
-import org.eclipse.osee.ats.ide.internal.AtsApiService;
-import org.eclipse.osee.framework.core.dsl.integration.OseeDslProvider;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.event.filter.ArtifactTypeEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.filter.BranchIdEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.filter.IEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.listener.IArtifactEventListener;
-import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.Sender;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class AtsDslProviderUpdateListener implements IArtifactEventListener {
-
- //@formatter:off
- private final List<? extends IEventFilter> eventFilters =
- Arrays.asList(
- new ArtifactTypeEventFilter(CoreArtifactTypes.AccessControlModel),
- new BranchIdEventFilter(AtsApiService.get().getAtsBranch())
- );
- //@formatter:on
-
- private final OseeDslProvider dslProvider;
-
- public AtsDslProviderUpdateListener(OseeDslProvider dslProvider) {
- this.dslProvider = dslProvider;
- }
-
- @Override
- public List<? extends IEventFilter> getEventFilters() {
- return eventFilters;
- }
-
- @Override
- public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
- try {
- dslProvider.loadDsl();
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/actions/AccessControlAction.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/actions/AccessControlAction.java
index 56adb1f038..b5fe83828f 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/actions/AccessControlAction.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/actions/AccessControlAction.java
@@ -37,7 +37,7 @@ public class AccessControlAction extends Action {
public PolicyDialog getDialog() {
if (dialog == null) {
- dialog = new PolicyDialog(Displays.getActiveShell(), sma);
+ dialog = PolicyDialog.createPolicyDialog(Displays.getActiveShell(), sma);
}
return dialog;
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/branch/BranchRegressionTest.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/branch/BranchRegressionTest.java
index 11baba2208..12da179d53 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/branch/BranchRegressionTest.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/branch/BranchRegressionTest.java
@@ -41,7 +41,6 @@ import org.eclipse.osee.ats.ide.internal.AtsApiService;
import org.eclipse.osee.ats.ide.util.AtsUtilClient;
import org.eclipse.osee.ats.ide.util.widgets.XWorkingBranchEnablement;
import org.eclipse.osee.ats.ide.workflow.teamwf.TeamWorkFlowArtifact;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.AttributeId;
@@ -294,7 +293,8 @@ public abstract class BranchRegressionTest {
ArtifactQuery.getArtifactFromAttribute(CoreAttributeTypes.Name, SOFTWARE_REQUIREMENTS, getProgramBranch());
Assert.assertNotNull("Can't get softReqArt", softReqArt);
- AccessControlManager.setPermission(UserManager.getUser(), getProgramBranch(), PermissionEnum.FULLACCESS);
+ AtsApiService.get().getAccessControlService().setPermission(UserManager.getUser(), getProgramBranch(),
+ PermissionEnum.FULLACCESS);
createSoftwareArtifact(CoreArtifactTypes.SoftwareRequirementMsWord, softReqArt, PRE_BRANCH_ARTIFACT_NAME,
getPreBranchCscis(), getProgramBranch());
@@ -773,12 +773,18 @@ public abstract class BranchRegressionTest {
}
protected Artifact createSoftwareArtifact(ArtifactTypeToken artifactType, Artifact parent, String title, String[] partitions, BranchToken branch) {
- SkynetTransaction tx = TransactionManager.createTransaction(branch, "Create " + title);
- Artifact newArt = ArtifactTypeManager.addArtifact(artifactType, branch, title);
- Artifact parentArt = setParent(parent, partitions, newArt, tx);
- tx.addArtifact(newArt);
- tx.addArtifact(parent);
- tx.execute();
+ Artifact parentArt = null;
+ try {
+ SkynetTransaction.setOverrideAccess(true);
+ SkynetTransaction tx = TransactionManager.createTransaction(branch, "Create " + title);
+ Artifact newArt = ArtifactTypeManager.addArtifact(artifactType, branch, title);
+ parentArt = setParent(parent, partitions, newArt, tx);
+ tx.addArtifact(newArt);
+ tx.addArtifact(parent);
+ tx.execute();
+ } finally {
+ SkynetTransaction.setOverrideAccess(false);
+ }
return parentArt;
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/WorkflowEditor.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/WorkflowEditor.java
index cfdac92e29..69c0e8ceb7 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/WorkflowEditor.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/WorkflowEditor.java
@@ -48,6 +48,7 @@ import org.eclipse.osee.ats.ide.editor.tab.workflow.WfeWorkFlowTab;
import org.eclipse.osee.ats.ide.editor.tab.workflow.util.WfeOutlinePage;
import org.eclipse.osee.ats.ide.internal.Activator;
import org.eclipse.osee.ats.ide.internal.AtsApiService;
+import org.eclipse.osee.ats.ide.internal.OseeApiService;
import org.eclipse.osee.ats.ide.navigate.RecentlyVisitedNavigateItems;
import org.eclipse.osee.ats.ide.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.ide.workflow.goal.GoalArtifact;
@@ -57,7 +58,6 @@ import org.eclipse.osee.ats.ide.workflow.task.TaskArtifact;
import org.eclipse.osee.ats.ide.workflow.task.TaskComposite;
import org.eclipse.osee.ats.ide.workflow.teamwf.TeamWorkFlowArtifact;
import org.eclipse.osee.ats.ide.world.IAtsMetricsProvider;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
@@ -585,7 +585,8 @@ public class WorkflowEditor extends AbstractArtifactEditor implements IDirtyRepo
}
public boolean isAccessControlWrite() {
- return AccessControlManager.hasPermission(workItem, PermissionEnum.WRITE);
+ return OseeApiService.get().getAccessControlService().hasArtifactPermission(workItem, PermissionEnum.WRITE,
+ null).isSuccess();
}
@Override
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/header/WfeDragAndDrop.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/header/WfeDragAndDrop.java
index 90ffa9cd5c..484d9044f6 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/header/WfeDragAndDrop.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/header/WfeDragAndDrop.java
@@ -16,21 +16,24 @@ package org.eclipse.osee.ats.ide.editor.tab.workflow.header;
import java.io.File;
import java.util.LinkedList;
import java.util.List;
-import java.util.logging.Level;
+import org.eclipse.osee.ats.ide.internal.AtsApiService;
import org.eclipse.osee.ats.ide.workflow.AbstractWorkflowArtifact;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.plugin.core.util.Jobs;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
+import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.skynet.util.SkynetDragAndDrop;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.FileTransfer;
@@ -72,18 +75,38 @@ public class WfeDragAndDrop extends SkynetDragAndDrop {
ArtifactData toBeDropped = ArtifactTransfer.getInstance().nativeToJava(event.currentDataType);
if (dropTarget != null) {
try {
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
Artifact[] artifactsBeingDropped = toBeDropped.getArtifacts();
List<Artifact> artsOnSameBranchAsDestination = new LinkedList<>();
BranchId destinationBranch = dropTarget.getBranch();
+ boolean onSameBranch = true;
for (Artifact art : artifactsBeingDropped) {
if (art.isOnBranch(destinationBranch)) {
artsOnSameBranchAsDestination.add(art);
+ } else {
+ onSameBranch = false;
+ break;
}
}
- valid = policy.canRelationBeModified(dropTarget, artsOnSameBranchAsDestination,
- CoreRelationTypes.SupportingInfo_SupportingInfo, Level.FINE).matched();
+ if (!onSameBranch) {
+ AWorkbench.popup("Related Artifact(s) must be on the same branch.\n\nAborting Drop.");
+ return false;
+ }
+ if (artsOnSameBranchAsDestination.isEmpty()) {
+ AWorkbench.popup("No Artifact(s) to relate.\n\nAborting Drop.");
+ return false;
+ }
+ XResultData rd = AtsApiService.get().getAccessControlService().hasRelationTypePermission(dropTarget,
+ CoreRelationTypes.SupportingInfo_SupportingInfo, artsOnSameBranchAsDestination, PermissionEnum.WRITE,
+ AccessControlArtifactUtil.getXResultAccessHeader("Relating Artifacts to Workflow",
+ artsOnSameBranchAsDestination));
+ if (rd.isErrors()) {
+ XResultDataDialog.open(rd, "Relate Artifact(s) to Workflow",
+ "Invalid Access for Relation.\n\nAborting Drop.");
+ valid = false;
+ } else {
+ valid = true;
+ }
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/header/WfeRelationsHyperlinkComposite.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/header/WfeRelationsHyperlinkComposite.java
index 56823c98ce..9532cd97ae 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/header/WfeRelationsHyperlinkComposite.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/header/WfeRelationsHyperlinkComposite.java
@@ -58,11 +58,9 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.framework.ui.swt.ALayout;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -322,7 +320,6 @@ public class WfeRelationsHyperlinkComposite extends Composite {
delArt = thisArt;
}
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
Collection<ArtifactToken> related = Arrays.asList(thatArt);
if (thatArt instanceof IAtsObject) {
if (MessageDialog.openConfirm(Displays.getActiveShell(), "Delete Related",
@@ -333,7 +330,8 @@ public class WfeRelationsHyperlinkComposite extends Composite {
}
return;
}
- XResultData results = policy.isDeleteable(related, new XResultData());
+ XResultData results =
+ AtsApiService.get().getAccessControlService().isDeleteable(related, new XResultData());
if (results.isErrors()) {
AWorkbench.popup(results.toString());
return;
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/section/WfeDetailsSection.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/section/WfeDetailsSection.java
index 38044223d9..f78c505c7d 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/section/WfeDetailsSection.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/editor/tab/workflow/section/WfeDetailsSection.java
@@ -17,20 +17,17 @@ import java.util.Collection;
import java.util.Map;
import java.util.logging.Level;
import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.ats.api.access.IAtsAccessService;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.workflow.IAtsAction;
-import org.eclipse.osee.ats.ide.access.AtsBranchAccessManager;
import org.eclipse.osee.ats.ide.editor.WorkflowEditor;
import org.eclipse.osee.ats.ide.internal.Activator;
import org.eclipse.osee.ats.ide.internal.AtsApiService;
import org.eclipse.osee.ats.ide.workflow.teamwf.TeamWorkFlowArtifact;
-import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
+import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.User;
-import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
import org.eclipse.osee.framework.ui.swt.ALayout;
@@ -71,6 +68,7 @@ public class WfeDetailsSection extends SectionPart {
Section section = getSection();
section.setText("Details");
section.setLayout(new GridLayout());
+ section.setExpanded(false);
section.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
// Only load when users selects section
@@ -151,36 +149,30 @@ public class WfeDetailsSection extends SectionPart {
private String getAccessContextId(TeamWorkFlowArtifact workflow) {
String message;
- CmAccessControl accessControl = workflow.getAccessControl();
- if (accessControl == null) {
- message = "AtsCmAccessControlService not found.";
- } else {
- BranchId workingBranch = null;
+ IAtsAccessService accessService = AtsApiService.get().getAtsAccessService();
+ BranchId workingBranch = null;
+ try {
+ workingBranch = workflow.getWorkingBranch();
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ Collection<? extends AccessContextToken> ids = null;
+ if (workingBranch == null) {
try {
- workingBranch = workflow.getWorkingBranch();
+ // get what would be if branch created
+ ids = accessService.getFromWorkflow(workflow);
+ message = ids.toString();
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
+ message = String.format("Error getting context id [%s]", ex.getMessage());
}
- Collection<? extends AccessContextToken> ids = null;
- if (workingBranch == null) {
- try {
- // get what would be if branch created
- AtsBranchAccessManager accessMgr = new AtsBranchAccessManager();
- ids = accessMgr.internalGetFromWorkflow(workflow);
- message = ids.toString();
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- message = String.format("Error getting context id [%s]", ex.getMessage());
- }
- } else {
- try {
- User user = UserManager.getUserByArtId(AtsApiService.get().getUserService().getCurrentUser());
- ids = accessControl.getContextId(user, workingBranch);
- message = ids.toString();
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- message = String.format("Error getting context id [%s]", ex.getMessage());
- }
+ } else {
+ try {
+ ids = accessService.getContextIds(workingBranch);
+ message = ids.toString();
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ message = String.format("Error getting context id [%s]", ex.getMessage());
}
}
return message;
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/internal/Activator.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/internal/Activator.java
index 2965390194..7738321fa7 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/internal/Activator.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/internal/Activator.java
@@ -15,11 +15,10 @@ package org.eclipse.osee.ats.ide.internal;
import org.eclipse.osee.ats.api.util.AtsTopicEvent;
import org.eclipse.osee.ats.api.util.AtsUtil;
-import org.eclipse.osee.ats.ide.access.AtsBranchAccessManager;
+import org.eclipse.osee.ats.core.access.AtsBranchAccessManager;
import org.eclipse.osee.ats.ide.workflow.AtsWorkItemRemoteTopicEventHandler;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEvent;
import org.eclipse.osee.framework.plugin.core.OseeActivator;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.osgi.framework.BundleContext;
import org.osgi.service.event.EventConstants;
import org.osgi.service.event.EventHandler;
@@ -38,19 +37,6 @@ public class Activator extends OseeActivator {
context.registerService(EventHandler.class.getName(), new AtsBranchAccessManager(),
AtsUtil.hashTable(EventConstants.EVENT_TOPIC, AccessTopicEvent.ACCESS_BRANCH_MODIFIED.getTopic()));
- // Start loading access control
- Thread loadAccessControl = new Thread(new Runnable() {
-
- @Override
- public void run() {
- try {
- ServiceUtil.getAccessPolicy().ensurePopulated();
- } catch (Exception ex) {
- // do nothing
- }
- }
- }, "Load Access Control");
- loadAccessControl.start();
}
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/navigate/NavigateViewItems.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/navigate/NavigateViewItems.java
index 7125e5b11d..8854df971a 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/navigate/NavigateViewItems.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/navigate/NavigateViewItems.java
@@ -155,6 +155,7 @@ public final class NavigateViewItems implements XNavigateViewItems, IXNavigateCo
new ClearAtsConfigCache(utilItems);
new XNavigateItemBlam(utilItems, new MoveTeamWorkflowsBlam(), AtsImage.TEAM_WORKFLOW);
new AtsConfigResultsEditorNavigateItem(utilItems);
+ new ToggleAccessControlDebug(utilItems);
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/navigate/ToggleAtsAdmin.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/navigate/ToggleAtsAdmin.java
index 584444fd55..f9ad11882a 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/navigate/ToggleAtsAdmin.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/navigate/ToggleAtsAdmin.java
@@ -61,7 +61,7 @@ public class ToggleAtsAdmin extends XNavigateItemAction {
if (!isAdmin) {
IUserGroup atsAdminGroup = UserGroupService.get(AtsUserGroups.AtsAdmin);
if (!atsAdminGroup.isCurrentUserMember()) {
- atsAdminGroup.addMember(UserManager.getUser());
+ atsAdminGroup.addMember(UserManager.getUser(), true);
Conditions.assertTrue(atsAdminGroup.getArtifact() instanceof Artifact, "Must be artifact.");
((Artifact) atsAdminGroup.getArtifact()).persist("Toggle Admin");
}
@@ -69,21 +69,21 @@ public class ToggleAtsAdmin extends XNavigateItemAction {
IUserGroup oseeAdminGroup =
org.eclipse.osee.framework.skynet.core.access.UserGroupService.getOseeAdmin();
if (!oseeAdminGroup.isCurrentUserMember()) {
- oseeAdminGroup.addMember(UserManager.getUser());
+ oseeAdminGroup.addMember(UserManager.getUser(), true);
Conditions.assertTrue(oseeAdminGroup.getArtifact() instanceof Artifact, "Must be artifact.");
((Artifact) oseeAdminGroup.getArtifact()).persist("Toggle Admin");
}
} else {
IUserGroup atsAdminGroup = UserGroupService.get(AtsUserGroups.AtsAdmin);
if (atsAdminGroup.isCurrentUserMember()) {
- atsAdminGroup.removeMember(UserManager.getUser());
+ atsAdminGroup.removeMember(UserManager.getUser(), true);
Conditions.assertTrue(atsAdminGroup.getArtifact() instanceof Artifact, "Must be artifact.");
((Artifact) atsAdminGroup.getArtifact()).persist("Toggle Admin");
}
IUserGroup oseeAdminGroup = UserGroupService.get(CoreUserGroups.OseeAdmin);
if (oseeAdminGroup.isCurrentUserMember()) {
- oseeAdminGroup.removeMember(UserManager.getUser());
+ oseeAdminGroup.removeMember(UserManager.getUser(), true);
Conditions.assertTrue(oseeAdminGroup.getArtifact() instanceof Artifact, "Must be artifact.");
((Artifact) oseeAdminGroup.getArtifact()).persist("Toggle Admin");
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/operation/ExportChangeReportOperation.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/operation/ExportChangeReportOperation.java
index 434c71b4a7..b59fd42e5f 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/operation/ExportChangeReportOperation.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/operation/ExportChangeReportOperation.java
@@ -111,7 +111,7 @@ public final class ExportChangeReportOperation extends AbstractOperation {
Collection<ArtifactDelta> artifactDeltas = ChangeManager.getCompareArtifacts(changes);
- // only allow SoftwareRequirements for HLR
+ // only allow SoftwareRequirementsFolder for HLR
Iterator<ArtifactDelta> it = artifactDeltas.iterator();
while (it.hasNext()) {
ArtifactDelta next = it.next();
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/query/AtsQueryServiceIde.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/query/AtsQueryServiceIde.java
index 0215b76661..6517058743 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/query/AtsQueryServiceIde.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/query/AtsQueryServiceIde.java
@@ -185,6 +185,9 @@ public class AtsQueryServiceIde {
Artifact result = null;
if (obj instanceof Artifact) {
result = (Artifact) obj;
+ if (obj instanceof IAtsObject) {
+ result.setArtifactType(((IAtsObject) obj).getArtifactType());
+ }
} else if (obj instanceof IAtsObject) {
result = getArtifact(((IAtsObject) obj).getStoreObject(), atsApi.getAtsBranch());
} else if (obj instanceof ArtifactId) {
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/Import/ExcelAtsActionArtifactExtractor.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/Import/ExcelAtsActionArtifactExtractor.java
index 509e35381a..dbea453a6e 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/Import/ExcelAtsActionArtifactExtractor.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/Import/ExcelAtsActionArtifactExtractor.java
@@ -485,7 +485,7 @@ public class ExcelAtsActionArtifactExtractor {
Assignees("ActionableItems"),
Originator("Originator"),
Priority("Priority"),
- ChangeType("ChangeType"),
+ ChangeType("AllowDeny"),
Version("Version"),
EstimatedHours("EstimatedHours"),
Goal("Goal"),
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/OpenInAtsLoopbackCmd.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/OpenInAtsLoopbackCmd.java
index 438657126e..119a9c9173 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/OpenInAtsLoopbackCmd.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/OpenInAtsLoopbackCmd.java
@@ -18,7 +18,7 @@ import java.util.Map;
import java.util.logging.Level;
import org.eclipse.osee.ats.ide.AtsOpenOption;
import org.eclipse.osee.ats.ide.internal.Activator;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.ats.ide.internal.AtsApiService;
import org.eclipse.osee.framework.core.client.server.HttpResponse;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.jdk.core.type.MutableBoolean;
@@ -44,7 +44,8 @@ public class OpenInAtsLoopbackCmd extends BaseArtifactLoopbackCmd {
try {
boolean hasPermissionToRead = false;
try {
- hasPermissionToRead = AccessControlManager.hasPermission(artifact, PermissionEnum.READ);
+ hasPermissionToRead = AtsApiService.get().getAccessControlService().hasArtifactPermission(artifact,
+ PermissionEnum.READ, null).isSuccess();
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/internal/AtsApiIdeImpl.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/internal/AtsApiIdeImpl.java
index eba17935f3..e8a6edab2d 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/internal/AtsApiIdeImpl.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/internal/AtsApiIdeImpl.java
@@ -36,12 +36,12 @@ import org.eclipse.osee.ats.api.workflow.IAtsWorkItemService;
import org.eclipse.osee.ats.core.agile.AgileService;
import org.eclipse.osee.ats.core.ai.ActionableItemServiceImpl;
import org.eclipse.osee.ats.core.util.AtsApiImpl;
-import org.eclipse.osee.ats.ide.access.AtsBranchAccessManager;
import org.eclipse.osee.ats.ide.branch.AtsBranchServiceIde;
import org.eclipse.osee.ats.ide.branch.internal.AtsBranchServiceIdeImpl;
import org.eclipse.osee.ats.ide.branch.internal.AtsBranchServiceImpl;
import org.eclipse.osee.ats.ide.ev.internal.AtsEarnedValueImpl;
import org.eclipse.osee.ats.ide.health.AtsHealthServiceImpl;
+import org.eclipse.osee.ats.ide.internal.OseeApiService;
import org.eclipse.osee.ats.ide.notify.AtsNotificationServiceImpl;
import org.eclipse.osee.ats.ide.query.AtsQueryServiceIde;
import org.eclipse.osee.ats.ide.search.internal.query.AtsQueryServiceImpl;
@@ -58,6 +58,7 @@ import org.eclipse.osee.ats.ide.workflow.sprint.SprintArtifact;
import org.eclipse.osee.ats.ide.workflow.task.IAtsTaskServiceIde;
import org.eclipse.osee.ats.ide.workflow.task.internal.AtsTaskService;
import org.eclipse.osee.ats.ide.workflow.task.related.AtsTaskRelatedService;
+import org.eclipse.osee.framework.core.access.IAccessControlService;
import org.eclipse.osee.framework.core.client.OseeClientProperties;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.IUserGroupService;
@@ -131,6 +132,24 @@ public class AtsApiIdeImpl extends AtsApiImpl implements AtsApiIde {
agileService = new AgileService(logger, this);
notificationService = new AtsNotificationServiceImpl();
+ startAccessControlLoading();
+
+ }
+
+ private void startAccessControlLoading() {
+ // Start loading access control
+ Thread loadAccessControl = new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ try {
+ OseeApiService.get().getAccessControlService().ensurePopulated();
+ } catch (Exception ex) {
+ // do nothing
+ }
+ }
+ }, "Load Access Control");
+ loadAccessControl.start();
}
public void setAttributeResolverService(IAttributeResolver attributeResolverService) {
@@ -152,7 +171,8 @@ public class AtsApiIdeImpl extends AtsApiImpl implements AtsApiIde {
sprintItemsCache.invalidate();
}
- AtsBranchAccessManager.clearCaches();
+ getAccessControlService().clearCaches();
+ getAtsAccessService().clearCaches();
}
@Override
@@ -288,4 +308,8 @@ public class AtsApiIdeImpl extends AtsApiImpl implements AtsApiIde {
return branchServiceIde;
}
+ @Override
+ public IAccessControlService getAccessControlService() {
+ return OseeApiService.get().getAccessControlService();
+ }
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/widgets/XWorkingBranchButtonLock.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/widgets/XWorkingBranchButtonLock.java
index 2a8ecfbd7c..524f86daba 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/widgets/XWorkingBranchButtonLock.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/util/widgets/XWorkingBranchButtonLock.java
@@ -19,8 +19,10 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osee.ats.api.util.AtsUtil;
import org.eclipse.osee.ats.ide.internal.Activator;
import org.eclipse.osee.ats.ide.internal.AtsApiService;
-import org.eclipse.osee.framework.access.AccessControlData;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.ats.ide.internal.OseeApiService;
+import org.eclipse.osee.framework.core.access.AccessControlData;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEvent;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEventPayload;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.IUserGroup;
import org.eclipse.osee.framework.core.enums.CoreUserGroups;
@@ -31,8 +33,6 @@ import org.eclipse.osee.framework.jdk.core.util.Conditions;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.access.UserGroupService;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEventPayload;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.swt.ImageManager;
@@ -85,7 +85,7 @@ public class XWorkingBranchButtonLock extends XWorkingBranchButtonAbstract imple
if (branch.isInvalid()) {
noBranch = true;
} else {
- someAccessControlSet = !AccessControlManager.getAccessControlList(branch).isEmpty();
+ someAccessControlSet = !OseeApiService.get().getAccessControlService().getAccessControlList(branch).isEmpty();
}
button.setImage(ImageManager.getImage(
noBranch || someAccessControlSet ? FrameworkImage.LOCK_LOCKED : FrameworkImage.LOCK_UNLOCKED));
@@ -93,7 +93,6 @@ public class XWorkingBranchButtonLock extends XWorkingBranchButtonAbstract imple
button.getParent().redraw();
}
- @SuppressWarnings("unlikely-arg-type")
private void toggleWorkingBranchLock(Button button) {
try {
BranchId branch = getTeamArt().getWorkingBranch();
@@ -102,7 +101,8 @@ public class XWorkingBranchButtonLock extends XWorkingBranchButtonAbstract imple
return;
}
boolean isLocked = false, manuallyLocked = false;
- Collection<AccessControlData> datas = AccessControlManager.getAccessControlList(branch);
+ Collection<AccessControlData> datas =
+ AtsApiService.get().getAccessControlService().getAccessControlList(branch);
if (datas.size() > 1) {
manuallyLocked = true;
} else if (datas.isEmpty()) {
@@ -125,11 +125,12 @@ public class XWorkingBranchButtonLock extends XWorkingBranchButtonAbstract imple
isLocked ? "Locked" : "NOT Locked", isLocked ? "UnLock" : "Lock");
if (MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "Toggle Branch Lock", message)) {
if (isLocked) {
- AccessControlManager.removeAccessControlDataIf(true, datas.iterator().next());
+ AtsApiService.get().getAccessControlService().removeAccessControlDataIf(true, datas.iterator().next());
} else {
IUserGroup everyoneGroup = UserGroupService.get(CoreUserGroups.Everyone);
Conditions.assertTrue(everyoneGroup.getArtifact() instanceof Artifact, "Must be Artifact");
- AccessControlManager.setPermission((Artifact) everyoneGroup.getArtifact(), branch, PermissionEnum.READ);
+ AtsApiService.get().getAccessControlService().setPermission(everyoneGroup.getArtifact(), branch,
+ PermissionEnum.READ);
}
AWorkbench.popup(String.format("Branch set to [%s]", !isLocked ? "Locked" : "NOT Locked"));
}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/workflow/AbstractWorkflowArtifact.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/workflow/AbstractWorkflowArtifact.java
index 826345798b..bb07feb17a 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/workflow/AbstractWorkflowArtifact.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/workflow/AbstractWorkflowArtifact.java
@@ -43,15 +43,11 @@ import org.eclipse.osee.ats.ide.internal.Activator;
import org.eclipse.osee.ats.ide.internal.AtsApiService;
import org.eclipse.osee.ats.ide.workflow.review.AbstractReviewArtifact;
import org.eclipse.osee.ats.ide.workflow.teamwf.TeamWorkFlowArtifact;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.TransactionId;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-import org.eclipse.osee.framework.core.services.HasCmAccessControl;
import org.eclipse.osee.framework.core.util.IGroupExplorerProvider;
-import org.eclipse.osee.framework.core.util.OsgiUtil;
import org.eclipse.osee.framework.core.util.Result;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
@@ -68,7 +64,7 @@ import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
/**
* @author Donald G. Dunne
*/
-public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact implements IAtsWorkItem, HasCmAccessControl, IGroupExplorerProvider {
+public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact implements IAtsWorkItem, IGroupExplorerProvider {
private Collection<AtsUser> transitionAssignees;
protected AbstractWorkflowArtifact parentAwa;
@@ -265,7 +261,7 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
}
public boolean isAccessControlWrite() {
- return AccessControlManager.hasPermission(this, PermissionEnum.WRITE);
+ return AtsApiService.get().getAccessControlService().hasArtifactPermission(this, PermissionEnum.WRITE, null).isSuccess();
}
/**
@@ -419,11 +415,6 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple
return AtsApiService.get().getStateFactory().getStateManager(this);
}
- @Override
- public CmAccessControl getAccessControl() {
- return OsgiUtil.getService(getClass(), CmAccessControl.class);
- }
-
public List<IAtsStateDefinition> getToStatesWithCompleteCancelReturnStates() {
List<IAtsStateDefinition> allPages = new ArrayList<>();
IAtsStateDefinition currState = getStateDefinition();
diff --git a/plugins/org.eclipse.osee.ats.rest/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats.rest/META-INF/MANIFEST.MF
index a7282b210b..e1b9367f2d 100644
--- a/plugins/org.eclipse.osee.ats.rest/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ats.rest/META-INF/MANIFEST.MF
@@ -19,6 +19,7 @@ Import-Package: com.fasterxml.jackson.core,
org.eclipse.core.runtime,
org.eclipse.define.api.importing,
org.eclipse.nebula.widgets.xviewer.core.model,
+ org.eclipse.osee.ats.core.access.demo,
org.eclipse.osee.ats.core.agile,
org.eclipse.osee.ats.core.agile.operations,
org.eclipse.osee.ats.core.ai,
@@ -42,6 +43,7 @@ Import-Package: com.fasterxml.jackson.core,
org.eclipse.osee.define.rest.importing.resolvers,
org.eclipse.osee.framework.core,
org.eclipse.osee.framework.core.access,
+ org.eclipse.osee.framework.core.access.context,
org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.enums.token,
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApiServerImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApiServerImpl.java
index 195e8916d5..74c3f156a5 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApiServerImpl.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/AtsApiServerImpl.java
@@ -47,6 +47,7 @@ import org.eclipse.osee.ats.rest.internal.util.AtsRelationResolverServiceImpl;
import org.eclipse.osee.ats.rest.internal.util.AtsStoreServiceImpl;
import org.eclipse.osee.ats.rest.internal.workitem.AtsActionEndpointImpl;
import org.eclipse.osee.ats.rest.internal.workitem.AtsTaskService;
+import org.eclipse.osee.framework.core.access.IAccessControlService;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
@@ -288,4 +289,9 @@ public class AtsApiServerImpl extends AtsApiImpl implements AtsApiServer {
return orcsApi.getUserGroupService();
}
+ @Override
+ public IAccessControlService getAccessControlService() {
+ return orcsApi.getAccessControlService();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigurationsService.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigurationsService.java
index a7cae9b953..694377ff43 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigurationsService.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/config/AtsConfigurationsService.java
@@ -45,6 +45,7 @@ import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreBranches;
import org.eclipse.osee.framework.core.enums.SystemUser;
+import org.eclipse.osee.framework.jdk.core.result.XConsoleLogger;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.ResultSet;
import org.eclipse.osee.framework.jdk.core.util.ElapsedTime;
@@ -159,7 +160,7 @@ public class AtsConfigurationsService extends AbstractAtsConfigurationService {
}
idToArtifact.put(art.getId(), art);
} catch (Exception ex) {
- System.err.println("Exception " + ex.getLocalizedMessage());
+ XConsoleLogger.err("Exception " + ex.getLocalizedMessage());
}
}
time2.end();
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/demo/AtsDbConfigDemoOp.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/demo/AtsDbConfigDemoOp.java
index 6f109ec7ff..924f034698 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/demo/AtsDbConfigDemoOp.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/demo/AtsDbConfigDemoOp.java
@@ -14,34 +14,16 @@
package org.eclipse.osee.ats.rest.internal.demo;
import org.eclipse.osee.ats.api.AtsApi;
-import org.eclipse.osee.ats.api.config.Csci;
-import org.eclipse.osee.ats.api.config.WorkType;
-import org.eclipse.osee.ats.api.config.tx.IAtsConfigTx;
-import org.eclipse.osee.ats.api.config.tx.IAtsConfigTxActionableItem;
-import org.eclipse.osee.ats.api.config.tx.IAtsConfigTxTeamDef;
import org.eclipse.osee.ats.api.data.AtsArtifactToken;
-import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
-import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.data.AtsRelationTypes;
import org.eclipse.osee.ats.api.data.AtsUserGroups;
-import org.eclipse.osee.ats.api.demo.AtsDemoOseeTypes;
-import org.eclipse.osee.ats.api.demo.DemoAis;
import org.eclipse.osee.ats.api.demo.DemoArtifactToken;
-import org.eclipse.osee.ats.api.demo.DemoWorkDefinitions;
-import org.eclipse.osee.ats.api.query.NextRelease;
-import org.eclipse.osee.ats.api.query.ReleasedOption;
-import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
-import org.eclipse.osee.ats.api.user.AtsCoreUsers;
import org.eclipse.osee.ats.api.util.AtsUtil;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
import org.eclipse.osee.ats.api.version.IAtsVersion;
-import org.eclipse.osee.ats.api.workdef.AtsWorkDefinitionTokens;
import org.eclipse.osee.ats.core.config.OrganizePrograms;
-import org.eclipse.osee.ats.core.task.TaskSetDefinitionTokensDemo;
import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
-import org.eclipse.osee.framework.core.enums.DemoBranches;
import org.eclipse.osee.framework.core.enums.DemoUsers;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
@@ -53,7 +35,6 @@ import org.eclipse.osee.framework.jdk.core.result.XResultData;
public class AtsDbConfigDemoOp {
private final AtsApi atsApi;
- private IAtsConfigTx cfgTx;
public AtsDbConfigDemoOp(AtsApi atsApi) {
this.atsApi = atsApi;
@@ -61,7 +42,7 @@ public class AtsDbConfigDemoOp {
public XResultData run() {
- configTxDemoAisAndTeams();
+ (new AtsDbConfigAIsAndTeamsDemoOp(atsApi)).run();
configureForParallelCommit();
IAtsChangeSet changes = atsApi.createChangeSet("Set ATS Admin");
@@ -88,454 +69,6 @@ public class AtsDbConfigDemoOp {
changes.execute();
}
- private void configTxDemoAisAndTeams() {
-
- cfgTx = atsApi.getConfigService().createConfigTx("Create Demo Config", AtsCoreUsers.SYSTEM_USER);
- IAtsConfigTxTeamDef topTeamDef =
- cfgTx.createTeamDef((IAtsTeamDefinition) null, AtsArtifactToken.TopTeamDefinition).andWorkDef(
- AtsWorkDefinitionTokens.WorkDef_Team_Default);
- IAtsConfigTxActionableItem topAi =
- cfgTx.createActionableItem(AtsArtifactToken.TopActionableItem).andActionable(false);
-
- createSawPlTeamConfig(cfgTx, topTeamDef, topAi);
- createSawTeamConfig(cfgTx, topTeamDef, topAi);
- createCisTeamConfig(cfgTx, topTeamDef, topAi);
- createFacilitiesTeamConfig(cfgTx, topTeamDef, topAi);
- createProcessTeamConfig(cfgTx, topTeamDef, topAi);
- createToolsTeamConfig(cfgTx, topTeamDef, topAi);
- createSystemSafetyTeamConfig(cfgTx, topTeamDef, topAi);
-
- cfgTx.execute();
-
- }
-
- private void createFacilitiesTeamConfig(IAtsConfigTx cfgTx, IAtsConfigTxTeamDef topTeam, IAtsConfigTxActionableItem topActionableItem) {
-
- // Facilities Team
- IAtsConfigTxTeamDef facilitiesTeamDef =
- topTeam.createChildTeamDef(topTeam.getTeamDef(), DemoArtifactToken.Facilities_Team) //
- .andLeads(DemoUsers.John_Stevens) //
- .andMembers(DemoUsers.John_Stevens, DemoUsers.Steven_Michael, DemoUsers.Michael_John,
- DemoUsers.Jason_Stevens) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Simple);
-
- // IT Team
- facilitiesTeamDef.createChildTeamDef(facilitiesTeamDef.getTeamDef(), DemoArtifactToken.Facilities_IT_Team) //
- .andLeads(DemoUsers.Kay_Wheeler) //
- .andMembers(DemoUsers.Kay_Wheeler, DemoUsers.Jason_Stevens, DemoUsers.Michael_John, DemoUsers.Jason_Stevens) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Simple);
-
- // Facilities Actionable Items
- IAtsConfigTxActionableItem facilitiesAi =
- topActionableItem.createChildActionableItem(DemoArtifactToken.Facilities_Ai) //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.Facilities_Team);
-
- facilitiesAi.createChildActionableItem("Backups") //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.Facilities_IT_Team);
-
- facilitiesAi.createChildActionableItem("Break Room") //
- .andActionable(true);
-
- facilitiesAi.createChildActionableItem("Computers") //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.Facilities_IT_Team);
-
- facilitiesAi.createChildActionableItem("Network") //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.Facilities_IT_Team);
-
- facilitiesAi.createChildActionableItem("Vending Machines") //
- .andActionable(true);
-
- }
-
- private void createToolsTeamConfig(IAtsConfigTx cfgTx, IAtsConfigTxTeamDef topTeam, IAtsConfigTxActionableItem topActionableItem) {
-
- // Tools Team
- IAtsConfigTxTeamDef toolsTeamDef = topTeam.createChildTeamDef(topTeam.getTeamDef(), DemoArtifactToken.Tools_Team) //
- .andLeads(DemoUsers.Jeffery_Kay) //
- .andMembers(DemoUsers.Jeffery_Kay, DemoUsers.Roland_Stevens) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Default);
-
- // Web Team
- toolsTeamDef.createChildTeamDef(toolsTeamDef.getTeamDef(), DemoArtifactToken.Website_Team) //
- .andLeads(DemoUsers.Karmen_John) //
- .andMembers(DemoUsers.Karmen_John, DemoUsers.Jeffery_Kay, DemoUsers.Roland_Stevens) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Simple);
-
- // Tools Actionable Items
- IAtsConfigTxActionableItem toolsAi = topActionableItem.createChildActionableItem(DemoArtifactToken.Tools_Ai) //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.Tools_Team);
-
- toolsAi.createChildActionableItem(DemoArtifactToken.Reader_AI) //
- .andActionable(true);
-
- toolsAi.createChildActionableItem("Results Reporter") //
- .andActionable(true);
-
- toolsAi.createChildActionableItem(DemoArtifactToken.Timesheet_AI) //
- .andActionable(true);
-
- toolsAi.createChildActionableItem("Website") //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.Website_Team);
-
- }
-
- private void createSystemSafetyTeamConfig(IAtsConfigTx cfgTx, IAtsConfigTxTeamDef topTeamDef, IAtsConfigTxActionableItem topAi) {
-
- // System Safety Team
- topTeamDef.createChildTeamDef(topTeamDef.getTeamDef(), DemoArtifactToken.System_Safety_Team) //
- .andLeads(DemoUsers.Joe_Smith) //
- .andMembers(DemoUsers.Jeffery_Kay) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Default);
-
- // System Safety Actionable Items
- topAi.createChildActionableItem(DemoArtifactToken.System_Safety_Ai) //
- .andTeamDef(DemoArtifactToken.System_Safety_Team) //
- .andActionable(true);
-
- }
-
- private void createProcessTeamConfig(IAtsConfigTx cfgTx, IAtsConfigTxTeamDef topTeamDef, IAtsConfigTxActionableItem topActionableItem) {
-
- // Process Team
- topTeamDef.createChildTeamDef(topTeamDef.getTeamDef(), DemoArtifactToken.Process_Team) //
- .andLeads(DemoUsers.Alex_Kay) //
- .andMembers(DemoUsers.Keith_Johnson, DemoUsers.Michael_Alex, DemoUsers.Janice_Michael, DemoUsers.Alex_Kay) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Default);
-
- // Process Actionable Items
- IAtsConfigTxActionableItem processesAi = topActionableItem.createChildActionableItem("Processes") //
- .andActionable(false) //
- .andTeamDef(DemoArtifactToken.Process_Team);
-
- processesAi.createChildActionableItem("Coding Standards") //
- .andActionable(true);
-
- processesAi.createChildActionableItem("Config Mgmt") //
- .andActionable(true);
-
- processesAi.createChildActionableItem("New Employee Manual") //
- .andActionable(true);
-
- processesAi.createChildActionableItem("Reviews") //
- .andActionable(true);
- }
-
- private void createSawPlTeamConfig(IAtsConfigTx cfgTx, IAtsConfigTxTeamDef topTeam, IAtsConfigTxActionableItem topActionableItem) {
-
- // SAW PL
- IAtsConfigTxTeamDef sawPlTeamDef = topTeam.createChildTeamDef(topTeam.getTeamDef(), DemoArtifactToken.SAW_PL_TeamDef) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andLeads(DemoUsers.Kay_Jason) //
- .andMembers(DemoUsers.Kay_Jason, DemoUsers.Michael_John, DemoUsers.Steven_Kohn) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Default) //
- .andVersion(DemoArtifactToken.SAW_Product_Line, ReleasedOption.UnReleased, DemoBranches.SAW_PL,
- NextRelease.Next) //
- .andVersion(DemoArtifactToken.SAW_Hardening_Branch, ReleasedOption.UnReleased,
- DemoBranches.SAW_PL_Hardening_Branch, NextRelease.Next) //
- .andRelatedPeerWorkflowDefinition(AtsWorkDefinitionTokens.WorkDef_Review_PeerToPeer_Demo);
-
- // SAW PL Team Defs
- sawPlTeamDef.createChildTeamDef(sawPlTeamDef.getTeamDef(), DemoArtifactToken.SAW_PL_Code_TeamDef) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.Code) //
- .andLeads(DemoUsers.Joe_Smith) //
- .andMembers(DemoUsers.Joe_Smith) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Code) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoCodeTeamWorkflow);
-
- sawPlTeamDef.createChildTeamDef(sawPlTeamDef.getTeamDef(), DemoArtifactToken.SAW_PL_HW_TeamDef) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.Hardware) //
- .andLeads(DemoUsers.Jason_Michael) //
- .andMembers(DemoUsers.Jason_Michael) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Default) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoReqTeamWorkflow);
-
- sawPlTeamDef.createChildTeamDef(sawPlTeamDef.getTeamDef(), DemoArtifactToken.SAW_PL_Requirements_TeamDef) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.Requirements) //
- .andLeads(DemoUsers.Joe_Smith) //
- .andMembers(DemoUsers.Joe_Smith) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Req) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoReqTeamWorkflow);
-
- sawPlTeamDef.createChildTeamDef(sawPlTeamDef.getTeamDef(), DemoArtifactToken.SAW_PL_SW_Design_TeamDef) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.SW_Design) //
- .andLeads(DemoUsers.Kay_Jones) //
- .andMembers(DemoUsers.Kay_Jones) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_SwDesign);
-
- sawPlTeamDef.createChildTeamDef(sawPlTeamDef.getTeamDef(), DemoArtifactToken.SAW_PL_Test_TeamDef) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.Test) //
- .andLeads(DemoUsers.Kay_Jones) //
- .andMembers(DemoUsers.Kay_Jones) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Test) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoTestTeamWorkflow);
-
- sawPlTeamDef.createChildTeamDef(sawPlTeamDef.getTeamDef(), DemoArtifactToken.SAW_PL_ARB_TeamDef) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.ARB) //
- .andLeads(DemoUsers.Joe_Smith) //
- .andMembers(DemoUsers.Joe_Smith) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_ProductLine) //
- .andTeamWorkflowArtifactType(AtsArtifactTypes.TeamWorkflow);
-
- // SAW SW Actionable Items
- IAtsConfigTxActionableItem sawPlSwAi =
- topActionableItem.createChildActionableItem(DemoArtifactToken.SAW_PL_CSCI_AI) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andActionable(false);
-
- sawPlSwAi.createChildActionableItem(DemoArtifactToken.SAW_PL_Code_AI) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.Code) //
- .andTeamDef(DemoArtifactToken.SAW_PL_Code_TeamDef) //
- .andActionable(true) //
- .andChildAis("COMM", "MSM", "NAV", "Test Page");
-
- sawPlSwAi.createChildActionableItem(DemoArtifactToken.SAW_PL_Requirements_AI) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.Requirements) //
- .andTeamDef(DemoArtifactToken.SAW_PL_Requirements_TeamDef) //
- .andActionable(true) //
- .andChildAis("COMM", "MSM", "NAV") //
- .and(CoreAttributeTypes.StaticId, DemoAis.TEST_AI);
-
- sawPlSwAi.createChildActionableItem(DemoArtifactToken.SAW_PL_Test_AI) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.Test) //
- .andTeamDef(DemoArtifactToken.SAW_PL_Test_TeamDef) //
- .andActionable(true) //
- .andChildAis("ADT", "COMM", "MSM", "NAV", "RulLists");
-
- sawPlSwAi.createChildActionableItem(DemoArtifactToken.SAW_PL_SW_Design_AI) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.SW_Design) //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.SAW_PL_SW_Design_TeamDef);
-
- sawPlSwAi.createChildActionableItem(DemoArtifactToken.SAW_PL_HW_AI) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.Hardware) //
- .andTeamDef(DemoArtifactToken.SAW_PL_HW_TeamDef) //
- .andActionable(true) //
- .andChildAis("Adapter", "Case", "Manual", "Screen");
-
- sawPlSwAi.createChildActionableItem(DemoArtifactToken.SAW_PL_ARB_AI) //
- .andProgram(DemoArtifactToken.SAW_PL_Program) //
- .andWorkType(WorkType.ARB) //
- .andTeamDef(DemoArtifactToken.SAW_PL_ARB_TeamDef) //
- .andActionable(true);
-
- // SAW PL Program
- cfgTx.createProgram(DemoArtifactToken.SAW_PL_Program) //
- .andTeamDef(DemoArtifactToken.SAW_PL_TeamDef) //
- .and(AtsAttributeTypes.Description, "Program object for SAW PL Program") //
- .and(AtsAttributeTypes.Namespace, "org.demo.saw.pl");
-
- }
-
- private void createSawTeamConfig(IAtsConfigTx cfgTx, IAtsConfigTxTeamDef topTeam, IAtsConfigTxActionableItem topActionableItem) {
-
- // SAW SW
- IAtsConfigTxTeamDef sawSwTeamDef = topTeam.createChildTeamDef(topTeam.getTeamDef(), DemoArtifactToken.SAW_SW) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .and(CoreAttributeTypes.StaticId, "saw.teamDefHoldingVersions") //
- .andLeads(DemoUsers.Kay_Jason) //
- .andMembers(DemoUsers.Steven_Kohn, DemoUsers.Michael_John, DemoUsers.Kay_Jason) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Default) //
- .andVersion(DemoArtifactToken.SAW_Bld_1, ReleasedOption.Released, DemoBranches.SAW_Bld_1, NextRelease.None) //
- .andVersion(DemoArtifactToken.SAW_Bld_2, ReleasedOption.UnReleased, DemoBranches.SAW_Bld_2, NextRelease.Next) //
- .andVersion(DemoArtifactToken.SAW_Bld_3, ReleasedOption.UnReleased, DemoBranches.SAW_Bld_3, NextRelease.None) //
- .andRelatedPeerWorkflowDefinition(AtsWorkDefinitionTokens.WorkDef_Review_PeerToPeer_Demo);
-
- /**
- * Artifact types used can be declared through Team Definition or Workflow Definition. This will get its artifact
- * type through the Workflow Definition.
- */
- // SAW SW Team Defs
- sawSwTeamDef.createChildTeamDef(sawSwTeamDef.getTeamDef(), DemoArtifactToken.SAW_Code) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.Code) //
- .andCsci(Csci.DP, Csci.SP, Csci.WP) //
- .and(CoreAttributeTypes.StaticId, "saw.code") //
- .andLeads(DemoUsers.Joe_Smith) //
- .andMembers(DemoUsers.Joe_Smith) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Code);
-
- /**
- * Artifact types used can be declared through Team Definition or Workflow Definition. This is an example of the
- * config through Team Definition.
- */
- sawSwTeamDef.createChildTeamDef(sawSwTeamDef.getTeamDef(), DemoArtifactToken.SAW_HW) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.Hardware) //
- .andLeads(DemoUsers.Jason_Michael) //
- .andMembers(DemoUsers.Jason_Michael) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Default) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoReqTeamWorkflow);
-
- sawSwTeamDef.createChildTeamDef(sawSwTeamDef.getTeamDef(), DemoArtifactToken.SAW_Test) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.Test) //
- .andCsci(Csci.DP, Csci.SP, Csci.WP) //
- .and(CoreAttributeTypes.StaticId, "saw.test") //
- .andLeads(DemoUsers.Kay_Jones) //
- .andMembers(DemoUsers.Kay_Jones) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Test) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoTestTeamWorkflow);
-
- sawSwTeamDef.createChildTeamDef(sawSwTeamDef.getTeamDef(), DemoArtifactToken.SAW_SW_Design) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.SW_Design) //
- .and(CoreAttributeTypes.StaticId, "saw.sw.design") //
- .andLeads(DemoUsers.Kay_Jones) //
- .andMembers(DemoUsers.Kay_Jones) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_SwDesign) //
- .andRelatedPeerWorkflowDefinition(DemoWorkDefinitions.WorkDef_Review_Demo_Peer_SwDesign) //
- .andRelatedTaskWorkflowDefinition(DemoWorkDefinitions.WorkDef_Task_Demo_SwDesign,
- AtsWorkDefinitionTokens.WorkDef_Task_Default) //
- .andTaskSet(TaskSetDefinitionTokensDemo.SawSwDesignTestingChecklist,
- TaskSetDefinitionTokensDemo.SawSwDesignProcessChecklist);
-
- sawSwTeamDef.createChildTeamDef(sawSwTeamDef.getTeamDef(), DemoArtifactToken.SAW_Requirements) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.Requirements) //
- .andCsci(Csci.DP, Csci.SP, Csci.WP) //
- .and(CoreAttributeTypes.StaticId, "saw.reqirements") //
- .andLeads(DemoUsers.Joe_Smith) //
- .andMembers(DemoUsers.Joe_Smith) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Req) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoReqTeamWorkflow);
-
- // SAW SW Actionable Items
- IAtsConfigTxActionableItem sawSwAi = topActionableItem.createChildActionableItem(DemoArtifactToken.SAW_CSCI_AI) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andCsci(Csci.DP, Csci.SP, Csci.WP) //
- .andActionable(false);
-
- sawSwAi.createChildActionableItem(DemoArtifactToken.SAW_Code_AI) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.Code) //
- .andCsci(Csci.DP, Csci.SP, Csci.WP) //
- .andTeamDef(DemoArtifactToken.SAW_Code) //
- .andActionable(true) //
- .andChildAis("COMM", "MSM", "NAV", "Test Page");
-
- sawSwAi.createChildActionableItem(DemoArtifactToken.SAW_HW_AI) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.Hardware) //
- .andTeamDef(DemoArtifactToken.SAW_HW) //
- .andChildAis(DemoArtifactToken.Adapter_AI) //
- .andActionable(true) //
- .andChildAis("Case", "Manual", "Screen");
-
- sawSwAi.createChildActionableItem(DemoArtifactToken.SAW_Requirements_AI) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.Requirements) //
- .andCsci(Csci.DP, Csci.SP, Csci.WP) //
- .andTeamDef(DemoArtifactToken.SAW_Requirements) //
- .andActionable(true) //
- .andChildAis("COMM", "MSM", "NAV");
-
- sawSwAi.createChildActionableItem(DemoArtifactToken.SAW_Test_AI) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.Test) //
- .andCsci(Csci.DP, Csci.SP, Csci.WP) //
- .andTeamDef(DemoArtifactToken.SAW_Test) //
- .andActionable(true) //
- .andChildAis("ADT", "COMM", "MSM", "NAV", "RunLists");
-
- sawSwAi.createChildActionableItem(DemoArtifactToken.SAW_SW_Design_AI) //
- .andProgram(DemoArtifactToken.SAW_Program) //
- .andWorkType(WorkType.SW_Design) //
- .andTeamDef(DemoArtifactToken.SAW_SW_Design) //
- .andActionable(true);
-
- // SAW Program
- cfgTx.createProgram(DemoArtifactToken.SAW_Program) //
- .andTeamDef(DemoArtifactToken.SAW_SW) //
- .andCsci(Csci.DP, Csci.SP, Csci.WP) //
- .and(AtsAttributeTypes.Description, "Program object for SAW Program") //
- .and(AtsAttributeTypes.Namespace, "org.demo.saw");
-
- }
-
- private void createCisTeamConfig(IAtsConfigTx cfgTx, IAtsConfigTxTeamDef topTeam, IAtsConfigTxActionableItem topActionableItem) {
-
- // CIS SW
- IAtsConfigTxTeamDef cisSwTeamDef = topTeam.createChildTeamDef(topTeam.getTeamDef(), DemoArtifactToken.CIS_SW) //
- .and(CoreAttributeTypes.StaticId, "cis.teamDefHoldingVersions") //
- .andLeads(DemoUsers.Kay_Jason) //
- .andMembers(DemoUsers.Steven_Kohn, DemoUsers.Michael_John, DemoUsers.Kay_Jason) //
- .andWorkDef(AtsWorkDefinitionTokens.WorkDef_Team_Default) //
- .andVersion("CIS Bld 1", ReleasedOption.Released, DemoBranches.CIS_Bld_1, NextRelease.None) //
- .andVersion("CIS Bld 2", ReleasedOption.UnReleased, null, NextRelease.Next) //
- .andVersion("CIS Bld 3", ReleasedOption.UnReleased, null, NextRelease.None);
-
- // CIS SW Team Defs
- cisSwTeamDef.createChildTeamDef(cisSwTeamDef.getTeamDef(), DemoArtifactToken.CIS_Code) //
- .and(CoreAttributeTypes.StaticId, "cis.code") //
- .andLeads(DemoUsers.Jason_Michael) //
- .andMembers(DemoUsers.Jason_Michael) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Code);
-
- cisSwTeamDef.createChildTeamDef(cisSwTeamDef.getTeamDef(), DemoArtifactToken.CIS_Test) //
- .and(CoreAttributeTypes.StaticId, "cis.test") //
- .andLeads(DemoUsers.Kay_Jones) //
- .andMembers(DemoUsers.Kay_Jones) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Test) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoTestTeamWorkflow);
-
- cisSwTeamDef.createChildTeamDef("CIS SW Design") //
- .and(CoreAttributeTypes.StaticId, "cis.sw.design") //
- .andLeads(DemoUsers.Kay_Jones) //
- .andMembers(DemoUsers.Kay_Jones) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_SwDesign);
-
- cisSwTeamDef.createChildTeamDef("CIS Requirements") //
- .and(CoreAttributeTypes.StaticId, "cis.reqirements") //
- .andLeads(DemoUsers.Joe_Smith) //
- .andMembers(DemoUsers.Joe_Smith) //
- .andWorkDef(DemoWorkDefinitions.WorkDef_Team_Demo_Req) //
- .andTeamWorkflowArtifactType(AtsDemoOseeTypes.DemoReqTeamWorkflow);
-
- // CIS SW Actionable Items
- IAtsConfigTxActionableItem cisSwAi = topActionableItem.createChildActionableItem(DemoArtifactToken.CIS_CSCI) //
- .andActionable(false);
-
- cisSwAi.createChildActionableItem("CIS Code") //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.CIS_Code);
-
- cisSwAi.createChildActionableItem("CIS Requirements") //
- .andActionable(true) //
- .andTeamDef("CIS Requirements");
-
- cisSwAi.createChildActionableItem(DemoArtifactToken.CIS_Test_AI) //
- .andActionable(true) //
- .andTeamDef(DemoArtifactToken.CIS_Test);
-
- cisSwAi.createChildActionableItem("CIS SW Design") //
- .andActionable(true) //
- .andTeamDef("CIS SW Design");
-
- // CIS Program
- cfgTx.createProgram(DemoArtifactToken.CIS_Program) //
- .andTeamDef(DemoArtifactToken.CIS_SW) //
- .and(AtsAttributeTypes.Description, "Program object for CIS Program") //
- .and(AtsAttributeTypes.Namespace, "org.demo.cis");
-
- }
-
/**
* Configure SAW_Bld_1 and SAW_Bld_2 for parallel commit, including recursive setup where SAW_Bld_1 needs to be
* committed to SAW_Bld_1 and SAW_Bld_2 and SAW_Bld_2 needs to be committed to SAW_Bld_2 and SAW_Bld_1
@@ -553,4 +86,5 @@ public class AtsDbConfigDemoOp {
changes.execute();
}
+
}
diff --git a/plugins/org.eclipse.osee.client.demo/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.client.demo/META-INF/MANIFEST.MF
index a85fc0fea1..acfe5e3a7a 100644
--- a/plugins/org.eclipse.osee.client.demo/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.client.demo/META-INF/MANIFEST.MF
@@ -12,8 +12,8 @@ Import-Package: javax.ws.rs.core,
org.eclipse.jdt.annotation,
org.eclipse.osee.define.ide.traceability,
org.eclipse.osee.define.ide.traceability.data,
- org.eclipse.osee.framework.access,
org.eclipse.osee.framework.core,
+ org.eclipse.osee.framework.core.access,
org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.core.data.computed,
org.eclipse.osee.framework.core.enums,
diff --git a/plugins/org.eclipse.osee.client.demo/src/org/eclipse/osee/client/demo/internal/AddRequirementData.java b/plugins/org.eclipse.osee.client.demo/src/org/eclipse/osee/client/demo/internal/AddRequirementData.java
index 1a33bd5d27..37ab2ad0fb 100644
--- a/plugins/org.eclipse.osee.client.demo/src/org/eclipse/osee/client/demo/internal/AddRequirementData.java
+++ b/plugins/org.eclipse.osee.client.demo/src/org/eclipse/osee/client/demo/internal/AddRequirementData.java
@@ -20,7 +20,6 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.BranchId;
@@ -67,11 +66,15 @@ public class AddRequirementData implements IDbInitializationTask {
try {
BranchId branch = SAW_Bld_1;
- //@formatter:off
- importRequirements(branch, CoreArtifactTypes.SoftwareRequirementMsWord, CoreArtifactTokens.SoftwareRequirementsFolder, OseeInf.getResourceAsFile("requirements/SAW-SoftwareRequirements.xml", getClass()));
- importRequirements(branch, CoreArtifactTypes.SystemRequirementMsWord, CoreArtifactTokens.SystemRequirementsFolder, OseeInf.getResourceAsFile("requirements/SAW-SystemRequirements.xml", getClass()));
- importRequirements(branch, CoreArtifactTypes.SubsystemRequirementMsWord, CoreArtifactTokens.SubSystemRequirementsFolder, OseeInf.getResourceAsFile("requirements/SAW-SubsystemRequirements.xml", getClass()));
- //@formatter:on
+ importRequirements(branch, CoreArtifactTypes.SoftwareRequirementMsWord,
+ CoreArtifactTokens.SoftwareRequirementsFolder,
+ OseeInf.getResourceAsFile("requirements/SAW-SoftwareRequirements.xml", getClass()));
+ importRequirements(branch, CoreArtifactTypes.SystemRequirementMsWord,
+ CoreArtifactTokens.SystemRequirementsFolder,
+ OseeInf.getResourceAsFile("requirements/SAW-SystemRequirements.xml", getClass()));
+ importRequirements(branch, CoreArtifactTypes.SubsystemRequirementMsWord,
+ CoreArtifactTokens.SubSystemRequirementsFolder,
+ OseeInf.getResourceAsFile("requirements/SAW-SubsystemRequirements.xml", getClass()));
SkynetTransaction demoDbTraceability =
TransactionManager.createTransaction(branch, "Populate Demo DB - Create Traceability");
@@ -80,8 +83,8 @@ public class AddRequirementData implements IDbInitializationTask {
// Create SAW_Bld_2 Child Main Working Branch off SAW_Bld_1
BranchId childBranch = BranchManager.createBaselineBranch(SAW_Bld_1, SAW_Bld_2);
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), SAW_Bld_2,
- PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith),
+ SAW_Bld_2, PermissionEnum.FULLACCESS);
// need to update the branch type;
ConnectionHandler.runPreparedUpdate(UPDATE_BRANCH_TYPE, BranchType.BASELINE, childBranch);
diff --git a/plugins/org.eclipse.osee.client.integration.tests/.project b/plugins/org.eclipse.osee.client.integration.tests/.project
index 28184747a1..dc10962dea 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/.project
+++ b/plugins/org.eclipse.osee.client.integration.tests/.project
@@ -20,6 +20,11 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ds.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
diff --git a/plugins/org.eclipse.osee.client.integration.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.client.integration.tests/META-INF/MANIFEST.MF
index 07873b6f65..fc7acb1e78 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.client.integration.tests/META-INF/MANIFEST.MF
@@ -6,6 +6,7 @@ Bundle-ActivationPolicy: lazy
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: Eclipse Open System Engineering Environment
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Service-Component: OSGI-INF/*.xml
Import-Package: javax.ws.rs.client,
javax.ws.rs.core,
org.eclipse.core.runtime,
@@ -14,7 +15,6 @@ Import-Package: javax.ws.rs.client,
org.eclipse.osee.client.demo,
org.eclipse.osee.client.test.framework,
org.eclipse.osee.define.api,
- org.eclipse.osee.framework.access,
org.eclipse.osee.framework.core,
org.eclipse.osee.framework.core.access,
org.eclipse.osee.framework.core.applicability,
@@ -22,9 +22,6 @@ Import-Package: javax.ws.rs.client,
org.eclipse.osee.framework.core.client.server,
org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.core.data.computed,
- org.eclipse.osee.framework.core.dsl,
- org.eclipse.osee.framework.core.dsl.integration,
- org.eclipse.osee.framework.core.dsl.oseeDsl,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.enums.token,
org.eclipse.osee.framework.core.exception,
@@ -64,6 +61,4 @@ Require-Bundle: org.junit,
org.eclipse.osee.framework.skynet.core,
org.eclipse.osee.framework.ui.skynet,
org.eclipse.osee.define.ide,
- org.eclipse.osee.framework.core.dsl.ui.integration,
- org.eclipse.osee.framework.core.dsl.integration,
javax.mail.glassfish;bundle-version="1.4.1"
diff --git a/plugins/org.eclipse.osee.client.integration.tests/OSGI-INF/osee.api.service.ref.xml b/plugins/org.eclipse.osee.client.integration.tests/OSGI-INF/osee.api.service.ref.xml
index 10cc8fa2a4..4b8d770146 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/OSGI-INF/osee.api.service.ref.xml
+++ b/plugins/org.eclipse.osee.client.integration.tests/OSGI-INF/osee.api.service.ref.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
- <implementation class="org.eclipse.osee.client.integration.tests.integration.OseeApiService"/>
+ <implementation class="org.eclipse.osee.client.integration.tests.internal.OseeApiService"/>
<reference bind="setOseeApi" cardinality="1..1" interface="org.eclipse.osee.framework.core.OseeApi" name="OseeApi" policy="static"/>
</scr:component>
diff --git a/plugins/org.eclipse.osee.client.integration.tests/build.properties b/plugins/org.eclipse.osee.client.integration.tests/build.properties
index 17908691f5..f58f8375b8 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/build.properties
+++ b/plugins/org.eclipse.osee.client.integration.tests/build.properties
@@ -3,4 +3,5 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
logback-test.xml,\
- support/
+ support/,\
+ OSGI-INF/
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/OseeClientIntegrationTestSuite.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/OseeClientIntegrationTestSuite.java
index 916214e54c..fb2967e215 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/OseeClientIntegrationTestSuite.java
+++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/OseeClientIntegrationTestSuite.java
@@ -16,7 +16,6 @@ package org.eclipse.osee.client.integration.tests;
import org.eclipse.osee.client.integration.tests.integration.DirtyArtifactCacheTest;
import org.eclipse.osee.client.integration.tests.integration.LongRunningTestSuite;
import org.eclipse.osee.client.integration.tests.integration.define.XDefineIntegrationTestSuite;
-import org.eclipse.osee.client.integration.tests.integration.dsl.ui.integration.XDslUiIntegrationTestSuite;
import org.eclipse.osee.client.integration.tests.integration.endpoint.EndpointIntegrationTestSuite;
import org.eclipse.osee.client.integration.tests.integration.orcs.rest.OrcsRestTestSuite;
import org.eclipse.osee.client.integration.tests.integration.skynet.core.XSkynetCoreIntegrationTestSuite;
@@ -32,7 +31,6 @@ import org.junit.runners.Suite;
@Suite.SuiteClasses({
OrcsRestTestSuite.class,
EndpointIntegrationTestSuite.class,
- XDslUiIntegrationTestSuite.class,
XDefineIntegrationTestSuite.class,
XSkynetCoreIntegrationTestSuite.class,
XUiSkynetCoreIntegrationTestSuite.class,
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/OseeApiService.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/OseeApiService.java
deleted file mode 100644
index 291f98eb05..0000000000
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/OseeApiService.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.client.integration.tests.integration;
-
-import org.eclipse.osee.framework.core.OseeApi;
-
-/**
- * @author Donald G. Dunne
- */
-public class OseeApiService {
-
- public static OseeApi oseeApi;
-
- public OseeApiService() {
- // for jax-rs
- }
-
- public OseeApi getOseeApi() {
- return oseeApi;
- }
-
- public void setOseeApi(OseeApi oseeApi) {
- OseeApiService.oseeApi = oseeApi;
- }
-
- public static OseeApi get() {
- return oseeApi;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/MockDslProvider.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/MockDslProvider.java
deleted file mode 100644
index 7846b084e6..0000000000
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/MockDslProvider.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.client.integration.tests.integration.dsl.ui.integration;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import org.eclipse.osee.framework.core.dsl.integration.OseeDslProvider;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.OseeDsl;
-
-/**
- * @author Roberto E. Escobar
- */
-public class MockDslProvider implements OseeDslProvider {
-
- private final OseeDsl dslToReturn;
-
- private boolean wasLoadDslCalled;
- private boolean wasGetDslCalled;
- private OseeDsl dslToStore;
-
- public MockDslProvider(OseeDsl dslToReturn) {
- this.dslToReturn = dslToReturn;
- }
-
- @Override
- public void loadDsl() {
- wasLoadDslCalled = true;
- }
-
- @Override
- public OseeDsl getDsl() {
- wasGetDslCalled = true;
- return dslToReturn;
- }
-
- @Override
- public void storeDsl(OseeDsl dsl) {
- dslToStore = dsl;
- }
-
- public OseeDsl getDslToStore() {
- return dslToStore;
- }
-
- public boolean wasLoadDslCalled() {
- return wasLoadDslCalled;
- }
-
- public boolean wasGetDslCalled() {
- return wasGetDslCalled;
- }
-
- @Override
- public Map<String, Long> getContextGuidToIdMap() {
- return new ConcurrentHashMap<>();
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/OseeDslRoleContextProviderTest.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/OseeDslRoleContextProviderTest.java
deleted file mode 100644
index a51f2ebab5..0000000000
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/OseeDslRoleContextProviderTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.client.integration.tests.integration.dsl.ui.integration;
-
-import static org.eclipse.osee.client.demo.DemoChoice.OSEE_CLIENT_DEMO;
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.Artifact;
-import static org.eclipse.osee.framework.core.enums.CoreBranches.COMMON;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import org.eclipse.osee.client.test.framework.OseeClientIntegrationRule;
-import org.eclipse.osee.client.test.framework.OseeLogMonitorRule;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.OseeDslResourceUtil;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.OseeDsl;
-import org.eclipse.osee.framework.core.dsl.ui.integration.operations.OseeDslRoleContextProvider;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTokens;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.core.enums.SystemUser;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
-import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-
-/**
- * Test Case for {@link OseeDslRoleContextProvider}
- *
- * @author John R. Misinco
- */
-public class OseeDslRoleContextProviderTest {
-
- @Rule
- public OseeClientIntegrationRule integration = new OseeClientIntegrationRule(OSEE_CLIENT_DEMO);
-
- @Rule
- public OseeLogMonitorRule monitorRule = new OseeLogMonitorRule();
-
- @Test
- public void testGetContextId() throws Exception {
- Long contextId = Lib.generateArtifactIdAsInt();
- Artifact user = ArtifactQuery.getArtifactFromToken(SystemUser.Anonymous);
- String testSheet = getTestSheet1(contextId, user.getId());
- OseeDsl model = OseeDslResourceUtil.loadModel("osee:/text.osee", testSheet).getModel();
- MockDslProvider dslProvider = new MockDslProvider(model);
- OseeDslRoleContextProvider contextProvider = new OseeDslRoleContextProvider(dslProvider);
- Collection<? extends AccessContextToken> contextIds = contextProvider.getContextId(user);
-
- Assert.assertEquals(1, contextIds.size());
- Assert.assertEquals(contextId, contextIds.iterator().next().getId());
- }
-
- @Test
- public void testGetContextIdExtended() throws Exception {
- Long contextId1 = Lib.generateArtifactIdAsInt();
- Long contextId2 = Lib.generateArtifactIdAsInt();
- Artifact user = ArtifactQuery.getArtifactFromToken(SystemUser.Anonymous);
- Artifact role2User = ArtifactTypeManager.addArtifact(Artifact, COMMON, "Role 2 user");
-
- String testSheet = getTestSheet2(contextId1, user.getId(), contextId2, role2User);
- OseeDsl model = OseeDslResourceUtil.loadModel("osee:/text.osee", testSheet).getModel();
- MockDslProvider dslProvider = new MockDslProvider(model);
- OseeDslRoleContextProvider contextProvider = new OseeDslRoleContextProvider(dslProvider);
- Collection<? extends AccessContextToken> contextIds = contextProvider.getContextId(user);
-
- Assert.assertEquals(1, contextIds.size());
- Assert.assertEquals(contextId1, contextIds.iterator().next().getId());
-
- role2User.persist("Test User");
- contextIds = contextProvider.getContextId(role2User);
-
- Assert.assertEquals(2, contextIds.size());
- Iterator<? extends AccessContextToken> iterator = contextIds.iterator();
- List<Long> contextList = new LinkedList<>();
- contextList.add(contextId1);
- contextList.add(contextId2);
- Assert.assertTrue(contextList.remove(iterator.next().getId()));
- Assert.assertTrue(contextList.remove(iterator.next().getId()));
-
- role2User.deleteAndPersist(getClass().getSimpleName());
- }
-
- @Test
- public void testDbInitCreationOfAccessModel() throws Exception {
- Artifact model = ArtifactQuery.getArtifactFromToken(CoreArtifactTokens.FrameworkAccessModel);
- String xtext = model.getSoleAttributeValue(CoreAttributeTypes.GeneralStringData);
- Assert.assertTrue(xtext.contains("anonymous.context"));
- }
-
- private String getTestSheet1(Long contextId, Long role1Id) {
- StringBuilder sb = new StringBuilder();
- sb.append("role \"role1\" {\n");
- sb.append(" id ");
- sb.append(role1Id);
- sb.append(";\n");
- sb.append(" accessContext \"role1.context\";\n");
- sb.append("}\n\n");
-
- sb.append("accessContext \"role1.context\" {\n");
- sb.append(" id ");
- sb.append(contextId);
- sb.append(";\n");
- sb.append(" DENY edit relationType ALL BOTH;\n");
- sb.append("}\n");
- return sb.toString();
- }
-
- private String getTestSheet2(Long context1, Long role1Id, Long context2, Artifact role2) {
- StringBuilder sb = new StringBuilder(getTestSheet1(context1, role1Id));
- sb.append("\nrole \"role2\" extends \"role1\" {\n");
- sb.append(" id ");
- sb.append(role2.getIdString());
- sb.append(";\n");
- sb.append(" accessContext \"role2.context\";\n");
- sb.append("}\n\n");
-
- sb.append("accessContext \"role2.context\" {\n");
- sb.append(" id ");
- sb.append(context2);
- sb.append(";\n");
- sb.append(" DENY edit relationType ALL BOTH;\n");
- sb.append("}\n");
- return sb.toString();
- }
-}
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/XDslUiIntegrationTestSuite.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/XDslUiIntegrationTestSuite.java
deleted file mode 100644
index 4ddbed430d..0000000000
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/dsl/ui/integration/XDslUiIntegrationTestSuite.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.client.integration.tests.integration.dsl.ui.integration;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({OseeDslRoleContextProviderTest.class})
-/**
- * @author Ryan D. Brooks
- */
-public class XDslUiIntegrationTestSuite {
- // Test Suite
-}
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/AccessControlTest.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/AccessControlTest.java
index f1c17bbfe2..cbbf311718 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/AccessControlTest.java
+++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/AccessControlTest.java
@@ -14,13 +14,13 @@
package org.eclipse.osee.client.integration.tests.integration.skynet.core;
import static org.eclipse.osee.client.demo.DemoChoice.OSEE_CLIENT_DEMO;
+import org.eclipse.osee.client.integration.tests.internal.OseeApiService;
import org.eclipse.osee.client.test.framework.OseeClientIntegrationRule;
import org.eclipse.osee.client.test.framework.OseeLogMonitorRule;
import org.eclipse.osee.client.test.framework.TestInfo;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
@@ -51,38 +51,39 @@ public class AccessControlTest {
private static BranchToken branch;
- @Test(expected = OseeStateException.class)
+ @Test(expected = OseeCoreException.class)
public void testNoWriteOnReadAccessOnBranch() {
- AccessControlManager.setPermission(UserManager.getUser(), branch, PermissionEnum.READ);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(), branch, PermissionEnum.READ);
artifact1 = new Artifact(branch, "New Name");
artifact1.persist(testInfo.getTestName());
}
- @Test(expected = OseeStateException.class)
+ @Test(expected = OseeCoreException.class)
public void testNoWriteOnNoneAccessOnBranch() {
- AccessControlManager.setPermission(UserManager.getUser(), branch, PermissionEnum.NONE);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(), branch, PermissionEnum.NONE);
artifact2 = new Artifact(branch, "New Name");
artifact2.persist(testInfo.getTestName());
}
@Test
public void testWriteAccessOnBranch() {
- AccessControlManager.setPermission(UserManager.getUser(), branch, PermissionEnum.WRITE);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(), branch, PermissionEnum.WRITE);
artifact3 = new Artifact(branch, "New Name");
artifact3.persist(testInfo.getTestName());
}
@Test
public void testWriteOnFullAccessOnBranch() {
- AccessControlManager.setPermission(UserManager.getUser(), branch, PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(), branch,
+ PermissionEnum.FULLACCESS);
artifact4 = new Artifact(branch, "New Name");
artifact4.persist(testInfo.getTestName());
}
- @Test(expected = OseeStateException.class)
+ @Test(expected = OseeCoreException.class)
public void testNoWriteOnDenyAccessOnBranch() {
BranchToken branch = BranchManager.createTopLevelBranch(testInfo.getTestName() + " branch");
- AccessControlManager.setPermission(UserManager.getUser(), branch, PermissionEnum.DENY);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(), branch, PermissionEnum.DENY);
artifact5 = new Artifact(branch, "New Name");
artifact5.persist(testInfo.getTestName());
}
@@ -118,4 +119,4 @@ public class AccessControlTest {
BranchManager.purgeBranch(branch);
}
}
-}
\ No newline at end of file
+}
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/ArtifactQueryTest.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/ArtifactQueryTest.java
index 8465df1ed9..5376259ec6 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/ArtifactQueryTest.java
+++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/ArtifactQueryTest.java
@@ -23,11 +23,11 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.osee.client.integration.tests.internal.OseeApiService;
import org.eclipse.osee.client.test.framework.OseeClientIntegrationRule;
import org.eclipse.osee.client.test.framework.OseeHousekeepingRule;
import org.eclipse.osee.client.test.framework.OseeLogMonitorRule;
import org.eclipse.osee.client.test.framework.TestInfo;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.AttributeId;
import org.eclipse.osee.framework.core.data.BranchId;
@@ -38,6 +38,7 @@ import org.eclipse.osee.framework.core.enums.CoreArtifactTokens;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreBranches;
+import org.eclipse.osee.framework.core.enums.CoreUserGroups;
import org.eclipse.osee.framework.core.enums.DeletionFlag;
import org.eclipse.osee.framework.core.enums.DemoUsers;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
@@ -192,7 +193,8 @@ public class ArtifactQueryTest {
public void testGetOrCreate() throws Exception {
String guid = GUID.create();
BranchToken branch = BranchManager.createTopLevelBranch(testInfo.getTestName() + " branch");
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), branch, PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith), branch,
+ PermissionEnum.FULLACCESS);
Artifact artifact1 = ArtifactQuery.getOrCreate(guid, CoreArtifactTypes.GeneralData, branch);
Assert.assertNotNull(artifact1);
@@ -206,7 +208,8 @@ public class ArtifactQueryTest {
public void testLargeAttributeIndexing() throws Exception {
String guid = GUID.create();
BranchToken branch = BranchManager.createTopLevelBranch(testInfo.getTestName() + " branch");
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), branch, PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith), branch,
+ PermissionEnum.FULLACCESS);
Artifact artifact1 = ArtifactQuery.getOrCreate(guid, CoreArtifactTypes.GeneralData, branch);
artifact1.setSoleAttributeFromString(CoreAttributeTypes.Name, longStr());
@@ -231,7 +234,8 @@ public class ArtifactQueryTest {
@Test
public void testQueryById() {
BranchToken branch = BranchManager.createTopLevelBranch(testInfo.getTestName() + " branch");
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), branch, PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith), branch,
+ PermissionEnum.FULLACCESS);
List<ArtifactId> newIdsInOrder = new LinkedList<>();
createArtifactFortestQueryById(newIdsInOrder, branch);
@@ -280,7 +284,8 @@ public class ArtifactQueryTest {
@Test
public void testMultipleValues() {
QueryBuilderArtifact builder = ArtifactQuery.createQueryBuilder(CoreBranches.COMMON);
- builder.and(CoreAttributeTypes.Name, Arrays.asList("Everyone", "OseeAdmin"));
+ builder.and(CoreAttributeTypes.Name,
+ Arrays.asList(CoreUserGroups.Everyone.getName(), CoreUserGroups.OseeAdmin.getName()));
int count = builder.getCount();
Assert.assertEquals(2, count);
}
@@ -288,9 +293,11 @@ public class ArtifactQueryTest {
@Test
public void testMultipleValuesIgnoreCase() {
QueryBuilderArtifact builder = ArtifactQuery.createQueryBuilder(CoreBranches.COMMON);
- builder.and(CoreAttributeTypes.Name, Arrays.asList("everyone", "oseeadmin"), QueryOption.CASE__IGNORE);
- int count = builder.getCount();
- Assert.assertEquals(2, count);
+ builder.and(CoreAttributeTypes.Name, Arrays.asList(CoreUserGroups.Everyone.getName().toLowerCase(),
+ CoreUserGroups.OseeAdmin.getName().toLowerCase()), QueryOption.CASE__IGNORE);
+ List<Artifact> arts = builder.getResults().getList();
+ int count = arts.size();
+ Assert.assertEquals(3, count);
}
@Test
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/DoorsArtifactExtractorTest.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/DoorsArtifactExtractorTest.java
index 347df61c6c..ef45795096 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/DoorsArtifactExtractorTest.java
+++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/DoorsArtifactExtractorTest.java
@@ -40,7 +40,6 @@ import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
import org.eclipse.osee.framework.skynet.core.importing.RoughArtifact;
-import org.eclipse.osee.framework.skynet.core.importing.RoughArtifactKind;
import org.eclipse.osee.framework.skynet.core.importing.RoughAttributeSet;
import org.eclipse.osee.framework.skynet.core.importing.operations.RoughArtifactCollector;
import org.eclipse.osee.framework.skynet.core.importing.parsers.DoorsArtifactExtractor;
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/OseeApiService.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/OseeApiService.java
deleted file mode 100644
index 356e139fcd..0000000000
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/skynet/core/OseeApiService.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.client.integration.tests.integration.skynet.core;
-
-import org.eclipse.osee.framework.core.OseeApi;
-
-/**
- * @author Donald G. Dunne
- */
-public class OseeApiService {
-
- public static OseeApi oseeApi;
-
- public OseeApiService() {
- // for jax-rs
- }
-
- public OseeApi getOseeApi() {
- return oseeApi;
- }
-
- public void setOseeApi(OseeApi oseeApi) {
- OseeApiService.oseeApi = oseeApi;
- }
-
- public static OseeApi get() {
- return oseeApi;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/HtmlRendererTest.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/HtmlRendererTest.java
index 149fc888e4..2f3bc5eddb 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/HtmlRendererTest.java
+++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/HtmlRendererTest.java
@@ -19,10 +19,10 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import org.eclipse.osee.client.integration.tests.internal.OseeApiService;
import org.eclipse.osee.client.test.framework.OseeClientIntegrationRule;
import org.eclipse.osee.client.test.framework.OseeLogMonitorRule;
import org.eclipse.osee.client.test.framework.TestInfo;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
@@ -87,7 +87,7 @@ public class HtmlRendererTest {
String branchName = method.getQualifiedTestName();
rootBranch = BranchManager.createTopLevelBranch(branchName);
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), rootBranch,
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith), rootBranch,
PermissionEnum.FULLACCESS);
Artifact programRoot = OseeSystemArtifacts.getDefaultHierarchyRootArtifact(rootBranch);
@@ -150,4 +150,4 @@ public class HtmlRendererTest {
return value;
}
-}
\ No newline at end of file
+}
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/RelationIntegrityCheckTest.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/RelationIntegrityCheckTest.java
index 5de9cca438..786215c81b 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/RelationIntegrityCheckTest.java
+++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/RelationIntegrityCheckTest.java
@@ -16,9 +16,9 @@ package org.eclipse.osee.client.integration.tests.integration.ui.skynet;
import static org.eclipse.osee.client.demo.DemoChoice.OSEE_CLIENT_DEMO;
import java.util.LinkedList;
import java.util.List;
+import org.eclipse.osee.client.integration.tests.internal.OseeApiService;
import org.eclipse.osee.client.test.framework.OseeClientIntegrationRule;
import org.eclipse.osee.client.test.framework.OseeLogMonitorRule;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.GammaId;
@@ -71,8 +71,8 @@ public class RelationIntegrityCheckTest {
@Before
public void setUp() throws Exception {
parentBranch = BranchManager.createTopLevelBranch("1");
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), parentBranch,
- PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith),
+ parentBranch, PermissionEnum.FULLACCESS);
Artifact art_A = ArtifactTypeManager.addArtifact(CoreArtifactTypes.Folder, parentBranch, "A");
art_A.persist(getClass().getSimpleName());
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/ViewWordChangeAndDiffTest.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/ViewWordChangeAndDiffTest.java
index 0c639bc123..6efbea2eb5 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/ViewWordChangeAndDiffTest.java
+++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/ViewWordChangeAndDiffTest.java
@@ -27,9 +27,9 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.eclipse.core.resources.IFolder;
+import org.eclipse.osee.client.integration.tests.internal.OseeApiService;
import org.eclipse.osee.client.test.framework.OseeClientIntegrationRule;
import org.eclipse.osee.client.test.framework.OseeLogMonitorRule;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
@@ -163,7 +163,8 @@ public final class ViewWordChangeAndDiffTest {
}
private static void checkPermissions(List<Artifact> artifacts) {
- boolean isReadable = AccessControlManager.hasPermission(artifacts, PermissionEnum.READ);
+ boolean isReadable =
+ OseeApiService.get().getAccessControlService().hasArtifactPermission(artifacts, PermissionEnum.READ, null).isSuccess();
assertTrue("Valid object permissions", isReadable);
}
diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/WordTemplateRendererTest.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/WordTemplateRendererTest.java
index ed10c5c856..8491b20176 100644
--- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/WordTemplateRendererTest.java
+++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/integration/ui/skynet/WordTemplateRendererTest.java
@@ -39,10 +39,10 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.eclipse.osee.client.integration.tests.internal.OseeApiService;
import org.eclipse.osee.client.test.framework.OseeClientIntegrationRule;
import org.eclipse.osee.client.test.framework.OseeLogMonitorRule;
import org.eclipse.osee.client.test.framework.TestInfo;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
@@ -171,7 +171,7 @@ public class WordTemplateRendererTest {
String branchName = method.getQualifiedTestName();
rootBranch = BranchManager.createTopLevelBranch(branchName);
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), rootBranch,
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith), rootBranch,
PermissionEnum.FULLACCESS);
Artifact programRoot = OseeSystemArtifacts.getDefaultHierarchyRootArtifact(rootBranch);
@@ -211,7 +211,8 @@ public class WordTemplateRendererTest {
@Test
public void testBlankWordTemplateContent() {
BranchToken rootBr = BranchManager.createTopLevelBranch("Root Branch");
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), rootBr, PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith), rootBr,
+ PermissionEnum.FULLACCESS);
SkynetTransaction tx =
TransactionManager.createTransaction(rootBr, String.format("%s", method.getQualifiedTestName()));
diff --git a/plugins/org.eclipse.osee.client.parent/pom.xml b/plugins/org.eclipse.osee.client.parent/pom.xml
index 9fe9969515..58c2b52bf2 100644
--- a/plugins/org.eclipse.osee.client.parent/pom.xml
+++ b/plugins/org.eclipse.osee.client.parent/pom.xml
@@ -32,14 +32,9 @@
<module>../../plugins/org.eclipse.osee.framework.lifecycle</module>
<module>../../plugins/org.eclipse.osee.framework.lifecycle.test</module>
- <module>../../plugins/org.eclipse.osee.framework.access</module>
- <module>../../plugins/org.eclipse.osee.framework.access.provider</module>
-
<module>../../plugins/org.eclipse.osee.framework.branch.gantt</module>
<module>../../plugins/org.eclipse.osee.framework.core.client</module>
- <!--<module>../../plugins/org.eclipse.osee.framework.core.dsl</module> -->
- <!--<module>../../plugins/org.eclipse.osee.framework.core.dsl.integration</module> -->
<module>../../plugins/org.eclipse.osee.framework.database.init</module>
<module>../../plugins/org.eclipse.osee.framework.messaging.event.res</module>
@@ -58,10 +53,6 @@
<module>../../plugins/org.eclipse.osee.framework.ui.skynet</module>
<module>../../plugins/org.eclipse.osee.framework.ui.skynet.test</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.ui</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.ui.integration</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.ui.integration.test</module>
-
<module>../../plugins/org.eclipse.osee.framework.ui.branch.graph</module>
<module>../../plugins/org.eclipse.osee.framework.ui.data.model.editor</module>
<module>../../plugins/org.eclipse.osee.framework.ui.product</module>
@@ -106,14 +97,9 @@
<module>../../plugins/org.eclipse.osee.framework.lifecycle</module>
<module>../../plugins/org.eclipse.osee.framework.lifecycle.test</module>
- <module>../../plugins/org.eclipse.osee.framework.access</module>
- <module>../../plugins/org.eclipse.osee.framework.access.provider</module>
-
<module>../../plugins/org.eclipse.osee.framework.branch.gantt</module>
<module>../../plugins/org.eclipse.osee.framework.core.client</module>
- <!--<module>../../plugins/org.eclipse.osee.framework.core.dsl</module> -->
- <!--<module>../../plugins/org.eclipse.osee.framework.core.dsl.integration</module> -->
<module>../../plugins/org.eclipse.osee.framework.database.init</module>
<module>../../plugins/org.eclipse.osee.framework.messaging.event.res</module>
@@ -132,10 +118,6 @@
<module>../../plugins/org.eclipse.osee.framework.ui.skynet</module>
<module>../../plugins/org.eclipse.osee.framework.ui.skynet.test</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.ui</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.ui.integration</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.ui.integration.test</module>
-
<module>../../plugins/org.eclipse.osee.framework.ui.branch.graph</module>
<module>../../plugins/org.eclipse.osee.framework.ui.data.model.editor</module>
<module>../../plugins/org.eclipse.osee.framework.ui.product</module>
diff --git a/plugins/org.eclipse.osee.disposition.rest/OSGI-INF/connector.service.xml b/plugins/org.eclipse.osee.disposition.rest/OSGI-INF/connector.service.xml
deleted file mode 100644
index 27c51f0cfd..0000000000
--- a/plugins/org.eclipse.osee.disposition.rest/OSGI-INF/connector.service.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.disposition.rest.internal.DispoConnector"/>
- <service>
- <provide interface="org.eclipse.osee.disposition.rest.internal.DispoConnector"/>
- </service>
- <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.access.provider/.classpath b/plugins/org.eclipse.osee.framework.access.provider/.classpath
deleted file mode 100644
index 1fa3e6803d..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.osee.framework.access.provider/.project b/plugins/org.eclipse.osee.framework.access.provider/.project
deleted file mode 100644
index 17078c5e8f..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/.project
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.osee.framework.access.provider</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
- </natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.osee.framework.access.provider/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.access.provider/META-INF/MANIFEST.MF
deleted file mode 100644
index ddd6dc7a17..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,37 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Framework Access Provider
-Bundle-SymbolicName: org.eclipse.osee.framework.access.provider;singleton:=true
-Bundle-ActivationPolicy: lazy
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: Eclipse Open System Engineering Environment
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.osee.framework.core,
- org.eclipse.osee.framework.core.access,
- org.eclipse.osee.framework.core.data,
- org.eclipse.osee.framework.core.dsl.integration,
- org.eclipse.osee.framework.core.dsl.oseeDsl,
- org.eclipse.osee.framework.core.dsl.ui.integration.operations,
- org.eclipse.osee.framework.core.enums,
- org.eclipse.osee.framework.core.enums.token,
- org.eclipse.osee.framework.core.exception,
- org.eclipse.osee.framework.core.model,
- org.eclipse.osee.framework.core.model.access,
- org.eclipse.osee.framework.core.model.type,
- org.eclipse.osee.framework.core.services,
- org.eclipse.osee.framework.core.util,
- org.eclipse.osee.framework.database.init,
- org.eclipse.osee.framework.jdk.core.type,
- org.eclipse.osee.framework.jdk.core.util,
- org.eclipse.osee.framework.logging,
- org.eclipse.osee.framework.skynet.core.artifact,
- org.eclipse.osee.framework.skynet.core.artifact.search,
- org.eclipse.osee.framework.skynet.core.event,
- org.eclipse.osee.framework.skynet.core.event.filter,
- org.eclipse.osee.framework.skynet.core.event.listener,
- org.eclipse.osee.framework.skynet.core.event.model,
- org.eclipse.osee.framework.skynet.core.transaction,
- org.osgi.framework
-Service-Component: OSGI-INF/*.xml
diff --git a/plugins/org.eclipse.osee.framework.access.provider/OSGI-INF/framework.access.control.xml b/plugins/org.eclipse.osee.framework.access.provider/OSGI-INF/framework.access.control.xml
deleted file mode 100644
index 79db76c327..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/OSGI-INF/framework.access.control.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.framework.access.provider.internal.FrameworkAccessControlProxy"/>
- <service>
- <provide interface="org.eclipse.osee.framework.core.services.CmAccessControl"/>
- <provide interface="org.eclipse.osee.framework.core.model.access.HasAccessModel"/>
- </service>
- <property name="default" type="Boolean" value="true"/>
- <reference bind="setAccessModelInterpreter" cardinality="1..1" interface="org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter" name="AccessModelInterpreter" policy="static"/>
- <reference bind="setEventService" cardinality="1..1" interface="org.eclipse.osee.framework.skynet.core.event.OseeEventService" name="OseeEventService" policy="static"/>
- <reference cardinality="1..1" interface="org.eclipse.core.resources.IWorkspace" name="IWorkspace" policy="static"/>
- <reference bind="setOrcsTokenService" cardinality="1..1" interface="org.eclipse.osee.framework.core.OrcsTokenService" name="OrcsTokenService" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.access.provider/build.properties b/plugins/org.eclipse.osee.framework.access.provider/build.properties
deleted file mode 100644
index 6210e849b5..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/
-source.. = src/
diff --git a/plugins/org.eclipse.osee.framework.access.provider/pom.xml b/plugins/org.eclipse.osee.framework.access.provider/pom.xml
deleted file mode 100644
index 3b2e7438bd..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/pom.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.eclipse.osee</groupId>
- <artifactId>org.eclipse.osee.client.parent</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <relativePath>../../plugins/org.eclipse.osee.client.parent</relativePath>
- </parent>
-
- <artifactId>org.eclipse.osee.framework.access.provider</artifactId>
- <packaging>eclipse-plugin</packaging>
- <name>OSEE Framework Access (Incubation)</name>
-
-
-</project>
diff --git a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/DefaultFrameworkAccessConstants.java b/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/DefaultFrameworkAccessConstants.java
deleted file mode 100644
index b14d141072..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/DefaultFrameworkAccessConstants.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.provider.internal;
-
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-
-/**
- * @author John R. Misinco
- */
-public final class DefaultFrameworkAccessConstants {
-
- private DefaultFrameworkAccessConstants() {
- //do nothing
- }
-
- public static final AccessContextToken DEFAULT_FRAMEWORK_CONTEXT =
- AccessContextToken.valueOf(7441402941554657282L, "anonymous.context");
-
- public final static AccessContextToken INVALID_ASSOC_ART_ID =
- AccessContextToken.valueOf(8528534420990278776L, "famework.invalidAssocArtId");
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessControl.java b/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessControl.java
deleted file mode 100644
index ff15a268d9..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessControl.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.provider.internal;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.integration.RoleContextProvider;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-
-/**
- * @author John R. Misinco
- */
-public class FrameworkAccessControl implements CmAccessControl {
- private final RoleContextProvider roleContextProvider;
-
- public FrameworkAccessControl(RoleContextProvider roleContextProvider) {
- this.roleContextProvider = roleContextProvider;
- }
-
- @Override
- public boolean isApplicable(ArtifactToken user, Object object) {
- return true;
- }
-
- @Override
- public Collection<? extends AccessContextToken> getContextId(ArtifactToken user, Object object) {
- return roleContextProvider.getContextId(user);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessControlProxy.java b/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessControlProxy.java
deleted file mode 100644
index 3d6d555350..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessControlProxy.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.provider.internal;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.logging.Level;
-import org.eclipse.osee.framework.core.OrcsTokenService;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter;
-import org.eclipse.osee.framework.core.dsl.integration.RoleContextProvider;
-import org.eclipse.osee.framework.core.dsl.ui.integration.operations.OseeDslRoleContextProvider;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
-import org.eclipse.osee.framework.core.enums.CoreBranches;
-import org.eclipse.osee.framework.core.model.access.AccessModel;
-import org.eclipse.osee.framework.core.model.access.HasAccessModel;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Conditions;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.event.OseeEventService;
-import org.eclipse.osee.framework.skynet.core.event.filter.ArtifactEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.filter.ArtifactTypeEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.filter.BranchIdEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.filter.IEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.listener.EventQosType;
-import org.eclipse.osee.framework.skynet.core.event.listener.IArtifactEventListener;
-import org.eclipse.osee.framework.skynet.core.event.listener.IEventListener;
-import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.Sender;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-/**
- * @author John R. Misinco
- */
-public class FrameworkAccessControlProxy implements CmAccessControl, HasAccessModel {
-
- private ServiceReference<AccessModelInterpreter> reference;
- private CmAccessControl frameworkAccessControl;
- private AccessModel accessModel;
- private IEventListener listener;
- private OseeEventService eventService;
- private BundleContext bundleContext;
- private OrcsTokenService tokenService;
-
- private volatile boolean isInitialized = false;
-
- public void setOrcsTokenService(OrcsTokenService tokenService) {
- this.tokenService = tokenService;
- }
-
- public void setAccessModelInterpreter(ServiceReference<AccessModelInterpreter> reference) {
- this.reference = reference;
- }
-
- public void setEventService(OseeEventService eventService) {
- this.eventService = eventService;
- }
-
- public void start(BundleContext bundleContext) {
- this.bundleContext = bundleContext;
- }
-
- public void stop() {
- if (listener != null) {
- eventService.removeListener(EventQosType.NORMAL, listener);
- listener = null;
- }
- frameworkAccessControl = null;
- accessModel = null;
- }
-
- private boolean isReady() {
- return reference != null && eventService != null && bundleContext != null;
- }
-
- private synchronized void ensureInitialized() {
- if (isReady() && !isInitialized) {
- AccessModelInterpreter interpreter = bundleContext.getService(reference);
-
- FrameworkDslProvider frameworkDslProvider = new FrameworkDslProvider("osee:/xtext/framework.access.osee");
- RoleContextProvider roleProvider = new OseeDslRoleContextProvider(frameworkDslProvider);
-
- accessModel = new FrameworkAccessModel(interpreter, frameworkDslProvider, tokenService);
- frameworkAccessControl = new FrameworkAccessControl(roleProvider);
-
- listener = new DslUpdateListener(frameworkDslProvider);
- eventService.addListener(EventQosType.NORMAL, listener);
- isInitialized = true;
- }
- }
-
- private void checkInitialized() {
- Conditions.checkNotNull(getAccessControl(), "frameworkAccess",
- "FrameworkAccessControlService not properly initialized");
- }
-
- private CmAccessControl getAccessControl() {
- ensureInitialized();
- return frameworkAccessControl;
- }
-
- @Override
- public AccessModel getAccessModel() {
- ensureInitialized();
- return accessModel;
- }
-
- @Override
- public boolean isApplicable(ArtifactToken user, Object object) {
- return getAccessControl().isApplicable(user, object);
- }
-
- @Override
- public Collection<? extends AccessContextToken> getContextId(ArtifactToken user, Object object) {
- checkInitialized();
- return getAccessControl().getContextId(user, object);
- }
-
- private final class DslUpdateListener implements IArtifactEventListener {
-
- private List<? extends IEventFilter> eventFilters;
- private final FrameworkDslProvider dslProvider;
-
- public DslUpdateListener(FrameworkDslProvider dslProvider) {
- this.dslProvider = dslProvider;
- }
-
- @Override
- public synchronized List<? extends IEventFilter> getEventFilters() {
- if (eventFilters == null) {
- Artifact artifact = dslProvider.getStorageArtifact();
- if (artifact != null) {
- eventFilters = Arrays.asList(new ArtifactEventFilter(artifact));
- } else {
- eventFilters = Arrays.asList(new ArtifactTypeEventFilter(CoreArtifactTypes.AccessControlModel),
- new BranchIdEventFilter(CoreBranches.COMMON));
- }
- }
- return eventFilters;
- }
-
- @Override
- public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
- try {
- dslProvider.loadDsl();
- } catch (OseeCoreException ex) {
- OseeLog.log(DefaultFrameworkAccessConstants.class, Level.SEVERE, ex);
- }
- }
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessModel.java b/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessModel.java
deleted file mode 100644
index 25f44ca7be..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkAccessModel.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.provider.internal;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.OrcsTokenService;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.data.RelationTypeSide;
-import org.eclipse.osee.framework.core.data.RelationTypeToken;
-import org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter;
-import org.eclipse.osee.framework.core.dsl.integration.OseeDslAccessModel;
-import org.eclipse.osee.framework.core.dsl.integration.OseeDslProvider;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.enums.RelationSide;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-
-/**
- * @author John Misinco
- */
-public class FrameworkAccessModel extends OseeDslAccessModel {
-
- private final OrcsTokenService tokenService;
-
- public FrameworkAccessModel(AccessModelInterpreter interpreter, OseeDslProvider dslProvider, OrcsTokenService tokenService) {
- super(interpreter, dslProvider);
- this.tokenService = tokenService;
- }
-
- @Override
- public void computeAccess(AccessContextToken contextId, Collection<Object> objectsToCheck, AccessData accessData) {
- if (contextId.equals(DefaultFrameworkAccessConstants.INVALID_ASSOC_ART_ID)) {
- for (Object obj : objectsToCheck) {
- AccessDetail<Object> data = new AccessDetail<>(obj, PermissionEnum.READ, Scope.createLegacyScope(),
- "Invalid artifact Id associated with branch");
- accessData.add(obj, data);
- addRelationAccess(obj, accessData);
- }
- } else {
- super.computeAccess(contextId, objectsToCheck, accessData);
- }
- }
-
- private void addRelationAccess(Object object, AccessData accessData) {
- if (object instanceof Artifact) {
- for (RelationTypeToken relationType : tokenService.getValidRelationTypes(
- ((Artifact) object).getArtifactType())) {
- for (RelationSide relationSide : RelationSide.values()) {
- accessData.add(object, new AccessDetail<>(new RelationTypeSide(relationType, relationSide),
- PermissionEnum.READ, Scope.createLegacyScope()));
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkDslProvider.java b/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkDslProvider.java
deleted file mode 100644
index cc2b896cb3..0000000000
--- a/plugins/org.eclipse.osee.framework.access.provider/src/org/eclipse/osee/framework/access/provider/internal/FrameworkDslProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.provider.internal;
-
-import org.eclipse.osee.framework.core.dsl.ui.integration.operations.AbstractOseeDslProvider;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTokens;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-
-/**
- * @author John R. Misinco
- */
-public class FrameworkDslProvider extends AbstractOseeDslProvider {
-
- public FrameworkDslProvider(String locationUri) {
- super(locationUri);
- }
-
- protected Artifact getStorageArtifact() {
- try {
- return ArtifactQuery.getArtifactFromToken(CoreArtifactTokens.FrameworkAccessModel);
- } catch (OseeCoreException ex) {
- return null;
- }
- }
-
- @Override
- protected String getModelFromStorage() {
- Artifact storageArtifact = getStorageArtifact();
- if (storageArtifact != null) {
- return storageArtifact.getSoleAttributeValue(CoreAttributeTypes.GeneralStringData);
- } else {
- return Strings.EMPTY_STRING;
- }
- }
-
- @Override
- protected void saveModelToStorage(String model) {
- Artifact artifact = getStorageArtifact();
- if (artifact != null) {
- artifact.setSoleAttributeFromString(CoreAttributeTypes.GeneralStringData, model);
- artifact.persist(getClass().getSimpleName());
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access/.classpath b/plugins/org.eclipse.osee.framework.access/.classpath
deleted file mode 100644
index 1fa3e6803d..0000000000
--- a/plugins/org.eclipse.osee.framework.access/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.osee.framework.access/.pmd b/plugins/org.eclipse.osee.framework.access/.pmd
deleted file mode 100644
index c7b0a9fb3f..0000000000
--- a/plugins/org.eclipse.osee.framework.access/.pmd
+++ /dev/null
@@ -1,925 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<pmd>
- <useProjectRuleSet>false</useProjectRuleSet>
- <ruleSetFile>.ruleset</ruleSetFile>
- <rules>
- <rule>
- <name>LooseCoupling</name>
- <ruleset>Type Resolution Rules</ruleset>
- </rule>
- <rule>
- <name>CloneMethodMustImplementCloneable</name>
- <ruleset>Type Resolution Rules</ruleset>
- </rule>
- <rule>
- <name>UnusedImports</name>
- <ruleset>Type Resolution Rules</ruleset>
- </rule>
- <rule>
- <name>SignatureDeclareThrowsException</name>
- <ruleset>Type Resolution Rules</ruleset>
- </rule>
- <rule>
- <name>IfStmtsMustUseBraces</name>
- <ruleset>Braces Rules</ruleset>
- </rule>
- <rule>
- <name>WhileLoopsMustUseBraces</name>
- <ruleset>Braces Rules</ruleset>
- </rule>
- <rule>
- <name>IfElseStmtsMustUseBraces</name>
- <ruleset>Braces Rules</ruleset>
- </rule>
- <rule>
- <name>ForLoopsMustUseBraces</name>
- <ruleset>Braces Rules</ruleset>
- </rule>
- <rule>
- <name>UseSingleton</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>SimplifyBooleanReturns</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>SimplifyBooleanExpressions</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>SwitchStmtsShouldHaveDefault</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidDeeplyNestedIfStmts</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidReassigningParameters</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>SwitchDensity</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>ConstructorCallsOverridableMethod</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AccessorClassGeneration</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>FinalFieldCouldBeStatic</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>CloseResource</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>NonStaticInitializer</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>DefaultLabelNotLastInSwitchStmt</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>NonCaseLabelInSwitchStatement</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>OptimizableToArrayCall</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>BadComparison</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>EqualsNull</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>ConfusingTernary</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>InstantiationToGetClass</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>IdempotentOperations</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>SimpleDateFormatNeedsLocale</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>ImmutableField</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>UseLocaleWithCaseConversions</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidProtectedFieldInFinalClass</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AssignmentToNonFinalStatic</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>MissingStaticMethodInNonInstantiatableClass</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidSynchronizedAtMethodLevel</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>MissingBreakInSwitch</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>UseNotifyAllInsteadOfNotify</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidInstanceofChecksInCatchClause</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AbstractClassWithoutAbstractMethod</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>SimplifyConditional</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>CompareObjectsWithEquals</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>PositionLiteralsFirstInComparisons</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryLocalBeforeReturn</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>NonThreadSafeSingleton</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>UncommentedEmptyMethod</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>UncommentedEmptyConstructor</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidConstantsInterface</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>UnsynchronizedStaticDateFormatter</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>PreserveStackTrace</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>UseCollectionIsEmpty</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>ClassWithOnlyPrivateConstructorsShouldBeFinal</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyMethodInAbstractClassShouldBeAbstract</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>SingularField</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>ReturnEmptyArrayRatherThanNull</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AbstractClassWithoutAnyMethod</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>TooFewBranchesForASwitchStatement</name>
- <ruleset>Design Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidCatchingThrowable</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>SignatureDeclareThrowsException</name>
- <ruleset>Type Resolution Rules</ruleset>
- </rule>
- <rule>
- <name>ExceptionAsFlowControl</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidCatchingNPE</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidThrowingRawExceptionTypes</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidThrowingNullPointerException</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidRethrowingException</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>DoNotExtendJavaLangError</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>DoNotThrowExceptionInFinally</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidThrowingNewInstanceOfSameException</name>
- <ruleset>Strict Exception Rules</ruleset>
- </rule>
- <rule>
- <name>UnusedPrivateField</name>
- <ruleset>Unused Code Rules</ruleset>
- </rule>
- <rule>
- <name>UnusedLocalVariable</name>
- <ruleset>Unused Code Rules</ruleset>
- </rule>
- <rule>
- <name>UnusedPrivateMethod</name>
- <ruleset>Unused Code Rules</ruleset>
- </rule>
- <rule>
- <name>UnusedFormalParameter</name>
- <ruleset>Unused Code Rules</ruleset>
- </rule>
- <rule>
- <name>MoreThanOneLogger</name>
- <ruleset>Java Logging Rules</ruleset>
- </rule>
- <rule>
- <name>LoggerIsNotStaticFinal</name>
- <ruleset>Java Logging Rules</ruleset>
- </rule>
- <rule>
- <name>SystemPrintln</name>
- <ruleset>Java Logging Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidPrintStackTrace</name>
- <ruleset>Java Logging Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidDuplicateLiterals</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>StringInstantiation</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>StringToString</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>InefficientStringBuffering</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryCaseChange</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>UseStringBufferLength</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>AppendCharacterWithChar</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>ConsecutiveLiteralAppends</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>UseIndexOfChar</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>InefficientEmptyStringCheck</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>InsufficientStringBufferDeclaration</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>UselessStringValueOf</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>StringBufferInstantiationWithChar</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>UseEqualsToCompareStrings</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidStringBufferField</name>
- <ruleset>String and StringBuffer Rules</ruleset>
- </rule>
- <rule>
- <name>ReplaceVectorWithList</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>ReplaceHashtableWithMap</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>ReplaceEnumerationWithIterator</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidEnumAsIdentifier</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidAssertAsIdentifier</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>IntegerInstantiation</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>ByteInstantiation</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>ShortInstantiation</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>LongInstantiation</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>JUnit4TestShouldUseBeforeAnnotation</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>JUnit4TestShouldUseAfterAnnotation</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>JUnit4TestShouldUseTestAnnotation</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>JUnit4SuitesShouldUseSuiteAnnotation</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>JUnitUseExpected</name>
- <ruleset>Migration Rules</ruleset>
- </rule>
- <rule>
- <name>UseProperClassLoader</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>MDBAndSessionBeanNamingConvention</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>RemoteSessionInterfaceNamingConvention</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>LocalInterfaceSessionNamingConvention</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>LocalHomeNamingConvention</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>RemoteInterfaceNamingConvention</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>DoNotCallSystemExit</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>StaticEJBFieldShouldBeFinal</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>DoNotUseThreads</name>
- <ruleset>J2EE Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidInstantiatingObjectsInLoops</name>
- <ruleset>Optimization Rules</ruleset>
- </rule>
- <rule>
- <name>UseArrayListInsteadOfVector</name>
- <ruleset>Optimization Rules</ruleset>
- </rule>
- <rule>
- <name>SimplifyStartsWith</name>
- <ruleset>Optimization Rules</ruleset>
- </rule>
- <rule>
- <name>UseStringBufferForStringAppends</name>
- <ruleset>Optimization Rules</ruleset>
- </rule>
- <rule>
- <name>UseArraysAsList</name>
- <ruleset>Optimization Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidArrayLoops</name>
- <ruleset>Optimization Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryWrapperObjectCreation</name>
- <ruleset>Optimization Rules</ruleset>
- </rule>
- <rule>
- <name>AddEmptyString</name>
- <ruleset>Optimization Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyCatchBlock</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyIfStmt</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyWhileStmt</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyTryBlock</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyFinallyBlock</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptySwitchStatements</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>JumbledIncrementer</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>ForLoopShouldBeWhileLoop</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryConversionTemporary</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>OverrideBothEqualsAndHashcode</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>DoubleCheckedLocking</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>ReturnFromFinallyBlock</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptySynchronizedBlock</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryReturn</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyStaticInitializer</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>UnconditionalIfStatement</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyStatementNotInLoop</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>BooleanInstantiation</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryFinalModifier</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>CollapsibleIfStatements</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>UselessOverridingMethod</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>ClassCastExceptionWithToArray</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidDecimalLiteralsInBigDecimalConstructor</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>UselessOperationOnImmutable</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>MisplacedNullCheck</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>UnusedNullCheckInEquals</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidThreadGroup</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>BrokenNullCheck</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>BigIntegerInstantiation</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidUsingOctalValues</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidUsingHardCodedIP</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>CheckResultSet</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidMultipleUnaryOperators</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyInitializer</name>
- <ruleset>Basic Rules</ruleset>
- </rule>
- <rule>
- <name>MethodReturnsInternalArray</name>
- <ruleset>Security Code Guidelines</ruleset>
- </rule>
- <rule>
- <name>ArrayIsStoredDirectly</name>
- <ruleset>Security Code Guidelines</ruleset>
- </rule>
- <rule>
- <name>CouplingBetweenObjects</name>
- <ruleset>Coupling Rules</ruleset>
- </rule>
- <rule>
- <name>ExcessiveImports</name>
- <ruleset>Coupling Rules</ruleset>
- </rule>
- <rule>
- <name>LooseCoupling</name>
- <ruleset>Type Resolution Rules</ruleset>
- </rule>
- <rule>
- <name>DuplicateImports</name>
- <ruleset>Import Statement Rules</ruleset>
- </rule>
- <rule>
- <name>DontImportJavaLang</name>
- <ruleset>Import Statement Rules</ruleset>
- </rule>
- <rule>
- <name>UnusedImports</name>
- <ruleset>Type Resolution Rules</ruleset>
- </rule>
- <rule>
- <name>ImportFromSamePackage</name>
- <ruleset>Import Statement Rules</ruleset>
- </rule>
- <rule>
- <name>TooManyStaticImports</name>
- <ruleset>Import Statement Rules</ruleset>
- </rule>
- <rule>
- <name>JUnitStaticSuite</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>JUnitSpelling</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>JUnitAssertionsShouldIncludeMessage</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>JUnitTestsShouldIncludeAssert</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>TestClassWithoutTestCases</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryBooleanAssertion</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>UseAssertEqualsInsteadOfAssertTrue</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>UseAssertSameInsteadOfAssertTrue</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>UseAssertNullInsteadOfAssertTrue</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>SimplifyBooleanAssertion</name>
- <ruleset>JUnit Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryConstructor</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>NullAssignment</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>UnusedModifier</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>AssignmentInOperand</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>AtLeastOneConstructor</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>DontImportSun</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>SuspiciousOctalEscape</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>CallSuperInConstructor</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>UnnecessaryParentheses</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>DefaultPackage</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>BooleanInversion</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>DataflowAnomalyAnalysis</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidFinalLocalVariable</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidUsingShortType</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidUsingVolatile</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidUsingNativeCode</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidAccessibilityAlteration</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>DoNotCallGarbageCollectionExplicitly</name>
- <ruleset>Controversial Rules</ruleset>
- </rule>
- <rule>
- <name>MethodNamingConventions</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>ClassNamingConventions</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>AbstractNaming</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidDollarSigns</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>MethodWithSameNameAsEnclosingClass</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>SuspiciousHashcodeMethodName</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>SuspiciousConstantFieldName</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>SuspiciousEqualsMethodName</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidFieldNameMatchingTypeName</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidFieldNameMatchingMethodName</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>NoPackage</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>PackageCase</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>MisleadingVariableName</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>BooleanGetMethodName</name>
- <ruleset>Naming Rules</ruleset>
- </rule>
- <rule>
- <name>NPathComplexity</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>ExcessiveMethodLength</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>ExcessiveParameterList</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>ExcessiveClassLength</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>CyclomaticComplexity</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>ExcessivePublicCount</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>TooManyFields</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>NcssMethodCount</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>NcssTypeCount</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>NcssConstructorCount</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>TooManyMethods</name>
- <ruleset>Code Size Rules</ruleset>
- </rule>
- <rule>
- <name>EmptyFinalizer</name>
- <ruleset>Finalizer Rules</ruleset>
- </rule>
- <rule>
- <name>FinalizeOnlyCallsSuperFinalize</name>
- <ruleset>Finalizer Rules</ruleset>
- </rule>
- <rule>
- <name>FinalizeOverloaded</name>
- <ruleset>Finalizer Rules</ruleset>
- </rule>
- <rule>
- <name>FinalizeDoesNotCallSuperFinalize</name>
- <ruleset>Finalizer Rules</ruleset>
- </rule>
- <rule>
- <name>FinalizeShouldBeProtected</name>
- <ruleset>Finalizer Rules</ruleset>
- </rule>
- <rule>
- <name>AvoidCallingFinalize</name>
- <ruleset>Finalizer Rules</ruleset>
- </rule>
- <rule>
- <name>UseCorrectExceptionLogging</name>
- <ruleset>Jakarta Commons Logging Rules</ruleset>
- </rule>
- <rule>
- <name>ProperLogger</name>
- <ruleset>Jakarta Commons Logging Rules</ruleset>
- </rule>
- <rule>
- <name>MissingSerialVersionUID</name>
- <ruleset>JavaBean Rules</ruleset>
- </rule>
- <rule>
- <name>ProperCloneImplementation</name>
- <ruleset>Clone Implementation Rules</ruleset>
- </rule>
- <rule>
- <name>CloneThrowsCloneNotSupportedException</name>
- <ruleset>Clone Implementation Rules</ruleset>
- </rule>
- <rule>
- <name>CloneMethodMustImplementCloneable</name>
- <ruleset>Type Resolution Rules</ruleset>
- </rule>
- </rules>
- <includeDerivedFiles>false</includeDerivedFiles>
- <violationsAsErrors>true</violationsAsErrors>
-</pmd>
diff --git a/plugins/org.eclipse.osee.framework.access/.project b/plugins/org.eclipse.osee.framework.access/.project
deleted file mode 100644
index 6ce0380f73..0000000000
--- a/plugins/org.eclipse.osee.framework.access/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.osee.framework.access</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.osee.framework.access/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.access/META-INF/MANIFEST.MF
deleted file mode 100644
index c3f0bcadfa..0000000000
--- a/plugins/org.eclipse.osee.framework.access/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,51 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Osee Access
-Bundle-SymbolicName: org.eclipse.osee.framework.access;singleton:=true
-Bundle-ActivationPolicy: lazy
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: Eclipse Open System Engineering Environment
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: com.google.common.cache,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jdt.annotation,
- org.eclipse.osee.framework.core,
- org.eclipse.osee.framework.core.access,
- org.eclipse.osee.framework.core.data,
- org.eclipse.osee.framework.core.enums,
- org.eclipse.osee.framework.core.enums.token,
- org.eclipse.osee.framework.core.exception,
- org.eclipse.osee.framework.core.model,
- org.eclipse.osee.framework.core.model.access,
- org.eclipse.osee.framework.core.model.cache,
- org.eclipse.osee.framework.core.model.event,
- org.eclipse.osee.framework.core.model.type,
- org.eclipse.osee.framework.core.operation,
- org.eclipse.osee.framework.core.services,
- org.eclipse.osee.framework.core.util,
- org.eclipse.osee.framework.jdk.core.result,
- org.eclipse.osee.framework.jdk.core.type,
- org.eclipse.osee.framework.jdk.core.util,
- org.eclipse.osee.framework.lifecycle,
- org.eclipse.osee.framework.logging,
- org.eclipse.osee.framework.skynet.core,
- org.eclipse.osee.framework.skynet.core.access,
- org.eclipse.osee.framework.skynet.core.artifact,
- org.eclipse.osee.framework.skynet.core.artifact.search,
- org.eclipse.osee.framework.skynet.core.event,
- org.eclipse.osee.framework.skynet.core.event.filter,
- org.eclipse.osee.framework.skynet.core.event.listener,
- org.eclipse.osee.framework.skynet.core.event.model,
- org.eclipse.osee.framework.skynet.core.relation,
- org.eclipse.osee.framework.skynet.core.utility,
- org.eclipse.osee.jdbc,
- org.eclipse.osee.orcs.rest.client,
- org.eclipse.osee.orcs.rest.model,
- org.osgi.framework,
- org.osgi.service.event,
- org.osgi.util.tracker
-Eclipse-ExtensibleAPI: true
-Export-Package: org.eclipse.osee.framework.access,
- org.eclipse.osee.framework.access.internal.data
-Service-Component: OSGI-INF/*.xml
diff --git a/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.artifact.lock.topic.handler.xml b/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.artifact.lock.topic.handler.xml
deleted file mode 100644
index 84d1e2e6cf..0000000000
--- a/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.artifact.lock.topic.handler.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
-<implementation class="org.eclipse.osee.framework.access.internal.AccessArtifactTopicLockEventHandler"/>
-<service>
- <provide interface="org.osgi.service.event.EventHandler"/>
-</service>
- <property name="event.topics" value="framework/access/artifact/lock/modified" />
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.artifact.topic.handler.xml b/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.artifact.topic.handler.xml
deleted file mode 100644
index 17351d7417..0000000000
--- a/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.artifact.topic.handler.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
-<implementation class="org.eclipse.osee.framework.access.internal.AccessArtifactTopicEventHandler"/>
-<service>
- <provide interface="org.osgi.service.event.EventHandler"/>
-</service>
- <property name="event.topics" value="framework/access/artifact/modified" />
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.branch.topic.handler.xml b/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.branch.topic.handler.xml
deleted file mode 100644
index 04bb640f59..0000000000
--- a/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.branch.topic.handler.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
-<implementation class="org.eclipse.osee.framework.access.internal.AccessBranchTopicEventHandler"/>
-<service>
- <provide interface="org.osgi.service.event.EventHandler"/>
-</service>
- <property name="event.topics" value="framework/access/branch/modified" />
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.control.service.xml b/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.control.service.xml
deleted file mode 100644
index 0a63879dbb..0000000000
--- a/plugins/org.eclipse.osee.framework.access/OSGI-INF/access.control.service.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.framework.access.internal.AccessControlServiceProxy"/>
- <service>
- <provide interface="org.eclipse.osee.framework.core.access.IAccessControlService"/>
- </service>
- <reference bind="setJdbcService" cardinality="1..1" interface="org.eclipse.osee.jdbc.JdbcService" name="JdbcService" policy="static"/>
- <reference bind="setOrcsTokenService" cardinality="1..1" interface="org.eclipse.osee.framework.core.OrcsTokenService" name="OrcsTokenService" policy="static"/>
- <reference bind="setEventService" cardinality="1..1" interface="org.eclipse.osee.framework.skynet.core.event.OseeEventService" name="OseeEventService" policy="static"/>
- <reference bind="setLifecycleService" cardinality="1..1" interface="org.eclipse.osee.framework.lifecycle.ILifecycleService" name="ILifecycleService" policy="static"/>
- <reference bind="addAccessProvider" cardinality="1..n" interface="org.eclipse.osee.framework.access.IAccessProvider" name="IAccessProvider" policy="dynamic" unbind="removeAccessProvider"/>
- <reference cardinality="1..1" interface="org.eclipse.core.resources.IWorkspace" name="IWorkspace" policy="static"/>
- <reference bind="addArtifactCheck" cardinality="0..n" interface="org.eclipse.osee.framework.core.access.ArtifactCheck" name="ArtifactCheck" policy="dynamic"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.access/OSGI-INF/cm.access.provider.xml b/plugins/org.eclipse.osee.framework.access/OSGI-INF/cm.access.provider.xml
deleted file mode 100644
index 1e3ab29816..0000000000
--- a/plugins/org.eclipse.osee.framework.access/OSGI-INF/cm.access.provider.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.framework.access.internal.cm.CmAccessProviderProxy"/>
- <service>
- <provide interface="org.eclipse.osee.framework.access.IAccessProvider"/>
- </service>
- <reference bind="addCmAccessControl" cardinality="1..n" interface="org.eclipse.osee.framework.core.services.CmAccessControl"
- name="CmAccessControl" policy="dynamic" unbind="removeCmAccessControl"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.access/OSGI-INF/object.access.provider.xml b/plugins/org.eclipse.osee.framework.access/OSGI-INF/object.access.provider.xml
deleted file mode 100644
index 43d1d9e975..0000000000
--- a/plugins/org.eclipse.osee.framework.access/OSGI-INF/object.access.provider.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.framework.access.internal.ObjectAccessProviderProxy"/>
- <service>
- <provide interface="org.eclipse.osee.framework.access.IAccessProvider"/>
- </service>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.access/build.properties b/plugins/org.eclipse.osee.framework.access/build.properties
deleted file mode 100644
index 6210e849b5..0000000000
--- a/plugins/org.eclipse.osee.framework.access/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/
-source.. = src/
diff --git a/plugins/org.eclipse.osee.framework.access/pom.xml b/plugins/org.eclipse.osee.framework.access/pom.xml
deleted file mode 100644
index abbb34f3d6..0000000000
--- a/plugins/org.eclipse.osee.framework.access/pom.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.eclipse.osee</groupId>
- <artifactId>org.eclipse.osee.client.parent</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <relativePath>../../plugins/org.eclipse.osee.client.parent</relativePath>
- </parent>
-
- <artifactId>org.eclipse.osee.framework.access</artifactId>
- <packaging>eclipse-plugin</packaging>
- <name>OSEE Access (Incubation)</name>
-
-
-</project>
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/AccessControlData.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/AccessControlData.java
deleted file mode 100644
index e9c5673b6a..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/AccessControlData.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access;
-
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-
-/**
- * A data object in an access control list. Contains a subject (user artifact) and object (what the subject is trying to
- * access) and a permission level
- *
- * @author Jeff C. Phillips
- */
-public class AccessControlData implements Comparable<AccessControlData> {
-
- private boolean dirty = false;
- private boolean birth = false;
- private final Artifact subject;
- private final AccessObject object;
- private PermissionEnum permission;
- private PermissionEnum branchPermission = null;
- private PermissionEnum artifactTypePermission = null;
- private PermissionEnum artifactPermission = null;
-
- public AccessControlData(Artifact subject, AccessObject object, PermissionEnum permission, boolean birth) {
- this(subject, object, permission, birth, true);
- }
-
- public AccessControlData(Artifact subject, AccessObject object, PermissionEnum permission, boolean birth, boolean dirty) {
- super();
- this.subject = subject;
- this.permission = permission;
- this.dirty = dirty;
- this.birth = birth;
- this.object = object;
- }
-
- public Artifact getSubject() {
- return subject;
- }
-
- public void setPermission(PermissionEnum permission) {
-
- if (this.permission == permission) {
- return;
- }
-
- this.permission = permission;
- dirty = true;
- }
-
- public PermissionEnum getBranchPermission() {
- return branchPermission;
- }
-
- public PermissionEnum getArtifactPermission() {
- return artifactPermission;
- }
-
- public PermissionEnum getArtifactTypePermission() {
- return artifactTypePermission;
- }
-
- public PermissionEnum getPermission() {
- return permission;
- }
-
- public boolean isDirty() {
- return dirty;
- }
-
- public void setNotDirty() {
- this.dirty = false;
- }
-
- public AccessObject getObject() {
- return object;
- }
-
- /**
- * @return true if this is a new permission; false if update
- */
- public boolean isBirth() {
- return birth;
- }
-
- @Override
- public int compareTo(AccessControlData data) {
- return subject.getName().compareTo(data.subject.getName());
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof AccessControlData)) {
- return false;
- }
- return subject.getName().equals(((AccessControlData) obj).subject.getName());
- }
-
- @Override
- public int hashCode() {
- return subject.getName().hashCode();
- }
-
- public void setBranchPermission(PermissionEnum branchPermission) {
- this.branchPermission = branchPermission;
- }
-
- public void setArtifactTypePermission(PermissionEnum artifactTypePermission) {
- this.artifactTypePermission = artifactTypePermission;
- }
-
- public void setArtifactPermission(PermissionEnum artifactPermission) {
- this.artifactPermission = artifactPermission;
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/IAccessProvider.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/IAccessProvider.java
deleted file mode 100644
index a256457639..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/IAccessProvider.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.lifecycle.LifecycleHandler;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface IAccessProvider extends LifecycleHandler {
-
- void computeAccess(ArtifactToken userArtifact, Collection<?> objToCheck, AccessData accessData);
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessArtifactTopicEventHandler.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessArtifactTopicEventHandler.java
deleted file mode 100644
index 88aa56591a..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessArtifactTopicEventHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2015 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal;
-
-import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlManager;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
-
-/**
- * Handler for {@link AccessTopicEvent.ACCESS_ARTIFACT_MODIFIED}
- *
- * @author Donald G. Dunne
- */
-public class AccessArtifactTopicEventHandler implements EventHandler {
-
- @Override
- public void handleEvent(Event event) {
- try {
- AccessControlManager.clearCaches();
- } catch (Exception ex) {
- OseeLog.log(AccessControlManager.class, Level.SEVERE, ex);
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessArtifactTopicLockEventHandler.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessArtifactTopicLockEventHandler.java
deleted file mode 100644
index e3fbae6400..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessArtifactTopicLockEventHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2015 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal;
-
-import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlManager;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
-
-/**
- * Handler for {@link AccessTopicEvent.ACCESS_ARTIFACT_LOCK_MODIFIED}
- *
- * @author Donald G. Dunne
- */
-public class AccessArtifactTopicLockEventHandler implements EventHandler {
-
- @Override
- public void handleEvent(Event event) {
- try {
- AccessControlManager.clearCaches();
- } catch (Exception ex) {
- OseeLog.log(AccessControlManager.class, Level.SEVERE, ex);
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessBranchTopicEventHandler.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessBranchTopicEventHandler.java
deleted file mode 100644
index 395e6ba8d1..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessBranchTopicEventHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2015 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal;
-
-import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlManager;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
-import org.osgi.service.event.Event;
-import org.osgi.service.event.EventHandler;
-
-/**
- * Handler for {@link AccessTopicEvent.ACCESS_BRANCH_MODIFIED}
- *
- * @author Donald G. Dunne
- */
-public class AccessBranchTopicEventHandler implements EventHandler {
-
- @Override
- public void handleEvent(Event event) {
- try {
- AccessControlManager.clearCaches();
- } catch (Exception ex) {
- OseeLog.log(AccessControlManager.class, Level.SEVERE, ex);
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlCacheHandler.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlCacheHandler.java
deleted file mode 100644
index 8cac5a394a..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlCacheHandler.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2011 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal;
-
-import java.util.List;
-import org.eclipse.osee.framework.access.AccessControlData;
-import org.eclipse.osee.framework.access.AccessControlServiceImpl;
-import org.eclipse.osee.framework.access.AccessObject;
-import org.eclipse.osee.framework.access.internal.data.BranchAccessObject;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.BranchToken;
-
-/**
- * @author Jeff C. Phillips
- */
-public class AccessControlCacheHandler {
-
- public void updateAccessListForBranchObject(AccessControlServiceImpl service, BranchId branch) {
- BranchAccessObject branchAccessObject =
- BranchAccessObject.getBranchAccessObject(BranchToken.create(branch, "unknown"));
- if (branchAccessObject != null) {
- updateAccessList(service, branchAccessObject);
- }
- }
-
- public void updateAccessList(AccessControlServiceImpl service, AccessObject accessObject) {
- List<AccessControlData> acl = service.generateAccessControlList(accessObject);
- for (AccessControlData accessControlData : acl) {
- service.removeAccessControlDataIf(false, accessControlData);
- }
- }
-
- public void reloadCache(AccessControlServiceImpl service) {
- service.reloadCache();
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlHelper.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlHelper.java
deleted file mode 100644
index ce70955a97..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessControlHelper.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal;
-
-import org.eclipse.osee.framework.access.AccessControlServiceImpl;
-import org.eclipse.osee.framework.core.access.IAccessControlService;
-import org.eclipse.osee.framework.core.util.OsgiUtil;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class AccessControlHelper {
-
- public static final String PLUGIN_ID = "org.eclipse.osee.framework.access";
-
- private AccessControlHelper() {
- // Utility class
- }
-
- @Deprecated
- public static AccessControlServiceImpl getAccessControlService() {
- IAccessControlService service = OsgiUtil.getService(AccessControlHelper.class, IAccessControlService.class);
- AccessControlServiceImpl toReturn = null;
- if (service instanceof AccessControlServiceProxy) {
- toReturn = ((AccessControlServiceProxy) service).getProxiedObject();
- }
- return toReturn;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java
deleted file mode 100644
index 8927dc6a1c..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessEventListener.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal;
-
-import java.util.List;
-import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlServiceImpl;
-import org.eclipse.osee.framework.access.internal.data.ArtifactAccessObject;
-import org.eclipse.osee.framework.core.data.BranchToken;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactCache;
-import org.eclipse.osee.framework.skynet.core.event.filter.IEventFilter;
-import org.eclipse.osee.framework.skynet.core.event.listener.IArtifactEventListener;
-import org.eclipse.osee.framework.skynet.core.event.listener.IBranchEventListener;
-import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.BranchEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.BranchEventType;
-import org.eclipse.osee.framework.skynet.core.event.model.EventBasicGuidArtifact;
-import org.eclipse.osee.framework.skynet.core.event.model.EventModType;
-import org.eclipse.osee.framework.skynet.core.event.model.Sender;
-
-/**
- * @author Donald G. Dunne
- */
-public final class AccessEventListener implements IBranchEventListener, IArtifactEventListener {
-
- private final AccessControlServiceImpl service;
- private final AccessControlCacheHandler accessControlCacheHandler;
-
- public AccessEventListener(AccessControlServiceImpl service, AccessControlCacheHandler accessControlCacheHandler) {
- this.accessControlCacheHandler = accessControlCacheHandler;
- this.service = service;
- }
-
- @Override
- public void handleArtifactEvent(ArtifactEvent artifactEvent, Sender sender) {
- for (EventBasicGuidArtifact guidArt : artifactEvent.getArtifacts()) {
- if (guidArt.is(EventModType.Added) && guidArt.isTypeEqual(CoreArtifactTypes.User)) {
- try {
- accessControlCacheHandler.reloadCache(service);
- } catch (OseeCoreException ex) {
- OseeLog.log(AccessControlHelper.class, Level.SEVERE, ex);
- }
- }
- if (guidArt.is(EventModType.Purged)) {
- try {
- Artifact cacheArt = ArtifactCache.getActive(guidArt);
- if (cacheArt != null) {
- ArtifactAccessObject artifactAccessObject = ArtifactAccessObject.getArtifactAccessObject(cacheArt);
- accessControlCacheHandler.updateAccessList(service, artifactAccessObject);
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(AccessControlHelper.class, Level.SEVERE, ex);
- }
-
- }
- }
- }
-
- @Override
- public List<? extends IEventFilter> getEventFilters() {
- return null;
- }
-
- @Override
- public void handleBranchEvent(Sender sender, final BranchEvent branchEvent) {
- try {
- if (branchEvent.getEventType() == BranchEventType.Deleted) {
- accessControlCacheHandler.updateAccessListForBranchObject(service,
- BranchToken.create(branchEvent.getSourceBranch(), "unknown"));
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(AccessControlHelper.class, Level.SEVERE, ex);
- }
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessProviderVisitor.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessProviderVisitor.java
deleted file mode 100644
index 52f2e32917..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/AccessProviderVisitor.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal;
-
-import java.util.Collection;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osee.framework.access.IAccessProvider;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.lifecycle.AbstractLifecycleVisitor;
-
-/**
- * @author Jeff C. Phillips
- */
-public class AccessProviderVisitor extends AbstractLifecycleVisitor<IAccessProvider> {
-
- public static final Type<IAccessProvider> TYPE = new Type<>();
-
- private final ArtifactToken userArtifact;
- private final Collection<?> artsToCheck;
- private final AccessData mainAccessData;
-
- public AccessProviderVisitor(ArtifactToken userArtifact, Collection<?> artsToCheck, AccessData mainAccessData) {
- super();
- this.userArtifact = userArtifact;
- this.artsToCheck = artsToCheck;
- this.mainAccessData = mainAccessData;
- }
-
- @Override
- public Type<IAccessProvider> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- protected IStatus dispatch(IProgressMonitor monitor, IAccessProvider accessProvider, String sourceId) {
- IStatus status = Status.OK_STATUS;
- try {
- accessProvider.computeAccess(userArtifact, artsToCheck, mainAccessData);
- } catch (OseeCoreException ex) {
- status =
- new Status(IStatus.ERROR, AccessControlHelper.PLUGIN_ID, "Error during access control computation", ex);
- }
- return status;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/ObjectAccessProviderProxy.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/ObjectAccessProviderProxy.java
deleted file mode 100644
index e314f02ae8..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/ObjectAccessProviderProxy.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal;
-
-import java.util.Collection;
-import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlServiceImpl;
-import org.eclipse.osee.framework.access.IAccessProvider;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.IAccessControlService;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
-import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class ObjectAccessProviderProxy implements IAccessProvider {
-
- private BundleContext bundleContext;
-
- public void start(BundleContext bundleContext) {
- this.bundleContext = bundleContext;
- }
-
- public void stop() {
- bundleContext = null;
- }
-
- private AccessControlServiceImpl getAccessService() {
- AccessControlServiceImpl toReturn = null;
-
- ServiceReference<IAccessControlService> reference =
- bundleContext.getServiceReference(IAccessControlService.class);
- IAccessControlService service = bundleContext.getService(reference);
- if (service instanceof AccessControlServiceProxy) {
- AccessControlServiceProxy proxy = (AccessControlServiceProxy) service;
- toReturn = proxy.getProxiedObject();
- } else {
- OseeLog.log(AccessControlHelper.class, Level.SEVERE, "Error initializing ObjectAccessProvider");
- }
- return toReturn;
- }
-
- @Override
- public void computeAccess(ArtifactToken userArtifact, Collection<?> objToCheck, AccessData accessData) {
- for (Object object : objToCheck) {
- if (object instanceof Artifact) {
- setArtifactAccessData(userArtifact, (Artifact) object, accessData);
- } else if (object instanceof BranchId) {
- setBranchAccessData(userArtifact, (BranchId) object, accessData);
- } else if (object instanceof RelationLink) {
- RelationLink relation = (RelationLink) object;
- Artifact artifactA = relation.getArtifactA();
- Artifact artifactB = relation.getArtifactB();
- setArtifactAccessData(userArtifact, artifactA, accessData);
- setArtifactAccessData(userArtifact, artifactB, accessData);
- }
- }
- }
-
- private void setArtifactAccessData(ArtifactToken userArtifact, Artifact artifact, AccessData accessData) {
- setBranchAccessData(userArtifact, artifact.getBranch(), accessData);
- String reason = "Legacy Artifact Permission";
- PermissionEnum userPermission = getAccessService().getArtifactPermission(userArtifact, artifact);
-
- if (userPermission == null) {
- reason = "User Permission was null in setArtifactAccessData - artifact is read only";
- userPermission = PermissionEnum.READ;
- } else if (artifact.isHistorical()) {
- userPermission = PermissionEnum.READ;
- reason = "User Permission set to Read - artifact is historical - artifact is read only";
- } else if (!BranchManager.isEditable(artifact.getBranch())) {
- userPermission = PermissionEnum.READ;
- reason = "User Permission set to Read - artifact's branch is not editable - artifact is read only";
- }
- //artifact.isDeleted()
- accessData.add(artifact,
- new AccessDetail<ArtifactToken>(artifact, userPermission, Scope.createLegacyScope(), reason));
- }
-
- private void setBranchAccessData(ArtifactToken userArtifact, BranchId branch, AccessData accessData) {
- String reason = "Legacy Branch Permission";
- PermissionEnum userPermission = getAccessService().getBranchPermission(userArtifact, branch);
- accessData.add(branch, new AccessDetail<>(branch, userPermission, Scope.createLegacyScope(), reason));
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessControlProviderImpl.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessControlProviderImpl.java
deleted file mode 100644
index 80f233f39f..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessControlProviderImpl.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal.cm;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-import org.eclipse.osee.framework.core.services.CmAccessControlProvider;
-import org.eclipse.osee.framework.core.services.HasCmAccessControl;
-import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
-
-/**
- * @author Roberto E. Escobar
- */
-public class CmAccessControlProviderImpl implements CmAccessControlProvider {
-
- private final Collection<CmAccessControl> cmServices;
- private CmAccessControl defaultAccessControl;
-
- public CmAccessControlProviderImpl(Collection<CmAccessControl> cmServices) {
- this.cmServices = cmServices;
- }
-
- public CmAccessControl getDefaultAccessControl() {
- return defaultAccessControl;
- }
-
- @Override
- public void setDefaultAccessControl(CmAccessControl defaultAccessControl) {
- this.defaultAccessControl = defaultAccessControl;
- }
-
- @Override
- public CmAccessControl getService(ArtifactToken userArtifact, Object object) {
- if (object instanceof HasCmAccessControl) {
- HasCmAccessControl cmContainer = (HasCmAccessControl) object;
- return cmContainer.getAccessControl();
- } else {
- CmAccessControl cmToReturn;
- Collection<CmAccessControl> applicableCms = new ArrayList<>();
- for (CmAccessControl cmService : cmServices) {
- if (cmService.isApplicable(userArtifact, object)) {
- applicableCms.add(cmService);
- }
- }
- if (applicableCms.isEmpty()) {
- cmToReturn = getDefaultAccessControl();
- } else if (applicableCms.size() == 1) {
- cmToReturn = applicableCms.iterator().next();
- } else {
- throw new OseeStateException("Multiple Configuration Management Systems managing: [%s] cms:%s", object,
- applicableCms);
- }
- return cmToReturn;
- }
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProvider.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProvider.java
deleted file mode 100644
index 1faef69648..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProvider.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal.cm;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Map.Entry;
-import org.eclipse.osee.framework.access.IAccessProvider;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.model.access.AccessModel;
-import org.eclipse.osee.framework.core.model.access.HasAccessModel;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-import org.eclipse.osee.framework.core.services.CmAccessControlProvider;
-import org.eclipse.osee.framework.jdk.core.type.DoubleKeyHashMap;
-
-/**
- * @author Roberto E. Escobar
- */
-public class CmAccessProvider implements IAccessProvider {
-
- private final CmAccessControlProvider provider;
-
- public CmAccessProvider(CmAccessControlProvider provider) {
- this.provider = provider;
- }
-
- @Override
- public void computeAccess(ArtifactToken userArtifact, Collection<?> objToChecks, AccessData accessData) {
- DoubleKeyHashMap<CmAccessControl, AccessContextToken, Collection<Object>> cmToCheckObjects =
- new DoubleKeyHashMap<>();
-
- for (Object objectToCheck : objToChecks) {
- CmAccessControl management = provider.getService(userArtifact, objectToCheck);
- if (management instanceof HasAccessModel) {
- Collection<? extends AccessContextToken> contextIds = management.getContextId(userArtifact, objectToCheck);
- if (contextIds != null) {
- for (AccessContextToken contextId : contextIds) {
- Collection<Object> entries = cmToCheckObjects.get(management, contextId);
- if (entries == null) {
- entries = new HashSet<>();
- cmToCheckObjects.put(management, contextId, entries);
- }
- entries.add(objectToCheck);
- }
- }
- }
- }
-
- for (CmAccessControl cm : cmToCheckObjects.getKeySetOne()) {
- AccessModel accessModel = ((HasAccessModel) cm).getAccessModel();
- Map<AccessContextToken, Collection<Object>> sub = cmToCheckObjects.getSubHash(cm);
- for (Entry<AccessContextToken, Collection<Object>> entry : sub.entrySet()) {
- AccessContextToken contextId = entry.getKey();
- Collection<Object> objectsToCheck = entry.getValue();
-
- accessModel.computeAccess(contextId, objectsToCheck, accessData);
- }
- }
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProviderProxy.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProviderProxy.java
deleted file mode 100644
index 0b7e57e2bc..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/cm/CmAccessProviderProxy.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal.cm;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.CopyOnWriteArraySet;
-import java.util.logging.Level;
-import org.eclipse.osee.framework.access.IAccessProvider;
-import org.eclipse.osee.framework.access.internal.AccessControlHelper;
-import org.eclipse.osee.framework.access.internal.AccessControlServiceProxy;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.access.IAccessControlService;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-import org.eclipse.osee.framework.core.services.CmAccessControlProvider;
-import org.eclipse.osee.framework.jdk.core.util.Conditions;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class CmAccessProviderProxy implements IAccessProvider {
-
- private final List<ServiceReference<CmAccessControl>> pending = new CopyOnWriteArrayList<>();
-
- private final Collection<CmAccessControl> cmServices = new CopyOnWriteArraySet<>();
-
- private IAccessProvider accessProvider;
- private CmAccessControlProvider cmProvider;
- private BundleContext bundleContext;
-
- private volatile boolean requiresReload = true;
-
- public void addCmAccessControl(ServiceReference<CmAccessControl> reference) {
- if (isReady()) {
- register(bundleContext, reference);
- } else {
- pending.add(reference);
- }
- }
-
- public void removeCmAccessControl(ServiceReference<CmAccessControl> reference) {
- if (isReady()) {
- unregister(bundleContext, reference);
- } else {
- pending.remove(reference);
- }
- }
-
- private boolean isReady() {
- return bundleContext != null && cmProvider != null;
- }
-
- private void register(BundleContext bundleContext, ServiceReference<CmAccessControl> reference) {
- CmAccessControl cmAccessControl = bundleContext.getService(reference);
- if (isDefault(reference)) {
- cmProvider.setDefaultAccessControl(cmAccessControl);
- } else {
- cmServices.add(cmAccessControl);
- }
- requiresReload = true;
- }
-
- private void unregister(BundleContext bundleContext, ServiceReference<CmAccessControl> reference) {
- CmAccessControl cmAccessControl = bundleContext.getService(reference);
- if (isDefault(reference)) {
- cmProvider.setDefaultAccessControl(null);
- } else {
- cmServices.remove(cmAccessControl);
- }
- requiresReload = true;
- }
-
- private boolean isDefault(ServiceReference<CmAccessControl> reference) {
- boolean toReturn = false;
- String value = String.valueOf(reference.getProperty("default"));
- if (Strings.isValid(value)) {
- toReturn = Boolean.parseBoolean(value);
- }
- return toReturn;
- }
-
- public void start(BundleContext context) {
- this.bundleContext = context;
- requiresReload = true;
-
- cmProvider = new CmAccessControlProviderImpl(cmServices);
- accessProvider = new CmAccessProvider(cmProvider);
-
- for (ServiceReference<CmAccessControl> reference : pending) {
- register(bundleContext, reference);
- }
- pending.clear();
- }
-
- public void stop() {
- accessProvider = null;
- cmProvider.setDefaultAccessControl(null);
- cmServices.clear();
- bundleContext = null;
- }
-
- private AccessControlServiceProxy getAccessService() {
- AccessControlServiceProxy toReturn = null;
- ServiceReference<IAccessControlService> reference =
- bundleContext.getServiceReference(IAccessControlService.class);
- IAccessControlService service = bundleContext.getService(reference);
- if (service instanceof AccessControlServiceProxy) {
- toReturn = (AccessControlServiceProxy) service;
- } else {
- OseeLog.log(AccessControlHelper.class, Level.SEVERE, "Error initializing ObjectAccessProvider");
- }
- return toReturn;
- }
-
- private void reloadCache() {
- AccessControlServiceProxy service = getAccessService();
- if (service != null) {
- service.reloadCache();
- }
- }
-
- private IAccessProvider getAccessProvider() {
- return accessProvider;
- }
-
- private void checkInitialized() {
- Conditions.checkNotNull(getAccessProvider(), "object access provider",
- "Object Access Provider not properly initialized");
- if (requiresReload) {
- requiresReload = false;
- reloadCache();
- }
- }
-
- @Override
- public void computeAccess(ArtifactToken userArtifact, Collection<?> objToCheck, AccessData accessData) {
- checkInitialized();
- getAccessProvider().computeAccess(userArtifact, objToCheck, accessData);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/BranchAccessObject.java b/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/BranchAccessObject.java
deleted file mode 100644
index e255f5d581..0000000000
--- a/plugins/org.eclipse.osee.framework.access/src/org/eclipse/osee/framework/access/internal/data/BranchAccessObject.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.access.internal.data;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.osee.framework.access.AccessObject;
-import org.eclipse.osee.framework.core.data.ArtifactId;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.BranchToken;
-import org.eclipse.osee.framework.skynet.core.utility.ConnectionHandler;
-
-/**
- * @author Jeff C. Phillips
- */
-public class BranchAccessObject extends AccessObject {
- private final BranchToken branch;
- private static final Map<BranchId, BranchAccessObject> cache = new HashMap<>();
-
- @Override
- public int hashCode() {
- int result = 17;
- result = 31 * result + branch.hashCode();
- return result;
- }
-
- public BranchAccessObject(BranchToken branch) {
- this.branch = branch;
- }
-
- @Override
- public BranchToken getBranch() {
- return branch;
- }
-
- @Override
- public void removeFromCache() {
- cache.remove(branch);
- }
-
- @Override
- public void removeFromDatabase(ArtifactId subjectId) {
- final String DELETE_BRANCH_ACL = "DELETE FROM OSEE_BRANCH_ACL WHERE privilege_entity_id = ? AND branch_id =?";
- ConnectionHandler.runPreparedUpdate(DELETE_BRANCH_ACL, subjectId, branch);
- }
-
- public static BranchAccessObject getBranchAccessObject(BranchToken branch) {
- BranchAccessObject branchAccessObject;
- if (cache.containsKey(branch)) {
- branchAccessObject = cache.get(branch);
- } else {
- branchAccessObject = new BranchAccessObject(branch);
- cache.put(branch, branchAccessObject);
- }
- return branchAccessObject;
- }
-
- public static BranchAccessObject getBranchAccessObjectFromCache(BranchId branch) {
- return cache.get(branch);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof BranchAccessObject)) {
- return false;
- }
- return branch.equals(((BranchAccessObject) obj).branch);
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.client/src/org/eclipse/osee/framework/core/client/OseeClientProperties.java b/plugins/org.eclipse.osee.framework.core.client/src/org/eclipse/osee/framework/core/client/OseeClientProperties.java
index 9e54c6e908..1c5daf6328 100644
--- a/plugins/org.eclipse.osee.framework.core.client/src/org/eclipse/osee/framework/core/client/OseeClientProperties.java
+++ b/plugins/org.eclipse.osee.framework.core.client/src/org/eclipse/osee/framework/core/client/OseeClientProperties.java
@@ -31,18 +31,8 @@ public class OseeClientProperties extends OseeProperties {
private static final String OSEE_CHOICE_ON_DB_INIT = "osee.choice.on.db.init";
- private static final String OSEE_IS_IN_DB_INIT = "osee.is.in.db.init";
-
private static final String OSEE_COMMIT_SKIP_CHECKS_AND_EVENTS = "osee.commit.skipChecksAndEvents";
- public static boolean isInDbInit() {
- return Boolean.valueOf(getProperty(OSEE_IS_IN_DB_INIT));
- }
-
- public static void setInDbInit(boolean value) {
- System.setProperty(OSEE_IS_IN_DB_INIT, Boolean.toString(value));
- }
-
public static boolean isSkipCommitChecksAndEvents() {
return Boolean.valueOf(getProperty(OSEE_COMMIT_SKIP_CHECKS_AND_EVENTS, "false"));
}
@@ -110,14 +100,6 @@ public class OseeClientProperties extends OseeProperties {
return getProperty(OseeClient.OSEE_APPLICATION_SERVER, "http://localhost:8089");
}
- private static String getProperty(String name) {
- return getProperty(name, "");
- }
-
- private static String getProperty(String name, String defaultValue) {
- return System.getProperty(name, defaultValue);
- }
-
/**
* A string representation of all the property setting specified by this class
*
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/AllDslIntegrationTestSuite.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/AllDslIntegrationTestSuite.java
index 369da1146c..25b12d4f24 100644
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/AllDslIntegrationTestSuite.java
+++ b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/AllDslIntegrationTestSuite.java
@@ -25,7 +25,6 @@ import org.junit.runners.Suite;
@Suite.SuiteClasses({ //
InternalTestSuite.class, //
DslUtilTestSuite.class, //
- OseeDslAccessModelTest.class, //
})
public class AllDslIntegrationTestSuite {
// Test Suite
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/OseeDslAccessModelTest.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/OseeDslAccessModelTest.java
deleted file mode 100644
index 08e8adc0c0..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/OseeDslAccessModelTest.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockDslProvider;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockModel;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessContext;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.OseeDsl;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.model.access.AccessModel;
-import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * Test Case for {@link OseeDslAccessModel}
- *
- * @author Roberto E. Escobar
- */
-public class OseeDslAccessModelTest {
-
- private static AccessContextToken accessContextId;
-
- @BeforeClass
- public static void setUp() {
- accessContextId = AccessContextToken.valueOf(Lib.generateArtifactIdAsInt(), "Context 1");
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessNullAgumentCheck1() {
- AccessModel accessModel = new OseeDslAccessModel(null, null);
- accessModel.computeAccess(null, new ArrayList<>(), new AccessData());
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessNullAgumentCheck2() {
- AccessModel accessModel = new OseeDslAccessModel(null, null);
- accessModel.computeAccess(accessContextId, null, new AccessData());
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessNullAgumentCheck3() {
- AccessModel accessModel = new OseeDslAccessModel(null, null);
- accessModel.computeAccess(accessContextId, Collections.emptyList(), null);
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessNullDsl() {
- MockDslProvider dslProvider = new MockDslProvider(null);
- AccessModel accessModel = new OseeDslAccessModel(null, dslProvider);
- accessModel.computeAccess(accessContextId, Collections.emptyList(), new AccessData());
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessNullAccessContext() {
- MockAccessModelInterpreter interpreter = new MockAccessModelInterpreter(null);
- MockDslProvider dslProvider = new MockDslProvider(MockModel.createDsl());
- AccessModel accessModel = new OseeDslAccessModel(interpreter, dslProvider);
- accessModel.computeAccess(accessContextId, Collections.emptyList(), new AccessData());
- }
-
- @Test
- public void testComputeAccessTestCollection() {
-
- final Object checkedObject = new Object();
-
- Scope detail1Scope = new Scope().add("fail");
- Scope detail2Scope = new Scope().add("fail");
- final AccessDetail<?> detail1 = new AccessDetail<>(checkedObject, PermissionEnum.READ, detail1Scope, "detail 1");
- final AccessDetail<?> detail2 = new AccessDetail<>(checkedObject, PermissionEnum.WRITE, detail2Scope, "detail 2");
-
- final AccessData accessData = new AccessData();
-
- final AccessContext accessContext =
- MockModel.createAccessContext(Lib.generateArtifactIdAsInt(), "Access Context");
-
- OseeDsl oseeDsl = MockModel.createDsl();
- oseeDsl.getAccessDeclarations().add(accessContext);
-
- MockDslProvider dslProvider = new MockDslProvider(oseeDsl);
- MockAccessModelInterpreter interpreter = new MockAccessModelInterpreter(accessContext) {
-
- @Override
- public void computeAccessDetails(AccessDetailCollector collector, AccessContext context, Object objectToCheck) {
- super.computeAccessDetails(collector, accessContext, objectToCheck);
- Assert.assertEquals(accessContext, context);
- Assert.assertEquals(checkedObject, objectToCheck);
- Assert.assertNotNull(collector);
-
- Assert.assertTrue(accessData.isEmpty());
-
- collector.collect(detail1);
- collector.collect(detail2);
- }
-
- };
-
- AccessModel accessModel = new OseeDslAccessModel(interpreter, dslProvider);
- accessModel.computeAccess(accessContextId, Collections.singleton(checkedObject), accessData);
-
- Assert.assertEquals(accessContextId, interpreter.getContextId());
- Collection<AccessContext> context = interpreter.getContexts();
- Assert.assertEquals(1, context.size());
- Assert.assertEquals(accessContext, context.iterator().next());
- Assert.assertTrue(interpreter.wasComputeCalled());
-
- Assert.assertFalse(accessData.isEmpty());
- Collection<AccessDetail<?>> details = accessData.getAccess(checkedObject);
- Assert.assertEquals(1, details.size());
-
- AccessDetail<?> actualDetail = details.iterator().next();
- Assert.assertEquals(PermissionEnum.READ, actualDetail.getPermission());
- Assert.assertEquals("detail 1", actualDetail.getReason());
- Assert.assertEquals(checkedObject, actualDetail.getAccessObject());
- Assert.assertEquals(detail1, actualDetail);
- }
-
- private static class MockAccessModelInterpreter implements AccessModelInterpreter {
-
- private final AccessContext contextToReturn;
- private Collection<AccessContext> contexts;
- private AccessContextToken contextId;
- private boolean wasComputeCalled;
-
- public MockAccessModelInterpreter(AccessContext contextToReturn) {
- this.contextToReturn = contextToReturn;
- }
-
- public Collection<AccessContext> getContexts() {
- return contexts;
- }
-
- public AccessContextToken getContextId() {
- return contextId;
- }
-
- @Override
- public AccessContext getContext(Collection<AccessContext> contexts, AccessContextToken contextId) {
- this.contextId = contextId;
- this.contexts = contexts;
- return contextToReturn;
- }
-
- @Override
- public void computeAccessDetails(AccessDetailCollector collector, AccessContext context, Object objectToCheck) {
- //
- wasComputeCalled = true;
- }
-
- public boolean wasComputeCalled() {
- return wasComputeCalled;
- }
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterImplTest.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterImplTest.java
deleted file mode 100644
index 5be1b0e2ae..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterImplTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.integration.AccessDataCollector;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.CheckAccessDetailCollectorNotCalled;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockArtifactDataProvider;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockModel;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockRestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessContext;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Test Case for {@link AccessModelInterpreterImpl}
- *
- * @author Roberto E. Escobar
- */
-public class AccessModelInterpreterImplTest {
- private AccessContextToken contextId1;
- private AccessContextToken contextId2;
-
- private AccessContext expectedContext1;
- private AccessContext expectedContext2;
-
- private AccessModelInterpreterImpl interpreterNoArtData;
-
- @Before
- public void setup() {
- interpreterNoArtData = new AccessModelInterpreterImpl(null, null);
-
- contextId1 = AccessContextToken.valueOf(Lib.generateArtifactIdAsInt(), "Context 1");
- contextId2 = AccessContextToken.valueOf(Lib.generateArtifactIdAsInt(), "Context 2");
-
- expectedContext1 = MockModel.createAccessContext(contextId1.getId(), "c1");
- expectedContext2 = MockModel.createAccessContext(contextId2.getId(), "c2");
- }
-
- @Test
- public void testGetContext() {
-
- Collection<AccessContext> contexts = Arrays.asList(expectedContext1, expectedContext2);
- AccessContext actualContext1 = interpreterNoArtData.getContext(contexts, contextId1);
- Assert.assertEquals(expectedContext1, actualContext1);
-
- AccessContext actualContext2 = interpreterNoArtData.getContext(contexts, contextId2);
- Assert.assertEquals(expectedContext2, actualContext2);
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testGetContextNullCheck1() {
- interpreterNoArtData.getContext(null, contextId1);
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testGetContextNullCheck2() {
- interpreterNoArtData.getContext(Collections.<AccessContext> emptyList(), null);
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessNullCheck1() {
- interpreterNoArtData.computeAccessDetails(null, expectedContext1, new Object());
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessNullCheck2() {
- interpreterNoArtData.computeAccessDetails(new AccessDataCollector(), null, new Object());
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessNullCheck3() {
- interpreterNoArtData.computeAccessDetails(new AccessDataCollector(), expectedContext1, null);
- }
-
- @Test
- public void testComputeAccessNotApplicableObject() {
- final Object objectToCheck = new Object();
- MockArtifactDataProvider provider = new MockArtifactDataProvider(false, objectToCheck, null);
- AccessModelInterpreterImpl interpreter = new AccessModelInterpreterImpl(provider, null);
- interpreter.computeAccessDetails(new CheckAccessDetailCollectorNotCalled(), expectedContext1, objectToCheck);
- Assert.assertTrue("Provider isApplicableCalled failed", provider.wasIsApplicableCalled());
- Assert.assertFalse("Provider asCastedObjectCalled failed", provider.wasAsCastedObjectCalled());
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testComputeAccessCastedObjectNull() {
- final Object objectToCheck = new Object();
- MockArtifactDataProvider provider = new MockArtifactDataProvider(true, objectToCheck, null);
- AccessModelInterpreterImpl interpreter = new AccessModelInterpreterImpl(provider, null);
- try {
- interpreter.computeAccessDetails(new CheckAccessDetailCollectorNotCalled(), expectedContext1, objectToCheck);
- } finally {
- Assert.assertTrue("Provider isApplicableCalled failed", provider.wasIsApplicableCalled());
- Assert.assertTrue("Provider asCastedObjectCalled failed", provider.wasAsCastedObjectCalled());
- }
- }
-
- @Test
- public void testComputeAccessCheckRestriction() {
- AccessContext accessContext = MockModel.createAccessContext(contextId2.getId(), "c2");
-
- MockArtifactProxy artifactData = new MockArtifactProxy();
-
- ObjectRestriction objectRestriction = null;
- assertComputeDetails(accessContext, artifactData, objectRestriction, false);
- }
-
- private static void assertComputeDetails(AccessContext accessContext, MockArtifactProxy artifactData, ObjectRestriction objectRestriction, boolean expectedProcessCalled) {
- final Object objectToCheck = new Object();
- MockArtifactDataProvider provider = new MockArtifactDataProvider(true, objectToCheck, artifactData);
- AccessDetailCollector collector = new CheckAccessDetailCollectorNotCalled();
- MockRestrictionHandler restrictionHandler =
- new MockRestrictionHandler(objectRestriction, artifactData, collector);
- AccessModelInterpreterImpl interpreter = new AccessModelInterpreterImpl(provider, null, restrictionHandler);
- interpreter.computeAccessDetails(collector, accessContext, objectToCheck);
- Assert.assertTrue("Provider isApplicableCalled failed", provider.wasIsApplicableCalled());
- Assert.assertTrue("Provider asCastedObjectCalled failed", provider.wasAsCastedObjectCalled());
- Assert.assertEquals("Restriction process called check failed", expectedProcessCalled,
- restrictionHandler.wasProcessCalled());
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchInterpreterTest.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchInterpreterTest.java
deleted file mode 100644
index 34a71d1115..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchInterpreterTest.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
-import org.eclipse.osee.framework.core.data.BranchToken;
-import org.eclipse.osee.framework.core.data.RelationTypeToken;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.DslAsserts;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockModel;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.CompareOp;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.CompoundCondition;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.Condition;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.MatchField;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.SimpleCondition;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactMatcher;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XLogicOperator;
-import org.eclipse.osee.framework.jdk.core.util.GUID;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Test Case for {@link ArtifactMatchInterpreter}
- *
- * @author Roberto E. Escobar
- */
-public class ArtifactMatchInterpreterTest {
-
- private final ArtifactMatchInterpreter interpreter = new ArtifactMatchInterpreter();
- private static final BranchToken randomBranch = BranchToken.create("Random Branch");
-
- @Test
- public void testMatchNoConditions() {
- XArtifactMatcher matcher = MockModel.createXArtifactMatcherRef("TestArtifact");
- boolean actual = interpreter.matches(matcher, (ArtifactProxy) null);
- Assert.assertEquals(false, actual);
- }
-
- @Test
- public void testArtifactNameEq() {
- XArtifactMatcher matcher =
- MockModel.createMatcher("artifactMatcher \"Test\" where artifactName EQ \"Test Artifact\";");
-
- DslAsserts.assertEquals(matcher.getConditions().iterator().next(), MatchField.ARTIFACT_NAME, CompareOp.EQ,
- "Test Artifact");
-
- ArtifactProxy proxy = createProxy(GUID.create(), "test Artifact");
- boolean actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(false, actual);
-
- proxy = createProxy(GUID.create(), "Test Artifact");
- actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(true, actual);
- }
-
- @Test
- public void testArtifactNameLike() {
- XArtifactMatcher matcher =
- MockModel.createMatcher("artifactMatcher \"Test\" where artifactName LIKE \".*arti.*\";");
-
- DslAsserts.assertEquals(matcher.getConditions().iterator().next(), MatchField.ARTIFACT_NAME, CompareOp.LIKE,
- ".*arti.*");
-
- ArtifactProxy proxy = createProxy(GUID.create(), "9999 arti_121341");
- boolean actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(true, actual);
- }
-
- @Test
- public void testartifactIdEq() {
- String guid = GUID.create();
- XArtifactMatcher matcher =
- MockModel.createMatcher("artifactMatcher \"Test\" where artifactId EQ \"" + guid + "\";");
-
- DslAsserts.assertEquals(matcher.getConditions().iterator().next(), MatchField.ARTIFACT_ID, CompareOp.EQ, guid);
-
- ArtifactProxy proxy = createProxy(guid, "");
- boolean actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(true, actual);
- }
-
- @Test
- public void testartifactIdLike() {
- XArtifactMatcher matcher = MockModel.createMatcher("artifactMatcher \"Test\" where artifactId LIKE \"\\w+\";");
-
- DslAsserts.assertEquals(matcher.getConditions().iterator().next(), MatchField.ARTIFACT_ID, CompareOp.LIKE,
- "\\w+");
-
- ArtifactProxy proxy = createProxy("ABCDEFGHIJK123456789", "");
- boolean actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(true, actual);
- }
-
- @Test
- public void testArtifactBranchNameEq() {
- XArtifactMatcher matcher = MockModel.createMatcher("artifactMatcher \"Test\" where branchName EQ \"branch1\";");
-
- DslAsserts.assertEquals(matcher.getConditions().iterator().next(), MatchField.BRANCH_NAME, CompareOp.EQ,
- "branch1");
-
- ArtifactProxy proxy = createProxy(GUID.create(), "art1", randomBranch, "branch2");
- boolean actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(false, actual);
-
- proxy = createProxy(GUID.create(), "art1", randomBranch, "branch1");
- actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(true, actual);
- }
-
- @Test
- public void testArtifactBranchNameLike() {
- XArtifactMatcher matcher =
- MockModel.createMatcher("artifactMatcher \"Test\" where branchName LIKE \".*hello.*\";");
-
- DslAsserts.assertEquals(matcher.getConditions().iterator().next(), MatchField.BRANCH_NAME, CompareOp.LIKE,
- ".*hello.*");
-
- ArtifactProxy proxy = createProxy(GUID.create(), "art1", randomBranch, "this is the hello branch");
- boolean actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(true, actual);
- }
-
- @Test
- public void testArtifactBranchUuidLike() {
- XArtifactMatcher matcher = MockModel.createMatcher("artifactMatcher \"Test\" where branchUuid LIKE \"\\w+\";");
-
- DslAsserts.assertEquals(matcher.getConditions().iterator().next(), MatchField.BRANCH_UUID, CompareOp.LIKE,
- "\\w+");
-
- ArtifactProxy proxy = createProxy(GUID.create(), "art1", randomBranch, "");
- boolean actual = interpreter.matches(matcher, proxy);
- Assert.assertEquals(true, actual);
- }
-
- @Test
- public void testCompoundCondition1() {
- XArtifactMatcher andMatcher = MockModel.createMatcher(
- "artifactMatcher \"Test\" where artifactId EQ \"ABCDEFGHIJK123456789\" AND artifactName EQ \"myArtifact\";");
-
- Iterator<Condition> iterator = andMatcher.getConditions().iterator();
- DslAsserts.assertEquals(iterator.next(), MatchField.ARTIFACT_ID, CompareOp.EQ, "ABCDEFGHIJK123456789");
- DslAsserts.assertEquals(iterator.next(), MatchField.ARTIFACT_NAME, CompareOp.EQ, "myArtifact");
-
- Assert.assertEquals(1, andMatcher.getOperators().size());
- Assert.assertEquals(XLogicOperator.AND, andMatcher.getOperators().iterator().next());
-
- XArtifactMatcher orMatcher = MockModel.createMatcher(
- "artifactMatcher \"Test\" where artifactId EQ \"ABCDEFGHIJK123456789\" OR artifactName EQ \"myArtifact\";");
-
- Iterator<Condition> iterator2 = orMatcher.getConditions().iterator();
- DslAsserts.assertEquals(iterator2.next(), MatchField.ARTIFACT_ID, CompareOp.EQ, "ABCDEFGHIJK123456789");
- DslAsserts.assertEquals(iterator2.next(), MatchField.ARTIFACT_NAME, CompareOp.EQ, "myArtifact");
-
- Assert.assertEquals(1, orMatcher.getOperators().size());
- Assert.assertEquals(XLogicOperator.OR, orMatcher.getOperators().iterator().next());
-
- ArtifactProxy proxy1 = createProxy("1BCDEFGHIJK123456789", "xArtifact");
- ArtifactProxy proxy2 = createProxy("1BCDEFGHIJK123456789", "myArtifact");
- ArtifactProxy proxy3 = createProxy("ABCDEFGHIJK123456789", "xArtifact");
- ArtifactProxy proxy4 = createProxy("ABCDEFGHIJK123456789", "myArtifact");
-
- Assert.assertEquals(false, interpreter.matches(andMatcher, proxy1));
- Assert.assertEquals(false, interpreter.matches(andMatcher, proxy2));
- Assert.assertEquals(false, interpreter.matches(andMatcher, proxy3));
- Assert.assertEquals(true, interpreter.matches(andMatcher, proxy4));
-
- Assert.assertEquals(false, interpreter.matches(orMatcher, proxy1));
- Assert.assertEquals(true, interpreter.matches(orMatcher, proxy2));
- Assert.assertEquals(true, interpreter.matches(orMatcher, proxy3));
- Assert.assertEquals(true, interpreter.matches(orMatcher, proxy4));
- }
-
- @Test
- public void testCompoundCondition2() {
- XArtifactMatcher matcher = MockModel.createMatcher(
- "artifactMatcher \"Test\" where artifactId EQ \"ABCDEFGHIJK123456789\" AND (branchName EQ \"myArtifact\" OR branchUuid EQ \"3456789101112131415\");");
-
- Assert.assertEquals(2, matcher.getConditions().size());
- Iterator<Condition> iterator = matcher.getConditions().iterator();
- DslAsserts.assertEquals(iterator.next(), MatchField.ARTIFACT_ID, CompareOp.EQ, "ABCDEFGHIJK123456789");
-
- Assert.assertEquals(1, matcher.getOperators().size());
- Assert.assertEquals(XLogicOperator.AND, matcher.getOperators().iterator().next());
-
- Condition condition = iterator.next();
-
- Assert.assertTrue(condition instanceof CompoundCondition);
- CompoundCondition compoundCondition = (CompoundCondition) condition;
-
- Assert.assertEquals(2, compoundCondition.getConditions().size());
-
- String badArtGuid = "1BCDEFGHIJK123456789";
- BranchToken badBranch = BranchToken.create(333333333123456789L, "Bad Branch");
- String badBranchName = "xArtifact";
-
- String goodArtGuid = "ABCDEFGHIJK123456789";
- BranchToken goodBranch = BranchToken.create(3456789101112131415L, "Good Branch");
- String goodBranchName = "myArtifact";
-
- Iterator<SimpleCondition> iterator2 = compoundCondition.getConditions().iterator();
- DslAsserts.assertEquals(iterator2.next(), MatchField.BRANCH_NAME, CompareOp.EQ, "myArtifact");
- DslAsserts.assertEquals(iterator2.next(), MatchField.BRANCH_UUID, CompareOp.EQ, goodBranch.getIdString());
-
- Assert.assertEquals(1, compoundCondition.getOperators().size());
- Assert.assertEquals(XLogicOperator.OR, compoundCondition.getOperators().iterator().next());
-
- ArtifactProxy proxy1 = createProxy(badArtGuid, "", badBranch, badBranchName);
- ArtifactProxy proxy2 = createProxy(badArtGuid, "", badBranch, goodBranchName);
- ArtifactProxy proxy3 = createProxy(badArtGuid, "", goodBranch, badBranchName);
- ArtifactProxy proxy4 = createProxy(badArtGuid, "", goodBranch, goodBranchName);
- ArtifactProxy proxy5 = createProxy(goodArtGuid, "", badBranch, badBranchName);
- ArtifactProxy proxy6 = createProxy(goodArtGuid, "", badBranch, goodBranchName);
- ArtifactProxy proxy7 = createProxy(goodArtGuid, "", goodBranch, badBranchName);
- ArtifactProxy proxy8 = createProxy(goodArtGuid, "", goodBranch, goodBranchName);
-
- Assert.assertEquals(false, interpreter.matches(matcher, proxy1));
- Assert.assertEquals(false, interpreter.matches(matcher, proxy2));
- Assert.assertEquals(false, interpreter.matches(matcher, proxy3));
- Assert.assertEquals(false, interpreter.matches(matcher, proxy4));
-
- Assert.assertEquals(false, interpreter.matches(matcher, proxy5));
- Assert.assertEquals(true, interpreter.matches(matcher, proxy6));
- Assert.assertEquals(true, interpreter.matches(matcher, proxy7));
- Assert.assertEquals(true, interpreter.matches(matcher, proxy8));
- }
-
- private static ArtifactProxy createProxy(String artGuid, String artifactName) {
- return createProxy(artGuid, artifactName, randomBranch, "dummy");
- }
-
- private static ArtifactProxy createProxy(final String artGuid, final String artifactName, BranchToken branch, final String branchName) {
- return new ArtifactProxy() {
-
- @Override
- public BranchToken getBranch() {
- return branch;
- }
-
- @Override
- public BranchToken getBranchToken() {
- return BranchToken.create(branch, branchName);
- }
-
- @Override
- public String getName() {
- return artifactName;
- }
-
- @Override
- public String getGuid() {
- return artGuid;
- }
-
- @Override
- public ArtifactTypeToken getArtifactType() {
- return null;
- }
-
- @Override
- public Collection<RelationTypeToken> getValidRelationTypes() {
- return null;
- }
-
- @Override
- public Collection<ArtifactProxy> getHierarchy() {
- return null;
- }
-
- @Override
- public Long getId() {
- return 0L;
- }
- };
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchRestrictionHandlerTest.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchRestrictionHandlerTest.java
deleted file mode 100644
index 8d5c8dfc46..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchRestrictionHandlerTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.DslAsserts;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockModel;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessPermissionEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ArtifactMatchRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactMatcher;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Test Case for {@link ArtifactMatchRestrictionHandler}
- *
- * @author Roberto E. Escobar
- */
-public class ArtifactMatchRestrictionHandlerTest extends BaseRestrictionHandlerTest<ArtifactMatchRestriction> {
-
- private static final MockArtifactMatchInterpreter matcher = new MockArtifactMatchInterpreter();
-
- public ArtifactMatchRestrictionHandlerTest() {
- super(new ArtifactMatchRestrictionHandler(matcher), MockModel.createArtifactMatchRestriction(),
- MockModel.createAttributeTypeRestriction());
- }
-
- @Test
- public void testProcessDataNotMatchesRestriction() {
- XArtifactMatcher artifactRef = MockModel.createXArtifactMatcherRef("TestArtifact");
-
- ArtifactMatchRestriction restriction = MockModel.createArtifactMatchRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setArtifactMatcherRef(artifactRef);
-
- matcher.setMatchesResult(false);
-
- MockArtifactProxy artData = new MockArtifactProxy();
- Scope expectedScope = new Scope().add("fail");
- DslAsserts.assertNullAccessDetail(getRestrictionHandler(), restriction, artData, expectedScope);
-
- Assert.assertEquals(artifactRef, matcher.getMatcher());
- Assert.assertEquals(artData, matcher.getProxy());
- }
-
- @Test
- public void testProcessCreateAccessDetail() {
- XArtifactMatcher artifactRef = MockModel.createXArtifactMatcherRef("TestArtifact");
-
- ArtifactMatchRestriction restriction = MockModel.createArtifactMatchRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setArtifactMatcherRef(artifactRef);
-
- matcher.setMatchesResult(true);
- ArtifactToken expectedAccessObject = ArtifactToken.valueOf(1, "Another Artifact", BranchId.SENTINEL);
- MockArtifactProxy artData = new MockArtifactProxy(expectedAccessObject);
-
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artData, expectedAccessObject,
- PermissionEnum.WRITE, expectedScope);
-
- Assert.assertEquals(artifactRef, matcher.getMatcher());
- Assert.assertEquals(artData, matcher.getProxy());
- }
-
- private static final class MockArtifactMatchInterpreter extends ArtifactMatchInterpreter {
-
- private boolean matchesResult;
- private ArtifactProxy proxy;
- private XArtifactMatcher matcher;
-
- @Override
- public boolean matches(XArtifactMatcher matcher, ArtifactProxy proxy) {
- this.matcher = matcher;
- this.proxy = proxy;
- return matchesResult;
- }
-
- public ArtifactProxy getProxy() {
- return proxy;
- }
-
- public XArtifactMatcher getMatcher() {
- return matcher;
- }
-
- public void setMatchesResult(boolean matchesResult) {
- this.matchesResult = matchesResult;
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactTypeRestrictionHandlerTest.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactTypeRestrictionHandlerTest.java
deleted file mode 100644
index 6cf5bb3007..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactTypeRestrictionHandlerTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.AbstractSpecRequirement;
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.Artifact;
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.Requirement;
-import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.DslAsserts;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockModel;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessPermissionEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ArtifactTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactType;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.junit.Test;
-
-/**
- * Test Case for {@link ArtifactTypeRestrictionHandler}
- *
- * @author Roberto E. Escobar
- */
-public class ArtifactTypeRestrictionHandlerTest extends BaseRestrictionHandlerTest<ArtifactTypeRestriction> {
-
- public ArtifactTypeRestrictionHandlerTest() {
- super(new ArtifactTypeRestrictionHandler(), MockModel.createArtifactTypeRestriction(),
- MockModel.createAttributeTypeRestriction());
- }
-
- @Test
- public void testProcessDataNotMatchesRestriction() {
- ArtifactTypeToken artifactType = Requirement;
- XArtifactType artifactTypeRef = MockModel.createXArtifactType(artifactType);
-
- ArtifactTypeRestriction restriction = MockModel.createArtifactTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setArtifactTypeRef(artifactTypeRef);
-
- MockArtifactProxy artData = new MockArtifactProxy(CoreArtifactTypes.Folder);
- Scope expectedScope = new Scope().add("fail");
- DslAsserts.assertNullAccessDetail(getRestrictionHandler(), restriction, artData, expectedScope);
- }
-
- @Test
- public void testProcessCreateAccessDetail() {
- ArtifactTypeToken artifactType = Requirement;
- XArtifactType artifactTypeRef = MockModel.createXArtifactType(artifactType);
-
- ArtifactTypeRestriction restriction = MockModel.createArtifactTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setArtifactTypeRef(artifactTypeRef);
-
- MockArtifactProxy artData = new MockArtifactProxy(artifactType);
-
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artData, artifactType, PermissionEnum.WRITE,
- expectedScope);
- }
-
- @Test
- public void testProcessArtifactTypeInheritance() {
- XArtifactType artifactTypeRef = MockModel.createXArtifactType(Requirement);
-
- ArtifactTypeRestriction restriction = MockModel.createArtifactTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setArtifactTypeRef(artifactTypeRef);
-
- MockArtifactProxy artData = new MockArtifactProxy(Artifact);
- Scope expectedScope = new Scope();
- DslAsserts.assertNullAccessDetail(getRestrictionHandler(), restriction, artData, expectedScope);
-
- MockArtifactProxy reqArtData = new MockArtifactProxy(AbstractSpecRequirement);
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, reqArtData, AbstractSpecRequirement,
- PermissionEnum.WRITE, expectedScope);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/AttributeTypeRestrictionHandlerTest.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/AttributeTypeRestrictionHandlerTest.java
deleted file mode 100644
index b11fd6b255..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/AttributeTypeRestrictionHandlerTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.Artifact;
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.Requirement;
-import static org.eclipse.osee.framework.core.enums.CoreAttributeTypes.Name;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.DslAsserts;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockModel;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessPermissionEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AttributeTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactType;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XAttributeType;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.jdk.core.type.MutableBoolean;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Test Case for {@link AttributeTypeRestrictionHandler}
- *
- * @author Roberto E. Escobar
- */
-public class AttributeTypeRestrictionHandlerTest extends BaseRestrictionHandlerTest<AttributeTypeRestriction> {
- private static final XAttributeType attributeTypeRef = MockModel.createXAttributeType(Name, Name.getName());
-
- public AttributeTypeRestrictionHandlerTest() {
- super(new AttributeTypeRestrictionHandler(), MockModel.createAttributeTypeRestriction(),
- MockModel.createArtifactTypeRestriction());
- }
-
- @Test
- public void testProcessDataAttributeTypeNotApplicable() {
- AttributeTypeRestriction restriction = MockModel.createAttributeTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setAttributeTypeRef(attributeTypeRef);
-
- final MutableBoolean wasIsAttributeTypeValidCalled = new MutableBoolean(false);
- ArtifactProxy artifactProxy = createArtifactProxy(null, Name, wasIsAttributeTypeValidCalled, false);
- Scope expectedScope = new Scope().add("fail");
- DslAsserts.assertNullAccessDetail(getRestrictionHandler(), restriction, artifactProxy, expectedScope);
- Assert.assertTrue(wasIsAttributeTypeValidCalled.getValue());
- }
-
- @Test
- public void testProcessDataAttributeTypeIsApplicable() {
- AttributeTypeRestriction restriction = MockModel.createAttributeTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setAttributeTypeRef(attributeTypeRef);
-
- final MutableBoolean wasIsAttributeTypeValidCalled = new MutableBoolean(false);
- ArtifactProxy artifactProxy = createArtifactProxy(null, Name, wasIsAttributeTypeValidCalled, true);
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artifactProxy, Name, PermissionEnum.WRITE,
- expectedScope);
- Assert.assertTrue(wasIsAttributeTypeValidCalled.getValue());
- }
-
- @Test
- public void testProcessDataAttributeTypeIsApplicableArtifactTypeBoundedNoMatch() {
- AttributeTypeRestriction restriction = MockModel.createAttributeTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setAttributeTypeRef(attributeTypeRef);
-
- XArtifactType artifactTypeRef = MockModel.createXArtifactType(Requirement);
- restriction.setArtifactTypeRef(artifactTypeRef);
-
- final MutableBoolean wasIsAttributeTypeValidCalled = new MutableBoolean(false);
- ArtifactProxy artifactProxy = createArtifactProxy(Artifact, Name, wasIsAttributeTypeValidCalled, true);
- Scope expectedScope = new Scope().add("fail");
- DslAsserts.assertNullAccessDetail(getRestrictionHandler(), restriction, artifactProxy, expectedScope);
- Assert.assertTrue(wasIsAttributeTypeValidCalled.getValue());
- }
-
- @Test
- public void testProcessDataAttributeTypeIsApplicableArtifactTypeMatch() {
- AttributeTypeRestriction restriction = MockModel.createAttributeTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setAttributeTypeRef(attributeTypeRef);
-
- XArtifactType artifactTypeRef = MockModel.createXArtifactType(Requirement);
- restriction.setArtifactTypeRef(artifactTypeRef);
-
- final MutableBoolean wasIsAttributeTypeValidCalled = new MutableBoolean(false);
- ArtifactProxy artifactProxy = createArtifactProxy(Requirement, Name, wasIsAttributeTypeValidCalled, true);
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artifactProxy, Name, PermissionEnum.WRITE,
- expectedScope);
- Assert.assertTrue(wasIsAttributeTypeValidCalled.getValue());
- }
-
- @Test
- public void testProcessDataAttributeTypeIsApplicableArtifactTypeMatchWithInheritance() {
- AttributeTypeRestriction restriction = MockModel.createAttributeTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setAttributeTypeRef(attributeTypeRef);
-
- XArtifactType artifactTypeRef = MockModel.createXArtifactType(Artifact);
- restriction.setArtifactTypeRef(artifactTypeRef);
-
- ArtifactTypeToken artifactType2 = Requirement;
-
- final MutableBoolean wasIsAttributeTypeValidCalled = new MutableBoolean(false);
- ArtifactProxy artifactProxy = createArtifactProxy(artifactType2, Name, wasIsAttributeTypeValidCalled, true);
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artifactProxy, Name, PermissionEnum.WRITE,
- expectedScope);
- Assert.assertTrue(wasIsAttributeTypeValidCalled.getValue());
- }
-
- private static ArtifactProxy createArtifactProxy(ArtifactTypeToken artifactType, final AttributeTypeId expectedAttributeType, final MutableBoolean wasIsAttributeTypeValidCalled, final boolean isTypeValid) {
- MockArtifactProxy artData = new MockArtifactProxy(artifactType) {
-
- @Override
- public boolean isAttributeTypeValid(AttributeTypeId attributeType) {
- wasIsAttributeTypeValidCalled.setValue(true);
- Assert.assertEquals(expectedAttributeType, attributeType);
- return isTypeValid;
- }
- };
- return artData;
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/BaseRestrictionHandlerTest.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/BaseRestrictionHandlerTest.java
deleted file mode 100644
index cc083b9fb1..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/BaseRestrictionHandlerTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.DslAsserts;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockModel;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Test Case for {@link RestrictionHandler classes}
- *
- * @author Roberto E. Escobar
- */
-public abstract class BaseRestrictionHandlerTest<T extends ObjectRestriction> {
-
- private final RestrictionHandler<T> restrictionHandler;
- private final ObjectRestriction validRestriction;
- private final ObjectRestriction invalidRestriction;
-
- protected BaseRestrictionHandlerTest(RestrictionHandler<T> restrictionHandler, ObjectRestriction validRestriction, ObjectRestriction invalidRestriction) {
- this.restrictionHandler = restrictionHandler;
- this.validRestriction = validRestriction;
- this.invalidRestriction = invalidRestriction;
- }
-
- protected RestrictionHandler<T> getRestrictionHandler() {
- return restrictionHandler;
- }
-
- @Test
- public void testAsCastedObject() {
- T actualObject = restrictionHandler.asCastedObject(validRestriction);
- Assert.assertNotNull(actualObject);
- Assert.assertEquals(validRestriction, actualObject);
- }
-
- @Test
- public void testAsCastedObjectReturnsNull() {
- ObjectRestriction objectRestriction = MockModel.createObjectRestriction();
- T actualObject = restrictionHandler.asCastedObject(objectRestriction);
- Assert.assertNull(actualObject);
- }
-
- @Test
- public void testProcessNullObjectRestriction() {
- Scope expectedScope = new Scope().add("fail");
- DslAsserts.assertNullAccessDetail(restrictionHandler, null, null, expectedScope);
- }
-
- @Test
- public void testProcessInvalidObjectRestriction() {
- Scope expectedScope = new Scope().add("fail");
- DslAsserts.assertNullAccessDetail(restrictionHandler, invalidRestriction, null, expectedScope);
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/InternalTestSuite.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/InternalTestSuite.java
index 7a6128d42f..f7c6b97fb5 100644
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/InternalTestSuite.java
+++ b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/InternalTestSuite.java
@@ -20,14 +20,7 @@ import org.junit.runners.Suite;
* @author Roberto E. Escobar
*/
@RunWith(Suite.class)
-@Suite.SuiteClasses({
- AccessModelInterpreterImplTest.class,
- ArtifactMatchInterpreterTest.class,
- ArtifactMatchRestrictionHandlerTest.class,
- ArtifactTypeRestrictionHandlerTest.class,
- AttributeTypeRestrictionHandlerTest.class,
- RelationTypeRestrictionHandlerTest.class,
- OseeUtilTest.class})
+@Suite.SuiteClasses({OseeUtilTest.class})
public class InternalTestSuite {
// Test Suite
}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/RelationTypeRestrictionHandlerTest.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/RelationTypeRestrictionHandlerTest.java
deleted file mode 100644
index 7d4293d7e1..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/internal/RelationTypeRestrictionHandlerTest.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.AbstractSoftwareRequirement;
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.SoftwareRequirementMsWord;
-import static org.eclipse.osee.framework.core.enums.CoreRelationTypes.DevelopmentalVerification;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.RelationTypeSide;
-import org.eclipse.osee.framework.core.data.RelationTypeToken;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.DslAsserts;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.mocks.MockModel;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessPermissionEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.OseeDslFactory;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationTypeArtifactPredicate;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationTypeArtifactTypePredicate;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactMatcher;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactType;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XRelationSideEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XRelationType;
-import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.enums.RelationSide;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Test Case for {@link RelationTypeRestrictionHandler}
- *
- * @author Roberto E. Escobar
- */
-public class RelationTypeRestrictionHandlerTest extends BaseRestrictionHandlerTest<RelationTypeRestriction> {
-
- public RelationTypeRestrictionHandlerTest() {
- super(new RelationTypeRestrictionHandler(new ArtifactMatchInterpreter()),
- MockModel.createRelationTypeRestriction(), MockModel.createAttributeTypeRestriction());
- }
-
- @Test
- public void testProcessDataRelationTypeNoMatch() {
- XRelationType relationTypeRef = MockModel.createXRelationType(CoreRelationTypes.Allocation);
-
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeRef(relationTypeRef);
-
- // Artifact Data has no relation types therefore relation type will not match
- MockArtifactProxy artData = new MockArtifactProxy();
- Scope expectedScope = new Scope().add("fail");
- DslAsserts.assertNullAccessDetail(getRestrictionHandler(), restriction, artData, expectedScope);
- }
-
- @Test
- public void testProcessDataRelationTypeMatchSideANoMatch() {
- RelationTypeToken testRelationType = CoreRelationTypes.CodeRequirement;
- XRelationType relationTypeRef = MockModel.createXRelationType(testRelationType);
-
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeRef(relationTypeRef);
- restriction.setRestrictedToSide(XRelationSideEnum.SIDE_A);
-
- MockArtifactProxy artData = new MockArtifactProxy(SoftwareRequirementMsWord, testRelationType);
- RelationTypeSide expectedObject = new RelationTypeSide(testRelationType, RelationSide.SIDE_A);
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artData, expectedObject, PermissionEnum.WRITE,
- expectedScope);
- }
-
- @Test
- public void testProcessDataRelationTypeMatchSideAMatch() {
- RelationTypeToken testRelationType = CoreRelationTypes.CodeRequirement;
- XRelationType relationTypeRef = MockModel.createXRelationType(testRelationType);
-
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeRef(relationTypeRef);
- restriction.setRestrictedToSide(XRelationSideEnum.SIDE_A);
-
- MockArtifactProxy artData = new MockArtifactProxy(SoftwareRequirementMsWord, testRelationType);
- RelationTypeSide expectedObject = new RelationTypeSide(testRelationType, RelationSide.SIDE_A);
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artData, expectedObject, PermissionEnum.WRITE,
- expectedScope);
- }
-
- @Test
- public void testProcessDataRelationTypeMatchSideBNoMatch() {
- RelationTypeToken testRelationType = DevelopmentalVerification;
- XRelationType relationTypeRef = MockModel.createXRelationType(testRelationType);
-
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeRef(relationTypeRef);
- restriction.setRestrictedToSide(XRelationSideEnum.SIDE_B);
-
- MockArtifactProxy artData = new MockArtifactProxy(SoftwareRequirementMsWord, testRelationType);
-
- RelationTypeSide expectedObject = new RelationTypeSide(testRelationType, RelationSide.SIDE_B);
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artData, expectedObject, PermissionEnum.WRITE,
- expectedScope);
- }
-
- @Test
- public void testProcessDataRelationTypeMatchSideBMatch() {
- RelationTypeToken testRelationType = DevelopmentalVerification;
- XRelationType relationTypeRef = MockModel.createXRelationType(testRelationType);
-
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeRef(relationTypeRef);
- restriction.setRestrictedToSide(XRelationSideEnum.SIDE_B);
-
- MockArtifactProxy artData = new MockArtifactProxy(SoftwareRequirementMsWord, testRelationType);
- RelationTypeSide expectedObject = new RelationTypeSide(testRelationType, RelationSide.SIDE_B);
- Scope expectedScope = new Scope();
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artData, expectedObject, PermissionEnum.WRITE,
- expectedScope);
- }
-
- @Test
- public void testProcessDataRelationTypeMatchBothMatch() {
- RelationTypeToken testRelationType = DevelopmentalVerification;
-
- XRelationType relationTypeRef = MockModel.createXRelationType(testRelationType);
-
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeRef(relationTypeRef);
- restriction.setRestrictedToSide(XRelationSideEnum.BOTH);
-
- MockArtifactProxy artData = new MockArtifactProxy(SoftwareRequirementMsWord, testRelationType);
- RelationTypeSide expectedObject1 = new RelationTypeSide(testRelationType, RelationSide.SIDE_A);
- RelationTypeSide expectedObject2 = new RelationTypeSide(testRelationType, RelationSide.SIDE_B);
-
- final List<AccessDetail<?>> actualAccesses = new ArrayList<>();
- AccessDetailCollector collector = new AccessDetailCollector() {
-
- @Override
- public void collect(AccessDetail<?> accessDetail) {
- Assert.assertNotNull(accessDetail);
- actualAccesses.add(accessDetail);
- }
- };
-
- Scope expectedScope = new Scope();
- getRestrictionHandler().process(restriction, artData, collector, expectedScope);
-
- AccessDetail<?> actualAccess = actualAccesses.get(0);
- Assert.assertEquals(actualAccess.getPermission(), PermissionEnum.WRITE);
- Assert.assertEquals(expectedObject1, actualAccess.getAccessObject());
-
- actualAccess = actualAccesses.get(1);
- Assert.assertEquals(actualAccess.getPermission(), PermissionEnum.WRITE);
- Assert.assertEquals(expectedObject2, actualAccess.getAccessObject());
- }
-
- @Test
- public void testProcessRelationWithRelationTypeAll() {
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeMatch(true);
- restriction.setRestrictedToSide(XRelationSideEnum.BOTH);
-
- RelationTypeToken testRelationType = DevelopmentalVerification;
-
- MockArtifactProxy artData = new MockArtifactProxy(SoftwareRequirementMsWord, testRelationType);
- RelationTypeSide expectedObject1 = new RelationTypeSide(testRelationType, RelationSide.SIDE_A);
- RelationTypeSide expectedObject2 = new RelationTypeSide(testRelationType, RelationSide.SIDE_B);
-
- final List<AccessDetail<?>> actualAccesses = new ArrayList<>();
- AccessDetailCollector collector = new AccessDetailCollector() {
-
- @Override
- public void collect(AccessDetail<?> accessDetail) {
- Assert.assertNotNull(accessDetail);
- actualAccesses.add(accessDetail);
- }
- };
-
- Scope expectedScope = new Scope();
- getRestrictionHandler().process(restriction, artData, collector, expectedScope);
-
- AccessDetail<?> actualAccess = actualAccesses.get(0);
- Assert.assertEquals(actualAccess.getPermission(), PermissionEnum.WRITE);
- Assert.assertEquals(expectedObject1, actualAccess.getAccessObject());
-
- actualAccess = actualAccesses.get(1);
- Assert.assertEquals(actualAccess.getPermission(), PermissionEnum.WRITE);
- Assert.assertEquals(expectedObject2, actualAccess.getAccessObject());
- }
-
- @Test
- public void testProcessDataArtifactTypeMatch() {
- XArtifactType artifactTypeRef = MockModel.createXArtifactType(AbstractSoftwareRequirement);
-
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeMatch(true);
-
- RelationTypeArtifactTypePredicate predicate = OseeDslFactory.eINSTANCE.createRelationTypeArtifactTypePredicate();
- predicate.setArtifactTypeRef(artifactTypeRef);
-
- restriction.setPredicate(predicate);
- restriction.setRestrictedToSide(XRelationSideEnum.SIDE_B);
-
- RelationTypeToken testRelationType = DevelopmentalVerification;
-
- ArtifactToken expectedAccessObject = ArtifactToken.valueOf(1, "Another Artifact", SoftwareRequirementMsWord);
- MockArtifactProxy artData = new MockArtifactProxy(expectedAccessObject, testRelationType);
-
- RelationTypeSide expectedObject = new RelationTypeSide(testRelationType, RelationSide.SIDE_B);
-
- Scope expectedScope = new Scope();
- expectedScope.addSubPath(artData.getName());
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artData, expectedObject, PermissionEnum.WRITE,
- expectedScope);
- }
-
- private void testProcessRelationWithArtifactHelper(String artifactName, String matcherArtifactName, Scope expectedScope) {
- RelationTypeToken testRelationType = DevelopmentalVerification;
- XRelationType relationTypeRef = MockModel.createXRelationType(testRelationType);
-
- RelationTypeRestriction restriction = MockModel.createRelationTypeRestriction();
- restriction.setPermission(AccessPermissionEnum.ALLOW);
- restriction.setRelationTypeRef(relationTypeRef);
- restriction.setRestrictedToSide(XRelationSideEnum.SIDE_B);
-
- XArtifactMatcher matcher =
- MockModel.createMatcher("artifactMatcher \"Test\" where artifactName EQ \"" + matcherArtifactName + "\";");
-
- RelationTypeArtifactPredicate predicate = OseeDslFactory.eINSTANCE.createRelationTypeArtifactPredicate();
- predicate.setArtifactMatcherRef(matcher);
- restriction.setPredicate(predicate);
-
- ArtifactToken dummy = ArtifactToken.valueOf(43, artifactName, SoftwareRequirementMsWord);
- MockArtifactProxy artData = new MockArtifactProxy(dummy, testRelationType);
- RelationTypeSide expectedObject = new RelationTypeSide(testRelationType, RelationSide.SIDE_B);
- DslAsserts.assertAccessDetail(getRestrictionHandler(), restriction, artData, expectedObject, PermissionEnum.WRITE,
- expectedScope);
- }
-
- @Test
- public void testProcessRelationWithArtifactMatch() {
- testProcessRelationWithArtifactHelper("artifactToMatch", "artifactToMatch",
- new Scope().addSubPath("artifactToMatch"));
- }
-
- @Test
- public void testProcessRelationWithArtifactNoMatch() {
- testProcessRelationWithArtifactHelper("artifactToMatch", "differentArtifactToMatch", new Scope());
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/CheckAccessDetailCollectorNotCalled.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/CheckAccessDetailCollectorNotCalled.java
deleted file mode 100644
index 866e20ef41..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/CheckAccessDetailCollectorNotCalled.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.mocks;
-
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.junit.Assert;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class CheckAccessDetailCollectorNotCalled implements AccessDetailCollector {
-
- @Override
- public void collect(AccessDetail<?> accessDetail) {
- Assert.fail("Method was unexpectedly called");
- }
-
-};
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/DslAsserts.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/DslAsserts.java
deleted file mode 100644
index 26ceb596f8..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/DslAsserts.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.mocks;
-
-import java.util.List;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.dsl.integration.AccessDataCollector;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessContext;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessPermissionEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ArtifactTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AttributeTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.CompareOp;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.Condition;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.HierarchyRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.MatchField;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.OseeDsl;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationMultiplicityEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.SimpleCondition;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactMatcher;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactType;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XAttributeType;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XAttributeTypeRef;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XRelationSideEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XRelationType;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.junit.Assert;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class DslAsserts {
-
- private DslAsserts() {
- // Utility class
- }
-
- public static void assertNullAccessDetail(RestrictionHandler<?> handler, ObjectRestriction restriction, ArtifactProxy artifactProxy, Scope expectedScopeLevel) {
- assertAccessDetail(handler, restriction, artifactProxy, null, null, expectedScopeLevel);
- }
-
- public static void assertAccessDetail(RestrictionHandler<?> handler, ObjectRestriction restriction, ArtifactProxy artifactProxy, Object expectedAccessObject, PermissionEnum expectedPermission, Scope expectedScopeLevel) {
- AccessDetailCollector collector = new AccessDataCollector();
- handler.process(restriction, artifactProxy, collector, new Scope());
- List<AccessDetail<?>> actualDetails = collector.getAccessDetails();
- if (expectedAccessObject == null) {
- Assert.assertTrue(actualDetails.isEmpty());
- } else {
- Assert.assertTrue(collector.contains(expectedAccessObject, expectedPermission, expectedScopeLevel));
- }
- }
-
- public static void assertEquals(OseeDsl model1, OseeDsl model2) {
- Assert.assertEquals(model1.getAccessDeclarations().size(), model2.getAccessDeclarations().size());
- Assert.assertEquals(model1.getArtifactMatchRefs().size(), model2.getArtifactMatchRefs().size());
- Assert.assertEquals(model1.getArtifactTypes().size(), model2.getArtifactTypes().size());
- Assert.assertEquals(model1.getAttributeTypes().size(), model2.getAttributeTypes().size());
- Assert.assertEquals(model1.getEnumOverrides().size(), model2.getEnumOverrides().size());
- Assert.assertEquals(model1.getEnumTypes().size(), model2.getEnumTypes().size());
- Assert.assertEquals(model1.getImports().size(), model2.getImports().size());
- Assert.assertEquals(model1.getRelationTypes().size(), model2.getRelationTypes().size());
- }
-
- public static void assertEquals(Condition condition, MatchField expField, CompareOp expOp, String expExpression) {
- SimpleCondition simpCondition = (SimpleCondition) condition;
- Assert.assertEquals(expField, simpCondition.getField());
- Assert.assertEquals(expOp, simpCondition.getOp());
- Assert.assertEquals(expExpression, simpCondition.getExpression());
- }
-
- public static void assertEquals(XArtifactMatcher matcher, String name) {
- Assert.assertEquals(name, matcher.getName());
- }
-
- public static void assertEquals(XArtifactType artifactType, String expName, String expGuid, String[] inheritsFrom, String... attributeNames) {
- Assert.assertEquals(expName, artifactType.getName());
- Assert.assertEquals(expGuid, artifactType.getId());
-
- int index = 0;
- Assert.assertEquals(inheritsFrom.length, artifactType.getSuperArtifactTypes().size());
- for (XArtifactType ref : artifactType.getSuperArtifactTypes()) {
- Assert.assertEquals(inheritsFrom[index++], ref.getName());
- }
-
- index = 0;
- Assert.assertEquals(attributeNames.length, artifactType.getValidAttributeTypes().size());
- for (XAttributeTypeRef ref : artifactType.getValidAttributeTypes()) {
- Assert.assertEquals(attributeNames[index++], ref.getValidAttributeType().getName());
- }
- }
-
- public static void assertEquals(XAttributeType type, String expName, String expGuid, String baseType, String dataProvider, String min, String max, String tagger, String description, String defaultValue, String ext) {
- Assert.assertEquals(expName, type.getName());
- Assert.assertEquals(expGuid, type.getId());
-
- Assert.assertEquals(baseType, type.getBaseAttributeType());
- Assert.assertEquals(dataProvider, type.getDataProvider());
- Assert.assertEquals(min, type.getMin());
- Assert.assertEquals(max, type.getMax());
- Assert.assertEquals(tagger, type.getTaggerId());
- Assert.assertEquals(description, type.getDescription());
- Assert.assertEquals(defaultValue, type.getDefaultValue());
- Assert.assertEquals(ext, type.getFileExtension());
- }
-
- public static void assertEquals(XRelationType type, String expName, String expGuid, String sideA, String aName, String aGuid, String sideB, String bName, String bGuid, String orderType, RelationMultiplicityEnum mult) {
- Assert.assertEquals(expName, type.getName());
- Assert.assertEquals(expGuid, type.getId());
-
- XArtifactType aArt = type.getSideAArtifactType();
- Assert.assertEquals(sideA, type.getSideAName());
- Assert.assertEquals(aName, aArt.getName());
- Assert.assertEquals(aGuid, aArt.getId());
-
- XArtifactType bArt = type.getSideBArtifactType();
- Assert.assertEquals(sideB, type.getSideBName());
- Assert.assertEquals(bName, bArt.getName());
- Assert.assertEquals(bGuid, bArt.getId());
-
- Assert.assertEquals(orderType, type.getDefaultOrderType());
- Assert.assertEquals(mult, type.getMultiplicity());
- }
-
- public static void assertEquals(AccessContext context, String expName, Long expId, String[] inheritsFrom) {
- Assert.assertEquals(expName, context.getName());
- Assert.assertEquals(expId, Long.valueOf(context.getId()));
-
- int index = 0;
- Assert.assertEquals(inheritsFrom.length, context.getSuperAccessContexts().size());
- for (AccessContext ref : context.getSuperAccessContexts()) {
- Assert.assertEquals(inheritsFrom[index++], ref.getName());
- }
- }
-
- public static void assertEquals(ArtifactTypeRestriction restriction, AccessPermissionEnum permission, String artTypeName) {
- Assert.assertEquals(permission, restriction.getPermission());
- XArtifactType ref = restriction.getArtifactTypeRef();
- Assert.assertEquals(artTypeName, ref.getName());
- }
-
- public static void assertEquals(AttributeTypeRestriction restriction, AccessPermissionEnum permission, String attrTypeName, String artTypeName) {
- Assert.assertEquals(permission, restriction.getPermission());
-
- Assert.assertEquals(attrTypeName, restriction.getAttributeTypeRef().getName());
-
- XArtifactType ref = restriction.getArtifactTypeRef();
- Assert.assertEquals(artTypeName, ref.getName());
- }
-
- public static void assertEquals(RelationTypeRestriction restriction, AccessPermissionEnum permission, String relType, XRelationSideEnum sideEnum) {
- Assert.assertEquals(permission, restriction.getPermission());
- Assert.assertEquals(relType, restriction.getRelationTypeRef().getName());
- Assert.assertEquals(sideEnum, restriction.getRestrictedToSide());
- }
-
- public static void assertEquals(HierarchyRestriction restriction, String matcherName) {
- Assert.assertEquals(matcherName, restriction.getArtifactMatcherRef().getName());
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/MockRestrictionHandler.java b/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/MockRestrictionHandler.java
deleted file mode 100644
index f61f2c4361..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration.test/src/org/eclipse/osee/framework/core/dsl/integration/mocks/MockRestrictionHandler.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.mocks;
-
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.junit.Assert;
-
-/**
- * @author Roberto E. Escobar
- */
-public class MockRestrictionHandler implements RestrictionHandler<Object> {
-
- private final ObjectRestriction expectedObjectRestriction;
- private final ArtifactProxy expectedArtifactProxy;
- private final AccessDetailCollector expectedCollector;
- private boolean wasProcessCalled;
-
- public MockRestrictionHandler(ObjectRestriction expectedObjectRestriction, ArtifactProxy expectedArtifactProxy, AccessDetailCollector expectedCollector) {
- super();
- this.expectedObjectRestriction = expectedObjectRestriction;
- this.expectedArtifactProxy = expectedArtifactProxy;
- this.expectedCollector = expectedCollector;
- reset();
- }
-
- @Override
- public Object asCastedObject(ObjectRestriction objectRestriction) {
- return null;
- }
-
- public void reset() {
- wasProcessCalled = false;
- }
-
- public boolean wasProcessCalled() {
- return wasProcessCalled;
- }
-
- @Override
- public void process(ObjectRestriction objectRestriction, ArtifactProxy artifactProxy, AccessDetailCollector collector, Scope scopeLevel) {
- wasProcessCalled = true;
- Assert.assertEquals(expectedObjectRestriction, objectRestriction);
- Assert.assertEquals(expectedArtifactProxy, artifactProxy);
- Assert.assertEquals(expectedCollector, collector);
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/OSGI-INF/access.model.interpreter.xml b/plugins/org.eclipse.osee.framework.core.dsl.integration/OSGI-INF/access.model.interpreter.xml
deleted file mode 100644
index 1ca5d47756..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/OSGI-INF/access.model.interpreter.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.framework.core.dsl.integration.internal.AccessModelInterpreterProxy"/>
- <service>
- <provide interface="org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter"/>
- </service>
- <reference bind="setArtifactDataProvider" cardinality="1..1" interface="org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider" name="ArtifactDataProvider" policy="static"/>
- <reference cardinality="1..1" interface="org.eclipse.core.resources.IWorkspace" name="IWorkspace" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/AccessDataCollector.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/AccessDataCollector.java
deleted file mode 100644
index ffff89ed23..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/AccessDataCollector.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2020 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration;
-
-import java.util.LinkedList;
-import java.util.List;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-
-/**
- * @author Ryan D. Brooks
- */
-public final class AccessDataCollector implements AccessDetailCollector {
- private final List<AccessDetail<?>> accessDetails;
-
- public AccessDataCollector() {
- this.accessDetails = new LinkedList<>();
- }
-
- @Override
- public void collect(AccessDetail<?> accessDetail) {
- if (accessDetail != null) {
- accessDetails.add(accessDetail);
- }
- }
-
- @Override
- public List<AccessDetail<?>> getAccessDetails() {
- return accessDetails;
- }
-
- @Override
- public boolean contains(Object expectedAccessObject, PermissionEnum expectedPermission, Scope expectedScopeLevel) {
- for (AccessDetail<?> accessDetail : accessDetails) {
- if (expectedPermission.equals(accessDetail.getPermission()) && expectedAccessObject.equals(
- accessDetail.getAccessObject()) && expectedScopeLevel.equals(accessDetail.getScope())) {
- return true;
- }
- }
- return false;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/AccessModelInterpreter.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/AccessModelInterpreter.java
deleted file mode 100644
index ab829cc31c..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/AccessModelInterpreter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessContext;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface AccessModelInterpreter {
-
- AccessContext getContext(Collection<AccessContext> contexts, AccessContextToken contextId);
-
- void computeAccessDetails(AccessDetailCollector collector, AccessContext context, Object objectToCheck);
-
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/OseeDslAccessModel.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/OseeDslAccessModel.java
deleted file mode 100644
index 13a958c4e0..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/OseeDslAccessModel.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessContext;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.OseeDsl;
-import org.eclipse.osee.framework.core.model.access.AccessModel;
-import org.eclipse.osee.framework.jdk.core.util.Conditions;
-
-/**
- * @author Roberto E. Escobar
- */
-public class OseeDslAccessModel implements AccessModel {
- private final AccessModelInterpreter interpreter;
- private final OseeDslProvider dslProvider;
-
- public OseeDslAccessModel(AccessModelInterpreter interpreter, OseeDslProvider dslProvider) {
- this.interpreter = interpreter;
- this.dslProvider = dslProvider;
- }
-
- @Override
- public void computeAccess(AccessContextToken contextId, Collection<Object> objectsToCheck, AccessData accessData) {
- Conditions.checkNotNull(contextId, "contextId");
- Conditions.checkNotNull(objectsToCheck, "objectsToCheck");
- Conditions.checkNotNull(accessData, "accessData");
-
- OseeDsl oseeDsl = dslProvider.getDsl();
- Conditions.checkNotNull(oseeDsl, "oseeDsl", "dsl provider returned null");
-
- Collection<AccessContext> contexts = oseeDsl.getAccessDeclarations();
- AccessContext context = interpreter.getContext(contexts, contextId);
- Conditions.checkNotNull(context, "interpreted accessContext",
- "No matching access context was found in access dsl for [%s]", contextId);
-
- for (Object objectToCheck : objectsToCheck) {
- AccessDetailCollector collector = new AccessDataCollector();
- interpreter.computeAccessDetails(collector, context, objectToCheck);
- accessData.addAll(objectToCheck, collector.getAccessDetails());
- }
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/RestrictionHandler.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/RestrictionHandler.java
deleted file mode 100644
index 2c3c34aa73..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/RestrictionHandler.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration;
-
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface RestrictionHandler<T> {
- public T asCastedObject(ObjectRestriction objectRestriction);
-
- public void process(ObjectRestriction objectRestriction, ArtifactProxy artifactProxy, AccessDetailCollector collector, Scope scopeLevel);
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterImpl.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterImpl.java
deleted file mode 100644
index 56658f1e1f..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterImpl.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import java.util.Collection;
-import java.util.HashSet;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessContext;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.HierarchyRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactMatcher;
-import org.eclipse.osee.framework.jdk.core.util.Conditions;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AccessModelInterpreterImpl implements AccessModelInterpreter {
-
- private final ArtifactDataProvider provider;
- private final ArtifactMatchInterpreter matcher;
- private final Collection<RestrictionHandler<?>> restrictionHandlers;
-
- public AccessModelInterpreterImpl(ArtifactDataProvider provider, ArtifactMatchInterpreter matcher, RestrictionHandler<?>... restricitionHandlers) {
- this.provider = provider;
- this.matcher = matcher;
- this.restrictionHandlers = new HashSet<>();
- for (RestrictionHandler<?> handler : restricitionHandlers) {
- restrictionHandlers.add(handler);
- }
- }
-
- @Override
- public AccessContext getContext(Collection<AccessContext> contexts, AccessContextToken contextId) {
- Conditions.checkNotNull(contexts, "accessContext collection");
- Conditions.checkNotNull(contextId, "accessContextId");
- AccessContext toReturn = null;
- for (AccessContext accessContext : contexts) {
- if (contextId.equals(Long.valueOf(Strings.unquote(accessContext.getId())))) {
- toReturn = accessContext;
- }
- }
- return toReturn;
- }
-
- @Override
- public void computeAccessDetails(AccessDetailCollector collector, AccessContext context, Object objectToCheck) {
- Conditions.checkNotNull(collector, "accessDetailCollector");
- Conditions.checkNotNull(context, "accessContext");
- Conditions.checkNotNull(objectToCheck, "objectToCheck");
-
- if (provider.isApplicable(objectToCheck)) {
- ArtifactProxy data = provider.asCastedObject(objectToCheck);
- Conditions.checkNotNull(data, "artifactData",
- "artifact data provider returned null - provider has an isApplicable error");
-
- collectApplicable(collector, context, data);
- }
- }
-
- private void collectApplicable(AccessDetailCollector collector, AccessContext context, ArtifactProxy artifactData) {
- Scope scope = getScope(context);
- processContext(collector, context, artifactData, scope);
-
- for (AccessContext superContext : context.getSuperAccessContexts()) {
- collectApplicable(collector, superContext, artifactData);
- }
- }
-
- private Scope getScope(AccessContext context) {
- Scope scope = new Scope();
- scopeHelper(scope, context);
- return scope;
- }
-
- private void scopeHelper(Scope scope, AccessContext context) {
- for (AccessContext parent : context.getSuperAccessContexts()) {
- scopeHelper(scope, parent);
- }
- scope.add(context.getName());
- }
-
- private void processContext(AccessDetailCollector collector, AccessContext context, ArtifactProxy artifactData, Scope scope) {
- collectRestrictions(collector, artifactData, context.getAccessRules(), scope);
-
- Collection<HierarchyRestriction> restrictions = context.getHierarchyRestrictions();
- Collection<ArtifactProxy> proxyHierarchy = artifactData.getHierarchy();
-
- for (HierarchyRestriction hierarchy : restrictions) {
- XArtifactMatcher artifactRef = hierarchy.getArtifactMatcherRef();
- if (matcher.matches(artifactRef, proxyHierarchy)) {
- String tag = String.format("childOf-%s", artifactRef.getName());
- Scope child = scope.clone().addSubPath(tag);
- collectRestrictions(collector, artifactData, hierarchy.getAccessRules(), child);
- }
- }
- }
-
- private void collectRestrictions(AccessDetailCollector collector, ArtifactProxy artifactData, Collection<ObjectRestriction> restrictions, Scope scope) {
- for (ObjectRestriction objectRestriction : restrictions) {
- for (RestrictionHandler<?> restrictionHandler : restrictionHandlers) {
- restrictionHandler.process(objectRestriction, artifactData, collector, scope);
- }
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterProxy.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterProxy.java
deleted file mode 100644
index f0e28cf955..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AccessModelInterpreterProxy.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-import org.eclipse.osee.framework.core.dsl.integration.AccessModelInterpreter;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider;
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AccessContext;
-import org.eclipse.osee.framework.jdk.core.util.Conditions;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AccessModelInterpreterProxy implements AccessModelInterpreter {
-
- private ArtifactDataProvider artifactDataProvider;
- private AccessModelInterpreter proxiedService;
-
- public void setArtifactDataProvider(ArtifactDataProvider artifactDataProvider) {
- this.artifactDataProvider = artifactDataProvider;
- }
-
- public void start() {
- // Do Nothing
- }
-
- public void stop() {
- proxiedService = null;
- }
-
- private boolean isReady() {
- return artifactDataProvider != null;
- }
-
- private synchronized AccessModelInterpreter getProxiedService() {
- if (isReady() && proxiedService == null) {
- ArtifactMatchInterpreter matcher = new ArtifactMatchInterpreter();
-
- RestrictionHandler<?>[] restrictionHandlers = new RestrictionHandler<?>[] {
- new ArtifactMatchRestrictionHandler(matcher),
- new ArtifactTypeRestrictionHandler(),
- new AttributeTypeRestrictionHandler(),
- new RelationTypeRestrictionHandler(matcher)};
-
- proxiedService = new AccessModelInterpreterImpl(artifactDataProvider, matcher, restrictionHandlers);
- }
- return proxiedService;
- }
-
- private void checkInitialized() {
- Conditions.checkNotNull(getProxiedService(), "AccessModelInterpreter");
- }
-
- @Override
- public AccessContext getContext(Collection<AccessContext> contexts, AccessContextToken contextId) {
- checkInitialized();
- return getProxiedService().getContext(contexts, contextId);
- }
-
- @Override
- public void computeAccessDetails(AccessDetailCollector collector, AccessContext context, Object objectToCheck) {
- checkInitialized();
- getProxiedService().computeAccessDetails(collector, context, objectToCheck);
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchRestrictionHandler.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchRestrictionHandler.java
deleted file mode 100644
index 1b8b8baeb1..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactMatchRestrictionHandler.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ArtifactMatchRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactMatcher;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ArtifactMatchRestrictionHandler implements RestrictionHandler<ArtifactMatchRestriction> {
-
- private final ArtifactMatchInterpreter matcherInterpreter;
-
- public ArtifactMatchRestrictionHandler(ArtifactMatchInterpreter matcherInterpreter) {
- this.matcherInterpreter = matcherInterpreter;
- }
-
- @Override
- public ArtifactMatchRestriction asCastedObject(ObjectRestriction objectRestriction) {
- ArtifactMatchRestriction toReturn = null;
- if (objectRestriction instanceof ArtifactMatchRestriction) {
- toReturn = (ArtifactMatchRestriction) objectRestriction;
- }
- return toReturn;
- }
-
- @Override
- public void process(ObjectRestriction objectRestriction, ArtifactProxy artifactProxy, AccessDetailCollector collector, Scope scope) {
- ArtifactMatchRestriction restriction = asCastedObject(objectRestriction);
- if (restriction != null) {
- XArtifactMatcher artifactMatcher = restriction.getArtifactMatcherRef();
- if (matcherInterpreter.matches(artifactMatcher, artifactProxy)) {
- PermissionEnum permission = OseeUtil.getPermission(restriction);
- collector.collect(new AccessDetail<>(artifactProxy, permission, scope));
- }
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactTypeRestrictionHandler.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactTypeRestrictionHandler.java
deleted file mode 100644
index c16266e796..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/ArtifactTypeRestrictionHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ArtifactTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactType;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ArtifactTypeRestrictionHandler implements RestrictionHandler<ArtifactTypeRestriction> {
-
- @Override
- public ArtifactTypeRestriction asCastedObject(ObjectRestriction objectRestriction) {
- ArtifactTypeRestriction toReturn = null;
- if (objectRestriction instanceof ArtifactTypeRestriction) {
- toReturn = (ArtifactTypeRestriction) objectRestriction;
- }
- return toReturn;
- }
-
- @Override
- public void process(ObjectRestriction objectRestriction, ArtifactProxy artifactProxy, AccessDetailCollector collector, Scope scope) {
- ArtifactTypeRestriction restriction = asCastedObject(objectRestriction);
- if (restriction != null) {
- XArtifactType artifactTypeRef = restriction.getArtifactTypeRef();
- ArtifactTypeToken typeToMatch = OseeUtil.toToken(artifactTypeRef);
-
- if (artifactProxy.isOfType(typeToMatch)) {
- PermissionEnum permission = OseeUtil.getPermission(restriction);
- collector.collect(new AccessDetail<ArtifactTypeToken>(artifactProxy.getArtifactType(), permission, scope));
- }
- }
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AttributeTypeRestrictionHandler.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AttributeTypeRestrictionHandler.java
deleted file mode 100644
index f9fc9e43a9..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/AttributeTypeRestrictionHandler.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.AttributeTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactType;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XAttributeType;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AttributeTypeRestrictionHandler implements RestrictionHandler<AttributeTypeRestriction> {
-
- @Override
- public AttributeTypeRestriction asCastedObject(ObjectRestriction objectRestriction) {
- AttributeTypeRestriction toReturn = null;
- if (objectRestriction instanceof AttributeTypeRestriction) {
- toReturn = (AttributeTypeRestriction) objectRestriction;
- }
- return toReturn;
- }
-
- @Override
- public void process(ObjectRestriction objectRestriction, ArtifactProxy artifactProxy, AccessDetailCollector collector, Scope scopeLevel) {
- AttributeTypeRestriction restriction = asCastedObject(objectRestriction);
- if (restriction != null) {
- XAttributeType attributeTypeRef = restriction.getAttributeTypeRef();
- AttributeTypeId attributeTypeToMatch = OseeUtil.toToken(attributeTypeRef);
- boolean isApplicable = artifactProxy.isAttributeTypeValid(attributeTypeToMatch);
- if (isApplicable) {
- XArtifactType artifactTypeRef = restriction.getArtifactTypeRef();
- if (artifactTypeRef != null) {
- isApplicable = false;
- ArtifactTypeToken typeToMatch = OseeUtil.toToken(artifactTypeRef);
- isApplicable = artifactProxy.isOfType(typeToMatch);
- }
- }
-
- if (isApplicable) {
- PermissionEnum permission = OseeUtil.getPermission(restriction);
- collector.collect(new AccessDetail<>(attributeTypeToMatch, permission, scopeLevel));
- }
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/RelationTypeRestrictionHandler.java b/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/RelationTypeRestrictionHandler.java
deleted file mode 100644
index f24df33c37..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl.integration/src/org/eclipse/osee/framework/core/dsl/integration/internal/RelationTypeRestrictionHandler.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.dsl.integration.internal;
-
-import java.util.Collection;
-import java.util.Collections;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.AccessDetailCollector;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
-import org.eclipse.osee.framework.core.data.RelationTypeSide;
-import org.eclipse.osee.framework.core.data.RelationTypeToken;
-import org.eclipse.osee.framework.core.dsl.integration.ArtifactDataProvider.ArtifactProxy;
-import org.eclipse.osee.framework.core.dsl.integration.RestrictionHandler;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.ObjectRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationTypeArtifactPredicate;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationTypeArtifactTypePredicate;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationTypePredicate;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.RelationTypeRestriction;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactMatcher;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XArtifactType;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XRelationSideEnum;
-import org.eclipse.osee.framework.core.dsl.oseeDsl.XRelationType;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.enums.RelationSide;
-
-/**
- * @author Roberto E. Escobar
- */
-public class RelationTypeRestrictionHandler implements RestrictionHandler<RelationTypeRestriction> {
-
- private final ArtifactMatchInterpreter matcherInterpreter;
-
- public RelationTypeRestrictionHandler(ArtifactMatchInterpreter matcherInterpreter) {
- this.matcherInterpreter = matcherInterpreter;
- }
-
- @Override
- public RelationTypeRestriction asCastedObject(ObjectRestriction objectRestriction) {
- RelationTypeRestriction toReturn = null;
- if (objectRestriction instanceof RelationTypeRestriction) {
- toReturn = (RelationTypeRestriction) objectRestriction;
- }
- return toReturn;
- }
-
- @Override
- public void process(ObjectRestriction objectRestriction, ArtifactProxy artifactProxy, AccessDetailCollector collector, Scope scope) {
- RelationTypeRestriction restriction = asCastedObject(objectRestriction);
- if (restriction != null) {
- XRelationSideEnum restrictedSide = restriction.getRestrictedToSide();
-
- Scope toUse = scope;
-
- RelationTypePredicate predicate = restriction.getPredicate();
- if (predicate instanceof RelationTypeArtifactPredicate) {
- RelationTypeArtifactPredicate artifactPredicate = (RelationTypeArtifactPredicate) predicate;
- XArtifactMatcher artifactMatcher = artifactPredicate.getArtifactMatcherRef();
-
- if (artifactMatcher != null && matcherInterpreter != null) {
- if (matcherInterpreter.matches(artifactMatcher, artifactProxy)) {
- toUse = scope.clone().addSubPath(artifactProxy.getName());
- }
- }
- } else if (predicate instanceof RelationTypeArtifactTypePredicate) {
- RelationTypeArtifactTypePredicate artifactTypePredicate = (RelationTypeArtifactTypePredicate) predicate;
- XArtifactType artifactTypeRef = artifactTypePredicate.getArtifactTypeRef();
- if (artifactTypeRef != null) {
- ArtifactTypeToken ruleType =
- ArtifactTypeToken.valueOf(Long.valueOf(artifactTypeRef.getId()), artifactTypeRef.getName());
- if (artifactProxy.isOfType(ruleType)) {
- toUse = scope.clone().addSubPath(artifactProxy.getName());
- }
- }
- }
-
- Collection<RelationTypeToken> relationTypes = getRelationTypes(artifactProxy, restriction);
- PermissionEnum permission = OseeUtil.getPermission(restriction);
-
- for (RelationTypeToken relationType : relationTypes) {
- for (RelationSide relationSide : RelationSide.values()) {
- if (OseeUtil.isRestrictedSide(restrictedSide, relationSide)) {
- collector.collect(
- new AccessDetail<>(new RelationTypeSide(relationType, relationSide), permission, toUse));
- }
- }
- }
- }
- }
-
- private Collection<RelationTypeToken> getRelationTypes(ArtifactProxy artifactProxy, RelationTypeRestriction restriction) {
- Collection<RelationTypeToken> types;
- if (restriction.isRelationTypeMatch()) {
- types = artifactProxy.getValidRelationTypes();
- } else {
- XRelationType xRelationType = restriction.getRelationTypeRef();
- Long typeToMatch = OseeUtil.checkAndGetUuid(xRelationType);
- RelationTypeToken relationType = getRelationType(typeToMatch, artifactProxy);
- if (relationType != null) {
- types = Collections.singleton(relationType);
- } else {
- types = Collections.emptyList();
- }
- }
- return types;
- }
-
- private RelationTypeToken getRelationType(Long typeToMatch, ArtifactProxy artifactProxy) {
- RelationTypeToken toReturn = null;
- Collection<RelationTypeToken> relationTypes = artifactProxy.getValidRelationTypes();
- for (RelationTypeToken relationType : relationTypes) {
- if (relationType.equals(typeToMatch)) {
- toReturn = relationType;
- break;
- }
- }
- return toReturn;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/GenerateOseeDsl.mwe2 b/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/GenerateOseeDsl.mwe2
deleted file mode 100644
index 8348c701ad..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/GenerateOseeDsl.mwe2
+++ /dev/null
@@ -1,126 +0,0 @@
-module org.eclipse.osee.framework.core.dsl.OseeDsl
-
-import org.eclipse.emf.mwe.utils.*
-import org.eclipse.xtext.generator.*
-import org.eclipse.xtext.ui.generator.*
-
-var grammarURI = "classpath:/org/eclipse/osee/framework/core/dsl/OseeDsl.xtext"
-var file.extensions = "osee"
-var projectName = "org.eclipse.osee.framework.core.dsl"
-var runtimeProject = "../${projectName}"
-
-Workflow {
- bean = StandaloneSetup {
- platformUri = "${runtimeProject}/.."
- }
-
- component = DirectoryCleaner {
- directory = "${runtimeProject}/src-gen"
- }
-
- component = DirectoryCleaner {
- directory = "${runtimeProject}.ui/src-gen"
- }
-
- component = Generator {
- pathRtProject = runtimeProject
- pathUiProject = "${runtimeProject}.ui"
- projectNameRt = projectName
- projectNameUi = "${projectName}.ui"
- language = {
- uri = grammarURI
- fileExtensions = file.extensions
-
- // Java API to access grammar elements (required by several other fragments)
- fragment = grammarAccess.GrammarAccessFragment {}
-
- // generates Java API for the generated EPackages
- fragment = ecore.EcoreGeneratorFragment {
- // referencedGenModels = "uri to genmodel, uri to next genmodel"
- }
-
- fragment = serializer.SerializerFragment {
- generateStub = false
- }
-
- // the serialization component
- // fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
-
- // a custom ResourceFactory for use with EMF
- fragment = resourceFactory.ResourceFactoryFragment {
- fileExtensions = file.extensions
- }
-
- // The antlr parser generator fragment.
- fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
- antlrParam = "-Xconversiontimeout"
- antlrParam = "200000"// options = {
-// backtrack = true
-// }
- }
-
- // java-based API for validation
- fragment = validation.JavaValidatorFragment {
- composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
- composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"// registerForImportedPackages = true
- }
-
- // scoping and exporting API
- // fragment = scoping.ImportURIScopingFragment {}
- // fragment = exporting.SimpleNamesFragment {}
-
- // scoping and exporting API
- fragment = scoping.ImportNamespacesScopingFragment {}
- fragment = exporting.QualifiedNamesFragment {}
- fragment = builder.BuilderIntegrationFragment {}
-
- // generator API
- fragment = generator.GeneratorFragment {
- generateMwe = false
- generateJavaMain = false
- }
-
- // formatter API
- fragment = formatting.FormatterFragment {}
-
- // labeling API
- fragment = labeling.LabelProviderFragment {}
-
- // outline API
- fragment = outline.OutlineTreeProviderFragment {}
- fragment = outline.QuickOutlineFragment {}
-
- // quickfix API
- fragment = quickfix.QuickfixProviderFragment {}
-
- // content assist API
- fragment = contentAssist.JavaBasedContentAssistFragment {}
-
- // generates a more lightweight Antlr parser and lexer tailored for content assist
- fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {
- antlrParam = "-Xconversiontimeout"
- antlrParam = "200000"
- }
-
- // project wizard (optional)
- // fragment = projectWizard.SimpleProjectWizardFragment {
- // generatorProjectName = "${projectName}.generator"
- // modelFileExtension = file.extensions
- // }
-
- // renamerefactoring
- fragment = refactoring.RefactorElementNameFragment {}
- // provides the necessary bindings for java types integration
- fragment = types.TypesGeneratorFragment {}
- // generates the required bindings only if the grammar inherits fromXbase
- fragment = xbase.XbaseGeneratorFragment {}
- // provides a preference page for template proposals
- fragment = templates.CodetemplatesGeneratorFragment {}
- // provides a compare view
- fragment = compare.CompareFragment {
- fileExtensions = file.extensions
- }
-
- }
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/generator/OseeDslGenerator.xtend b/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/generator/OseeDslGenerator.xtend
deleted file mode 100644
index ea6d345095..0000000000
--- a/plugins/org.eclipse.osee.framework.core.dsl/src/org/eclipse/osee/framework/core/dsl/generator/OseeDslGenerator.xtend
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * generated by Xtext
- */
-package org.eclipse.osee.framework.core.dsl.generator
-
-import org.eclipse.emf.ecore.resource.Resource
-import org.eclipse.xtext.generator.IGenerator
-import org.eclipse.xtext.generator.IFileSystemAccess
-
-/**
- * Generates code from your model files on save.
- *
- * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
- */
-class OseeDslGenerator implements IGenerator {
-
- override void doGenerate(Resource resource, IFileSystemAccess fsa) {
-// fsa.generateFile('greetings.txt', 'People to greet: ' +
-// resource.allContents
-// .filter(typeof(Greeting))
-// .map[name]
-// .join(', '))
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDataQueryTest.java b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDataQueryTest.java
deleted file mode 100644
index 031dac1a34..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDataQueryTest.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.model.access;
-
-import static org.eclipse.osee.framework.core.enums.CoreArtifactTypes.Folder;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.access.AccessDataQuery;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.BranchToken;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.core.enums.CoreBranches;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.model.mocks.MockDataFactory;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Test Case for {@link AccessDataQuery}
- *
- * @author Jeff C. Phillips
- */
-public class AccessDataQueryTest {
-
- @Test
- public void testBranch() {
- BranchId branchToCheck = CoreBranches.SYSTEM_ROOT;
-
- TestObject testObject = getTestData();
- AccessData data = testObject.getAccessData();
-
- AccessDataQuery query = new AccessDataQuery(data);
- PermissionStatus status = new PermissionStatus();
-
- query.branchMatches(PermissionEnum.WRITE, branchToCheck, status);
- Assert.assertTrue(status.matched());
-
- query.branchMatches(PermissionEnum.FULLACCESS, branchToCheck, status);
- Assert.assertFalse(status.matched());
- }
-
- @Test
- public void testArtifactType() {
- TestObject testObject = getTestData();
- AccessData data = testObject.getAccessData();
- ArtifactToken artifactToCheck = testObject.getArtifact();
-
- AccessDataQuery query = new AccessDataQuery(data);
- PermissionStatus status = new PermissionStatus();
-
- query.artifactTypeMatches(PermissionEnum.WRITE, artifactToCheck, status);
- Assert.assertTrue(status.matched());
-
- query.artifactTypeMatches(PermissionEnum.FULLACCESS, artifactToCheck, status);
- Assert.assertFalse(status.matched());
- }
-
- @Test
- public void testArtifact() {
- TestObject testObject = getTestData();
- AccessData data = testObject.getAccessData();
- ArtifactToken artifactToCheck = testObject.getArtifact();
-
- AccessDataQuery query = new AccessDataQuery(data);
- PermissionStatus status = new PermissionStatus();
-
- query.artifactMatches(PermissionEnum.WRITE, artifactToCheck, status);
- Assert.assertTrue(status.matched());
- }
-
- @Test
- public void testAttributeType() {
- TestObject testObject = getTestData();
- AccessData data = testObject.getAccessData();
- ArtifactToken artifactToCheck = testObject.getArtifact();
-
- AttributeTypeId attributeType = CoreAttributeTypes.ParagraphNumber;
- AttributeTypeId wordAttributeType = CoreAttributeTypes.WordTemplateContent;
-
- data.add(artifactToCheck, new AccessDetail<>(attributeType, PermissionEnum.WRITE, new Scope()));
- data.add(artifactToCheck, new AccessDetail<>(wordAttributeType, PermissionEnum.READ, new Scope()));
-
- AccessDataQuery query = new AccessDataQuery(data);
- PermissionStatus status = new PermissionStatus();
-
- query.artifactMatches(PermissionEnum.WRITE, artifactToCheck, status);
- Assert.assertTrue(status.matched());
-
- query.attributeTypeMatches(PermissionEnum.READ, artifactToCheck, wordAttributeType, status);
- Assert.assertTrue(status.matched());
-
- query.attributeTypeMatches(PermissionEnum.WRITE, artifactToCheck, wordAttributeType, status);
- Assert.assertFalse(status.matched());
-
- query.artifactTypeMatches(PermissionEnum.WRITE, artifactToCheck, status);
- Assert.assertTrue(status.matched());
-
- query.artifactTypeMatches(PermissionEnum.FULLACCESS, artifactToCheck, status);
- Assert.assertFalse(status.matched());
- }
-
- @Test
- public void testArtifactMatchesAll() {
- AccessData data = new AccessData();
- BranchToken branch = CoreBranches.COMMON;
- ArtifactTypeToken artifactType = CoreArtifactTypes.AbstractSoftwareRequirement;
-
- ArtifactToken artifact1 = ArtifactToken.valueOf(1, "one", branch, artifactType);
- ArtifactToken artifact2 = ArtifactToken.valueOf(2, "two", branch, artifactType);
-
- data.add(artifact1, new AccessDetail<>(artifact1, PermissionEnum.READ, new Scope()));
- data.add(artifact2, new AccessDetail<>(artifact2, PermissionEnum.WRITE, new Scope()));
-
- AccessDataQuery query = new AccessDataQuery(data);
-
- Assert.assertTrue(query.matchesAll(PermissionEnum.READ));
- Assert.assertFalse(query.matchesAll(PermissionEnum.WRITE));
- }
-
- @Test
- public void testBranchMatchesAll() {
- AccessData data = new AccessData();
- BranchId common = CoreBranches.COMMON;
- BranchId branch = CoreBranches.SYSTEM_ROOT;
-
- data.add(common, new AccessDetail<>(common, PermissionEnum.READ, new Scope()));
- data.add(branch, new AccessDetail<>(branch, PermissionEnum.WRITE, new Scope()));
-
- AccessDataQuery query = new AccessDataQuery(data);
-
- Assert.assertTrue(query.matchesAll(PermissionEnum.READ));
- Assert.assertFalse(query.matchesAll(PermissionEnum.WRITE));
- }
-
- @Test
- public void testArtifactMatches() {
- BranchToken branch = CoreBranches.COMMON;
- ArtifactToken accessArtifact = ArtifactToken.valueOf(45, "test1", branch, Folder);
- ArtifactToken typeAccessArtifact = ArtifactToken.valueOf(46, "test2", branch, Folder);
- ArtifactToken noAccessArtifact = ArtifactToken.valueOf(47, "test3", branch, Folder);
- ArtifactTypeToken artType = CoreArtifactTypes.Folder;
-
- AccessDetail<?> specificArtDetail = MockDataFactory.createAccessDetails(accessArtifact, PermissionEnum.DENY, "",
- new Scope().add("very").add("specific"));
- AccessDetail<?> legacyArtDetail =
- MockDataFactory.createAccessDetails(accessArtifact, PermissionEnum.FULLACCESS, "", Scope.createLegacyScope());
- AccessDetail<?> typeDetail =
- MockDataFactory.createAccessDetails(artType, PermissionEnum.WRITE, "", new Scope().add("very"));
-
- AccessData data = new AccessData();
- data.add(accessArtifact, specificArtDetail);
- data.add(accessArtifact, legacyArtDetail);
- data.add(accessArtifact, typeDetail);
- data.add(typeAccessArtifact, typeDetail);
-
- AccessDataQuery query = new AccessDataQuery(data);
- PermissionStatus ps = new PermissionStatus();
- query.artifactMatches(PermissionEnum.WRITE, accessArtifact, ps);
- Assert.assertFalse(ps.matched());
-
- ps = new PermissionStatus();
- query.artifactMatches(PermissionEnum.WRITE, typeAccessArtifact, ps);
- Assert.assertTrue(ps.matched());
-
- ps = new PermissionStatus();
- query.artifactMatches(PermissionEnum.WRITE, noAccessArtifact, ps);
- Assert.assertTrue(ps.matched());
- }
-
- private TestObject getTestData() {
- BranchToken branchToCheck = CoreBranches.SYSTEM_ROOT;
- ArtifactTypeToken artifactType = CoreArtifactTypes.AbstractSoftwareRequirement;
- ArtifactToken artifactToCheck = ArtifactToken.valueOf(12, "Hello", branchToCheck, artifactType);
- AccessData data = new AccessData();
-
- data.add(branchToCheck, new AccessDetail<BranchId>(branchToCheck, PermissionEnum.WRITE, new Scope()));
- data.add(artifactToCheck, new AccessDetail<>(artifactToCheck, PermissionEnum.WRITE, new Scope()));
- data.add(artifactToCheck, new AccessDetail<>(artifactType, PermissionEnum.WRITE, new Scope()));
-
- return new TestObject(artifactToCheck, data);
- }
-
- private class TestObject {
- final ArtifactToken artifact;
- final AccessData accessData;
-
- public TestObject(ArtifactToken artifact, AccessData accessData) {
- super();
- this.artifact = artifact;
- this.accessData = accessData;
- }
-
- public ArtifactToken getArtifact() {
- return artifact;
- }
-
- public AccessData getAccessData() {
- return accessData;
- }
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDataTest.java b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDataTest.java
deleted file mode 100644
index e7639ca8a1..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDataTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.model.access;
-
-import static org.eclipse.osee.framework.core.enums.CoreBranches.COMMON;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.RelationTypeSide;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.core.enums.CoreBranches;
-import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.enums.RelationSide;
-import org.eclipse.osee.framework.core.model.mocks.MockDataFactory;
-import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
-import org.eclipse.osee.framework.jdk.core.util.Compare;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Test Case for {@link AccessData}
- *
- * @author Roberto E. Escobar
- */
-public class AccessDataTest {
-
- private BranchId branchToCheck1;
- private BranchId branchToCheck2;
- private ArtifactTypeToken artifactType;
- private AttributeTypeId attributeType;
- private AttributeTypeId wordAttributeType;
-
- private RelationTypeSide relTypeSide1;
- private RelationTypeSide relTypeSide2;
-
- private ArtifactToken artifactToCheck;
-
- @Before
- public void setup() {
- branchToCheck1 = CoreBranches.SYSTEM_ROOT;
- branchToCheck2 = CoreBranches.COMMON;
-
- artifactType = CoreArtifactTypes.AbstractSoftwareRequirement;
- attributeType = CoreAttributeTypes.ParagraphNumber;
- wordAttributeType = CoreAttributeTypes.WordTemplateContent;
-
- relTypeSide1 = new RelationTypeSide(CoreRelationTypes.DEFAULT_HIERARCHY, RelationSide.SIDE_A);
- relTypeSide2 = new RelationTypeSide(CoreRelationTypes.DEFAULT_HIERARCHY, RelationSide.SIDE_B);
-
- artifactToCheck = ArtifactToken.valueOf(12, "Hello", COMMON);
- }
-
- @Test
- public void testIsEmpty() {
- AccessData data = new AccessData();
- Assert.assertTrue(data.isEmpty());
- data.add(new Object(), createDetail(7, new Object()));
- Assert.assertFalse(data.isEmpty());
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testAddNullCheck1() {
- AccessData data = new AccessData();
- data.add(null, createDetail(4, new Object()));
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testAddNullCheck2() {
- AccessData data = new AccessData();
- data.add(new Object(), null);
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testAddAllCheck1() {
- AccessData data = new AccessData();
- data.addAll(null, Collections.<AccessDetail<?>> emptyList());
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testAddAllCheck2() {
- AccessData data = new AccessData();
- data.addAll(new Object(), null);
- }
-
- @Test(expected = OseeArgumentException.class)
- public void testGetAccessNullCheck() {
- AccessData data = new AccessData();
- data.getAccess(null);
- }
-
- @Test
- public void testAddAll() {
- Collection<AccessDetail<?>> expectedDetails = new ArrayList<>();
- createTestObjects(expectedDetails, branchToCheck1, artifactType, attributeType, wordAttributeType,
- artifactToCheck, relTypeSide1, relTypeSide2, branchToCheck2);
-
- AccessData data = new AccessData();
- data.addAll(artifactToCheck, expectedDetails);
- Collection<AccessDetail<?>> actualDetails = data.getAccess(artifactToCheck);
- Assert.assertEquals(expectedDetails.size(), actualDetails.size());
- Assert.assertFalse(Compare.isDifferent(expectedDetails, actualDetails));
-
- for (AccessDetail<?> expectedDetail : expectedDetails) {
- AccessDetail<?> actualDetail = findObject(expectedDetail, actualDetails);
- Assert.assertEquals(expectedDetail, actualDetail);
- Assert.assertEquals(expectedDetail.getPermission(), actualDetail.getPermission());
- Assert.assertEquals(expectedDetail.getAccessObject(), actualDetail.getAccessObject());
- Assert.assertEquals(expectedDetail.getReason(), actualDetail.getReason());
- }
- }
-
- @Test
- public void testAccessDetailMerge() {
- AccessData data = new AccessData();
-
- AccessDetail<?> detail1 = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.DENY, "item 1 - deny",
- new Scope().add("same_scope"));
- AccessDetail<?> detail2 = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.WRITE,
- "item 2 - write", new Scope().add("same_scope"));
- data.add(artifactToCheck, detail1);
- data.add(artifactToCheck, detail2);
-
- Collection<AccessDetail<?>> details = data.getAccess(artifactToCheck);
- Assert.assertTrue(details.size() == 1);
- AccessDetail<?> actualDetail = details.iterator().next();
- Assert.assertEquals(detail1.getAccessObject(), actualDetail.getAccessObject());
- Assert.assertEquals(detail2.getAccessObject(), actualDetail.getAccessObject());
-
- Assert.assertEquals(PermissionEnum.DENY, actualDetail.getPermission());
- Assert.assertEquals("item 1 - deny", actualDetail.getReason());
- Assert.assertEquals("/same_scope", actualDetail.getScope().getPath());
- }
-
- @Test
- public void testAccessDetailMultipleKeys() {
- AccessDetail<?> detail1 = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.DENY, "item 1 - deny",
- new Scope().add("same_scope"));
- AccessDetail<?> detail2 = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.WRITE,
- "item 2 - write", new Scope().add("same_scope"));
-
- AccessData data = new AccessData();
- data.add(branchToCheck1, detail1);
- data.add(branchToCheck2, detail2);
-
- Set<Object> keys = data.keySet();
- Assert.assertEquals(2, keys.size());
- Assert.assertTrue(keys.contains(branchToCheck1));
- Assert.assertTrue(keys.contains(branchToCheck2));
-
- Collection<AccessDetail<?>> details = data.getAccess(branchToCheck1);
- Assert.assertTrue(details.size() == 1);
- AccessDetail<?> actualDetail = details.iterator().next();
- Assert.assertEquals(detail1, actualDetail);
-
- details = data.getAccess(branchToCheck2);
- Assert.assertTrue(details.size() == 1);
- actualDetail = details.iterator().next();
- Assert.assertEquals(detail2, actualDetail);
- Assert.assertEquals("/same_scope", actualDetail.getScope().getPath());
- }
-
- @Test
- public void testAccessDetailMultipleScopeLevels() {
- AccessDetail<?> detail1 = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.DENY, "item 1 - deny",
- new Scope().add("more").add("specific").add("scope"));
- AccessDetail<?> detail2 = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.WRITE,
- "item 2 - write", new Scope().add("less").add("specific"));
-
- AccessData data = new AccessData();
- data.add(branchToCheck1, detail1);
- data.add(branchToCheck1, detail2);
-
- Collection<AccessDetail<?>> details = data.getAccess(branchToCheck1);
- Assert.assertTrue(details.size() == 1);
- AccessDetail<?> actualDetail = details.iterator().next();
- Assert.assertEquals(detail1, actualDetail);
- Assert.assertEquals("/more/specific/scope", actualDetail.getScope().getPath());
- }
-
- @Test
- public void testAccessDetailLegacyScope() {
- AccessDetail<?> specificDetail = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.DENY,
- "item 1 - deny", new Scope().add("more").add("specific").add("scope"));
- AccessDetail<?> lessSpecificDetail = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.WRITE,
- "item 2 - write", new Scope().add("less").add("specific"));
- AccessDetail<?> legacyDetail = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.WRITE,
- "item 2 - write", Scope.createLegacyScope());
-
- AccessData data = new AccessData();
- data.add(branchToCheck1, specificDetail);
- data.add(branchToCheck1, legacyDetail);
- data.add(branchToCheck1, lessSpecificDetail);
-
- Collection<AccessDetail<?>> details = data.getAccess(branchToCheck1);
- Assert.assertTrue(details.size() == 1);
- AccessDetail<?> actualDetail = details.iterator().next();
- Assert.assertEquals(specificDetail, actualDetail);
- Assert.assertEquals("/more/specific/scope", actualDetail.getScope().getPath());
- Assert.assertEquals(PermissionEnum.DENY, actualDetail.getPermission());
- }
-
- @Test
- public void testToString() {
- AccessDetail<?> detail1 = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.DENY, "item 1 - deny",
- new Scope().add("scope 1"));
- AccessDetail<?> detail2 = MockDataFactory.createAccessDetails(relTypeSide1, PermissionEnum.WRITE,
- "item 2 - write", new Scope().add("scope 2"));
-
- AccessData data = new AccessData();
- Assert.assertEquals("accessData []", data.toString());
- data.add(branchToCheck1, detail1);
- data.add(branchToCheck2, detail2);
-
- String branch1 =
- "System Root Branch - AccessDetail [permission=DENY, scope=/scope_1, accessObject=RelationTypeSide [type=Default Hierarchical, side=SIDE_A], reason=item 1 - deny]";
- String branch2 =
- "Common - AccessDetail [permission=WRITE, scope=/scope_2, accessObject=RelationTypeSide [type=Default Hierarchical, side=SIDE_A], reason=item 2 - write]";
- String message = "accessData [\n\t%s,\n\t%s,\n]";
- String forward = String.format(message, branch1, branch2);
- String backward = String.format(message, branch2, branch1);
- Assert.assertTrue(data.toString().equals(forward) || data.toString().equals(backward));
- }
-
- private static AccessDetail<?> findObject(AccessDetail<?> item, Collection<AccessDetail<?>> details) {
- AccessDetail<?> toReturn = null;
- for (AccessDetail<?> detail : details) {
- if (item.equals(detail)) {
- toReturn = detail;
- break;
- }
- }
- return toReturn;
- }
-
- private static AccessDetail<?> createDetail(int index, Object expAccessObject) {
- PermissionEnum expPermission = PermissionEnum.values()[Math.abs(index % PermissionEnum.values().length)];
- return MockDataFactory.createAccessDetails(expAccessObject, expPermission, "reason: " + index,
- new Scope().add("scope: " + index));
- }
-
- private static void createTestObjects(Collection<AccessDetail<?>> expectedDetails, Object... objects) {
- int cnt = 1;
- for (Object expAccessObject : objects) {
- AccessDetail<?> detail = createDetail(cnt++, expAccessObject);
- expectedDetails.add(detail);
- }
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDetailTest.java b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDetailTest.java
deleted file mode 100644
index 3208f8c79c..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessDetailTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.model.access;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.Scope;
-import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
-import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.model.mocks.MockDataFactory;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-
-/**
- * Test Case for {@link AccessDetail}
- *
- * @author Roberto E. Escobar
- */
-@RunWith(Parameterized.class)
-public class AccessDetailTest {
-
- private final Object expAccessObject;
- private final PermissionEnum expPermission;
- private final String expReason;
- private final AccessDetail<?> target;
- private final Scope scope;
-
- public AccessDetailTest(AccessDetail<?> target, Object expAccessObject, PermissionEnum expPermission, String expReason, Scope scope) {
- this.target = target;
- this.expAccessObject = expAccessObject;
- this.expPermission = expPermission;
- this.expReason = expReason;
- this.scope = scope;
- }
-
- @Test
- public void testGetReason() {
- Assert.assertEquals(Strings.isValid(expReason) ? expReason : scope.getPath(), target.getReason());
- }
-
- @Test
- public void testGetPermission() {
- Assert.assertEquals(expPermission, target.getPermission());
- }
-
- @Test
- public void testGetAccessObject() {
- Assert.assertEquals(expAccessObject, target.getAccessObject());
- }
-
- @Test
- public void testSetPermission() {
- Assert.assertEquals(expPermission, target.getPermission());
- PermissionEnum anotherPermission = PermissionEnum.NONE;
-
- target.setPermission(anotherPermission);
- Assert.assertEquals(anotherPermission, target.getPermission());
-
- target.setPermission(expPermission);
- Assert.assertEquals(expPermission, target.getPermission());
- }
-
- @Test
- public void testHashCodeAndEquals() {
- Assert.assertTrue(target.equals(target));
- Assert.assertTrue(target.hashCode() == target.hashCode());
-
- AccessDetail<?> other =
- MockDataFactory.createAccessDetails(expAccessObject, PermissionEnum.NONE, null, new Scope().add("other"));
- Assert.assertTrue(target.equals(other));
- Assert.assertTrue(target.hashCode() == other.hashCode());
-
- AccessDetail<?> nulled =
- MockDataFactory.createAccessDetails(null, PermissionEnum.NONE, null, new Scope().add("nulled"));
- Assert.assertFalse(target.equals(nulled));
- Assert.assertTrue(target.hashCode() != nulled.hashCode());
-
- Collection<AccessDetail<?>> collect = new ArrayList<>();
- collect.add(target);
- Assert.assertEquals(1, collect.size());
- Assert.assertTrue(collect.contains(target));
- Assert.assertTrue(collect.contains(other));
- Assert.assertFalse(collect.contains(nulled));
- }
-
- @Test
- public void testToString() {
- String expected =
- "AccessDetail [permission=" + expPermission + ", scope=" + scope + ", accessObject=" + expAccessObject + ", reason=" + (Strings.isValid(
- expReason) ? expReason : scope) + "]";
- Assert.assertEquals(expected, target.toString());
- }
-
- @Parameters
- public static Collection<Object[]> getData() {
- Collection<Object[]> data = new ArrayList<>();
- addTest(data, "Hello", PermissionEnum.DENY, "A reason", new Scope().add("hello_scope"));
- addTest(data, 456, PermissionEnum.WRITE, null, new Scope().add("456_scope"));
- addTest(data, CoreArtifactTypes.TestUnit, PermissionEnum.FULLACCESS, "reason3", new Scope());
- addTest(data, CoreAttributeTypes.Name, PermissionEnum.READ, "xx", new Scope().add("xx"));
- return data;
- }
-
- private static <T> void addTest(Collection<Object[]> data, T expAccessObject, PermissionEnum expPermission, String expReason, Scope scope) {
- String reasonToCheck = expReason;
- if (expReason == null) {
- reasonToCheck = Strings.emptyString();
- }
- AccessDetail<T> target = MockDataFactory.createAccessDetails(expAccessObject, expPermission, expReason, scope);
- data.add(new Object[] {target, expAccessObject, expPermission, reasonToCheck, scope});
- }
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessTestSuite.java b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessTestSuite.java
index d35ee07200..0ebf57a96d 100644
--- a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessTestSuite.java
+++ b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/AccessTestSuite.java
@@ -18,11 +18,7 @@ import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({//
- AccessDataTest.class, //
- AccessDataQueryTest.class, //
- AccessDetailTest.class, //
PermissionStatusTest.class, //
- ScopeTest.class, //
})
/**
* @author Roberto E. Escobar
diff --git a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/ScopeTest.java b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/ScopeTest.java
deleted file mode 100644
index 4e4a937042..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/access/ScopeTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.model.access;
-
-import org.eclipse.osee.framework.core.access.Scope;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * @author John R. Misinco
- */
-public class ScopeTest {
-
- @Test
- public void testGetPath() {
- Scope scope = new Scope();
- scope.add("foo");
- scope.add("bar bar");
- scope.addSubPath("baz");
- String expectedPath = "/foo/bar_bar#baz";
- Assert.assertEquals(expectedPath, scope.getPath());
- }
-
- @Test
- public void testEquals() {
- Scope legacyScopeA = Scope.createLegacyScope();
- Scope legacyScopeB = Scope.createLegacyScope();
- legacyScopeA.add("foo");
- legacyScopeB.addSubPath("bar");
- Assert.assertTrue(legacyScopeA.equals(legacyScopeB));
-
- Scope scopeA = new Scope();
- Scope scopeB = new Scope();
- scopeA.add("foo");
- scopeA.addSubPath("bar");
- scopeA.add("baz");
- scopeB.add("foo");
- scopeB.addSubPath("bar");
- scopeB.add("baz");
- Assert.assertTrue(scopeA.equals(scopeB));
-
- Scope scopeC = new Scope();
- Assert.assertFalse(legacyScopeA.equals(scopeA));
- Assert.assertFalse(legacyScopeA.equals(scopeC));
- }
-
- @Test
- public void testIsLegacy() {
- Scope legacyScope = Scope.createLegacyScope();
- Scope scope = new Scope();
- legacyScope.add("foo");
- legacyScope.addSubPath("bar");
- String expectedScope = "##";
- Assert.assertEquals(expectedScope, legacyScope.getPath());
- Assert.assertTrue(legacyScope.isLegacy());
- Assert.assertFalse(scope.isLegacy());
- }
-
- @Test
- public void testClone() {
- Scope scope = new Scope();
- Scope legacyScope = Scope.createLegacyScope();
-
- scope.add("foo").add("bar").addSubPath("baz").addSubPath("baz");
- Scope scopeClone = scope.clone();
- Assert.assertEquals(scope, scopeClone);
-
- scopeClone = legacyScope.clone();
- Assert.assertTrue(legacyScope.equals(scopeClone));
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/mocks/MockDataFactory.java b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/mocks/MockDataFactory.java
index b06dacc110..527c7585b4 100644
--- a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/mocks/MockDataFactory.java
+++ b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/mocks/MockDataFactory.java
@@ -14,12 +14,9 @@
package org.eclipse.osee.framework.core.model.mocks;
import java.util.Date;
-import org.eclipse.osee.framework.core.access.AccessDetail;
-import org.eclipse.osee.framework.core.access.Scope;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.DemoUsers;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.TransactionDetailsType;
import org.eclipse.osee.framework.core.model.TransactionRecord;
@@ -31,16 +28,6 @@ public final class MockDataFactory {
// Utility Class
}
- public static <T> AccessDetail<T> createAccessDetails(T expAccessObject, PermissionEnum expPermission, String expReason, Scope scope) {
- AccessDetail<T> target;
- if (expReason != null) {
- target = new AccessDetail<>(expAccessObject, expPermission, scope, expReason);
- } else {
- target = new AccessDetail<>(expAccessObject, expPermission, scope);
- }
- return target;
- }
-
public static TransactionRecord createTransaction(int index, long branchUuid) {
TransactionDetailsType type =
TransactionDetailsType.values[Math.abs(index % TransactionDetailsType.values.length)];
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/AccessModel.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/AccessModel.java
deleted file mode 100644
index d0555ded17..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/AccessModel.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.model.access;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.access.AccessData;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface AccessModel {
-
- void computeAccess(AccessContextToken contextId, Collection<Object> objectsToCheck, AccessData accessData);
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/HasAccessModel.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/HasAccessModel.java
deleted file mode 100644
index 7e1eb584bf..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/access/HasAccessModel.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.model.access;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface HasAccessModel {
- AccessModel getAccessModel();
-}
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/CmAccessControl.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/CmAccessControl.java
deleted file mode 100644
index 4ff2e9247b..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/CmAccessControl.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.services;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface CmAccessControl {
-
- boolean isApplicable(ArtifactToken user, Object object);
-
- Collection<? extends AccessContextToken> getContextId(ArtifactToken user, Object object);
-
-}
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/CmAccessControlProvider.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/CmAccessControlProvider.java
deleted file mode 100644
index f8b158a6a0..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/CmAccessControlProvider.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.services;
-
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface CmAccessControlProvider {
-
- CmAccessControl getService(ArtifactToken user, Object object);
-
- void setDefaultAccessControl(CmAccessControl defaultAccessControl);
-}
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/HasCmAccessControl.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/HasCmAccessControl.java
deleted file mode 100644
index 8dc2e33a78..0000000000
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/services/HasCmAccessControl.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.services;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface HasCmAccessControl {
-
- CmAccessControl getAccessControl();
-}
diff --git a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/AuthenticationManager.java b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/AuthenticationManager.java
index c5f05ab83c..be6739349b 100644
--- a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/AuthenticationManager.java
+++ b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/AuthenticationManager.java
@@ -42,7 +42,7 @@ public class AuthenticationManager implements IAuthenticationManager {
}
public void removeAuthenticationProvider(IAuthenticationProvider authenticationProvider) {
- authenticationProviders.remove(authenticationProvider).toString();
+ authenticationProviders.remove(authenticationProvider.getProtocol()).toString();
}
@Override
diff --git a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/authentication/DemoAuthenticationProvider.java b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/authentication/DemoAuthenticationProvider.java
index 9a9106ffad..69327572e0 100644
--- a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/authentication/DemoAuthenticationProvider.java
+++ b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/authentication/DemoAuthenticationProvider.java
@@ -29,14 +29,10 @@ public class DemoAuthenticationProvider extends AbstractAuthenticationProvider {
@Override
public UserToken asOseeUserId(OseeCredential credential) {
- for (UserToken token : DemoUsers.values()) {
- if (credential.getUserName().equals(token.getName().toLowerCase())) {
- UserToken userToken = getUserTokenFromOseeDb(token.getName());
- if (userToken != null) {
- return userToken;
- } else {
- return createUserToken(token.getName(), token.getUserId(), "", true);
- }
+ for (UserToken userToken : DemoUsers.values()) {
+ if (credential.getUserName().equals(userToken.getUserId()) || credential.getUserName().equals(
+ userToken.getName().toLowerCase())) {
+ return userToken;
}
}
return createUserToken(DemoUsers.Joe_Smith.getName(), DemoUsers.Joe_Smith.getUserId(), "joe@boeing.com", true);
diff --git a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/session/DatabaseSessionAccessor.java b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/session/DatabaseSessionAccessor.java
index 31d3076a93..08f9ed2b40 100644
--- a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/session/DatabaseSessionAccessor.java
+++ b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/session/DatabaseSessionAccessor.java
@@ -61,7 +61,9 @@ public final class DatabaseSessionAccessor implements CacheDataLoader<String, Se
}
private void executeTx(SessionTxType op, Iterable<Session> sessions) {
- jdbcClient.runTransaction(new SessionTx(getJdbcClient(), op, sessions));
+ JdbcClient jdbcClient2 = getJdbcClient();
+ SessionTx transaction = new SessionTx(jdbcClient2, op, sessions);
+ jdbcClient.runTransaction(transaction);
}
@Override
diff --git a/plugins/org.eclipse.osee.framework.core.test/src/org/eclipse/osee/framework/core/enums/PermissionEnumTest.java b/plugins/org.eclipse.osee.framework.core.test/src/org/eclipse/osee/framework/core/enums/PermissionEnumTest.java
index fbdeb67a74..ba4ea5ce8b 100644
--- a/plugins/org.eclipse.osee.framework.core.test/src/org/eclipse/osee/framework/core/enums/PermissionEnumTest.java
+++ b/plugins/org.eclipse.osee.framework.core.test/src/org/eclipse/osee/framework/core/enums/PermissionEnumTest.java
@@ -15,9 +15,9 @@ package org.eclipse.osee.framework.core.enums;
import static org.eclipse.osee.framework.core.enums.PermissionEnum.DENY;
import static org.eclipse.osee.framework.core.enums.PermissionEnum.FULLACCESS;
-import static org.eclipse.osee.framework.core.enums.PermissionEnum.USER_LOCK;
import static org.eclipse.osee.framework.core.enums.PermissionEnum.NONE;
import static org.eclipse.osee.framework.core.enums.PermissionEnum.READ;
+import static org.eclipse.osee.framework.core.enums.PermissionEnum.USER_LOCK;
import static org.eclipse.osee.framework.core.enums.PermissionEnum.WRITE;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/plugins/org.eclipse.osee.framework.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.core/META-INF/MANIFEST.MF
index 0927e63895..710bdb940e 100644
--- a/plugins/org.eclipse.osee.framework.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.framework.core/META-INF/MANIFEST.MF
@@ -49,6 +49,10 @@ Import-Package: com.fasterxml.jackson.annotation,
org.osgi.util.tracker
Export-Package: org.eclipse.osee.framework.core,
org.eclipse.osee.framework.core.access,
+ org.eclipse.osee.framework.core.access.context,
+ org.eclipse.osee.framework.core.access.event,
+ org.eclipse.osee.framework.core.access.object,
+ org.eclipse.osee.framework.core.access.operation,
org.eclipse.osee.framework.core.applicability,
org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.core.data.computed,
diff --git a/plugins/org.eclipse.osee.framework.core/OSGI-INF/artifact.check.provider.xml b/plugins/org.eclipse.osee.framework.core/OSGI-INF/artifact.check.provider.xml
deleted file mode 100644
index 714e0911a5..0000000000
--- a/plugins/org.eclipse.osee.framework.core/OSGI-INF/artifact.check.provider.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
- <implementation class="org.eclipse.osee.framework.core.access.UserArtifactCheck"/>
- <service>
- <provide interface="org.eclipse.osee.framework.core.access.IArtifactCheck"/>
- </service>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.core/src-gen/org/eclipse/osee/framework/core/grammar/ApplicabilityGrammarParser.java b/plugins/org.eclipse.osee.framework.core/src-gen/org/eclipse/osee/framework/core/grammar/ApplicabilityGrammarParser.java
index 11c90a95e3..44368e06b5 100644
--- a/plugins/org.eclipse.osee.framework.core/src-gen/org/eclipse/osee/framework/core/grammar/ApplicabilityGrammarParser.java
+++ b/plugins/org.eclipse.osee.framework.core/src-gen/org/eclipse/osee/framework/core/grammar/ApplicabilityGrammarParser.java
@@ -2,18 +2,24 @@
package org.eclipse.osee.framework.core.grammar;
- import java.util.HashMap;
- import java.util.Arrays;
- import java.util.Collections;
-
-
-import org.antlr.runtime.*;
-import java.util.Stack;
+ import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
-import java.util.ArrayList;
-
-
-import org.antlr.runtime.tree.*;
+import org.antlr.runtime.BitSet;
+import org.antlr.runtime.EarlyExitException;
+import org.antlr.runtime.MismatchedSetException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.Parser;
+import org.antlr.runtime.ParserRuleReturnScope;
+import org.antlr.runtime.RecognitionException;
+import org.antlr.runtime.RecognizerSharedState;
+import org.antlr.runtime.Token;
+import org.antlr.runtime.TokenStream;
+import org.antlr.runtime.tree.CommonTree;
+import org.antlr.runtime.tree.CommonTreeAdaptor;
+import org.antlr.runtime.tree.TreeAdaptor;
public class ApplicabilityGrammarParser extends Parser {
public static final String[] tokenNames = new String[] {
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/OseeApi.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/OseeApi.java
index 0e98df0066..466c6f2530 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/OseeApi.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/OseeApi.java
@@ -13,6 +13,8 @@
package org.eclipse.osee.framework.core;
+import org.eclipse.osee.framework.core.access.IAccessControlService;
+
/**
* @author Ryan D. Brooks
*/
@@ -22,4 +24,6 @@ public interface OseeApi {
OrcsTokenService tokenService();
-}
\ No newline at end of file
+ IAccessControlService getAccessControlService();
+
+}
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/OseeApiBase.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/OseeApiBase.java
index ba0c826be2..9c9fb2b1b3 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/OseeApiBase.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/OseeApiBase.java
@@ -38,4 +38,5 @@ public abstract class OseeApiBase implements OseeApi {
public OrcsTokenService tokenService() {
return tokenService;
}
+
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessData.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessData.java
deleted file mode 100644
index 6e589cb791..0000000000
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessData.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.access;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-import org.eclipse.osee.framework.jdk.core.type.CompositeKeyHashMap;
-import org.eclipse.osee.framework.jdk.core.type.Pair;
-import org.eclipse.osee.framework.jdk.core.util.Conditions;
-
-/**
- * @author Jeff C. Phillips
- * @author Roberto E. Escobar
- */
-public final class AccessData {
-
- private final CompositeKeyHashMap<Object, Object, AccessDetail<?>> accessMap =
- new CompositeKeyHashMap<>();
-
- public AccessData() {
- super();
- }
-
- public boolean isEmpty() {
- return accessMap.isEmpty();
- }
-
- public void addAll(Object key, Collection<AccessDetail<?>> datas) {
- Conditions.checkNotNull(key, "access key");
- Conditions.checkNotNull(datas, "accessDetails");
- for (AccessDetail<?> data : datas) {
- add(key, data);
- }
- }
-
- public Set<Object> keySet() {
- Set<Object> toReturn = new HashSet<>();
- for (Pair<Object, Object> key : accessMap.keySet()) {
- toReturn.add(key.getFirst());
- }
- return toReturn;
- }
-
- public void add(Object key, AccessDetail<?> data) {
- Conditions.checkNotNull(key, "access key");
- Conditions.checkNotNull(data, "access data");
-
- AccessDetail<?> original = accessMap.get(key, data.getAccessObject());
-
- AccessDetail<?> resolvedAccess = AccessDetail.resolveAccess(original, data);
- accessMap.put(key, data.getAccessObject(), resolvedAccess);
- }
-
- public Collection<AccessDetail<?>> getAccess(Object key) {
- Conditions.checkNotNull(key, "access key");
- return accessMap.getValues(key);
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("accessData [");
- if (!accessMap.isEmpty()) {
- builder.append("\n");
- for (Object key : keySet()) {
- for (AccessDetail<?> detail : accessMap.getValues(key)) {
- builder.append("\t");
- builder.append(key);
- builder.append(" - ");
- builder.append(detail);
- builder.append(",\n");
- }
- }
- }
- builder.append("]");
- return builder.toString();
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDataQuery.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDataQuery.java
deleted file mode 100644
index a254b4768a..0000000000
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDataQuery.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.access;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.ArtifactTypeId;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.RelationTypeSide;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-
-/**
- * @author Jeff C. Phillips
- * @author Roberto E. Escobar
- */
-public class AccessDataQuery {
-
- private final AccessData accessData;
-
- public AccessDataQuery(AccessData accessData) {
- this.accessData = accessData;
- }
-
- @Override
- public String toString() {
- return accessData.toString();
- }
-
- public void branchMatches(PermissionEnum permissionToMatch, BranchId branchToMatch, PermissionStatus permissionStatus) {
- Collection<AccessDetail<?>> branchAccessDetails = accessData.getAccess(branchToMatch);
- setTypePermissionStatus(permissionStatus, permissionToMatch, branchAccessDetails, branchToMatch);
- }
-
- public void branchArtifactTypeMatches(PermissionEnum permissionToMatch, BranchId branchToMatch, ArtifactTypeId artifactType, PermissionStatus permissionStatus) {
- branchMatches(permissionToMatch, branchToMatch, permissionStatus);
- if (permissionStatus.matched()) {
- Collection<AccessDetail<?>> branchAccessDetails = accessData.getAccess(branchToMatch);
- setTypePermissionStatus(permissionStatus, permissionToMatch, branchAccessDetails, artifactType);
- }
- }
-
- public void artifactTypeMatches(PermissionEnum permissionToMatch, ArtifactToken artifact, PermissionStatus permissionStatus) {
- ArtifactTypeId typeToMatch = artifact.getArtifactType();
- BranchId branchToMatch = artifact.getBranch();
- branchArtifactTypeMatches(permissionToMatch, branchToMatch, typeToMatch, permissionStatus);
- if (permissionStatus.matched()) {
- Collection<AccessDetail<?>> artifactAccessDetails = accessData.getAccess(artifact);
- setTypePermissionStatus(permissionStatus, permissionToMatch, artifactAccessDetails, artifact);
- }
- }
-
- public void artifactMatches(PermissionEnum permissionToMatch, ArtifactToken artifact, PermissionStatus permissionStatus) {
- BranchId branchToMatch = artifact.getBranch();
- branchMatches(permissionToMatch, branchToMatch, permissionStatus);
- if (permissionStatus.matched()) {
- Collection<AccessDetail<?>> mainList = accessData.getAccess(artifact);
- AccessDetail<?> mostSpecific = getNetAccess(mainList, new AccessFilter() {
-
- @Override
- public boolean accept(AccessDetail<?> access) {
- return access.getAccessObject().equals(artifact) || access.getAccessObject().equals(
- artifact.getArtifactType());
- }
- });
-
- setPermissionStatus(permissionStatus, permissionToMatch, mostSpecific);
- }
- }
-
- private class ObjectFilter implements AccessFilter {
- Object toFilter;
-
- ObjectFilter(Object toFilter) {
- this.toFilter = toFilter;
- }
-
- @Override
- public boolean accept(AccessDetail<?> access) {
- return access.getAccessObject().equals(toFilter);
- }
- }
-
- private class RelationTypeSideFilter implements AccessFilter {
- RelationTypeSide toFilter;
-
- RelationTypeSideFilter(RelationTypeSide toFilter) {
- this.toFilter = toFilter;
- }
-
- @Override
- public boolean accept(AccessDetail<?> access) {
- if (access.getAccessObject() instanceof RelationTypeSide) {
- RelationTypeSide toCheck = (RelationTypeSide) access.getAccessObject();
- return toCheck.getSide().equals(toFilter.getSide()) && toCheck.getGuid().equals(toFilter.getGuid());
- }
- return false;
- }
- }
-
- public void attributeTypeMatches(PermissionEnum permissionToMatch, ArtifactToken artifact, final AttributeTypeId attributeType, PermissionStatus permissionStatus) {
- artifactMatches(permissionToMatch, artifact, permissionStatus);
- if (permissionStatus.matched()) {
- Collection<AccessDetail<?>> branchAccessDetails = accessData.getAccess(artifact.getBranch());
- AccessFilter filter = new ObjectFilter(attributeType);
- AccessDetail<?> branchPermission = getNetAccess(branchAccessDetails, filter);
- setPermissionStatus(permissionStatus, permissionToMatch, branchPermission);
-
- if (permissionStatus.matched()) {
- Collection<AccessDetail<?>> artifactAccessDetails = accessData.getAccess(artifact);
- AccessDetail<?> attributePermission = getNetAccess(artifactAccessDetails, filter);
- setPermissionStatus(permissionStatus, permissionToMatch, attributePermission);
- }
- }
- }
-
- public void relationTypeMatches(PermissionEnum permissionToMatch, ArtifactToken artifact, RelationTypeSide relationTypeSide, PermissionStatus permissionStatus) {
- BranchId branchToMatch = artifact.getBranch();
- branchMatches(permissionToMatch, branchToMatch, permissionStatus);
- if (permissionStatus.matched()) {
- Collection<AccessDetail<?>> relationAccessDetails = accessData.getAccess(artifact);
- AccessFilter filter = new RelationTypeSideFilter(relationTypeSide);
- AccessDetail<?> relationDetail = getNetAccess(relationAccessDetails, filter);
- setPermissionStatus(permissionStatus, permissionToMatch, relationDetail);
- }
- }
-
- public boolean matchesAll(PermissionEnum permissionToMatch) {
- PermissionStatus permissionStatus = new PermissionStatus();
- for (Object objectKey : accessData.keySet()) {
- if (objectKey instanceof ArtifactToken) {
- artifactMatches(permissionToMatch, (ArtifactToken) objectKey, permissionStatus);
- } else if (objectKey instanceof BranchId) {
- branchMatches(permissionToMatch, (BranchId) objectKey, permissionStatus);
- }
- if (!permissionStatus.matched()) {
- break;
- }
- }
- return permissionStatus.matched();
- }
-
- private <T> void setTypePermissionStatus(PermissionStatus permissionStatus, PermissionEnum permissionToMatch, Collection<AccessDetail<?>> accessDetails, T toMatch) {
- AccessFilter filter = new ObjectFilter(toMatch);
- AccessDetail<?> accessDetail = getNetAccess(accessDetails, filter);
- setPermissionStatus(permissionStatus, permissionToMatch, accessDetail);
- }
-
- private void setPermissionStatus(PermissionStatus status, PermissionEnum permissionToMatch, AccessDetail<?> mostSpecific) {
- if (mostSpecific == null) {
- return;
- }
- if (mostSpecific.getPermission() == null) {
- status.setMatches(false);
- } else {
- boolean matches = mostSpecific.getPermission().matches(permissionToMatch);
- if (!matches) {
- status.setReason(mostSpecific.getReason());
- }
- status.setMatches(matches);
- }
- }
-
- private interface AccessFilter {
-
- public boolean accept(AccessDetail<?> access);
-
- }
-
- private AccessDetail<?> getNetAccess(Collection<AccessDetail<?>> toFilter, AccessFilter filter) {
- AccessDetail<?> mostSpecific = null;
- for (AccessDetail<?> entry : toFilter) {
- if (filter.accept(entry)) {
- mostSpecific = AccessDetail.resolveAccess(mostSpecific, entry);
- }
- }
- return mostSpecific;
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDetail.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDetail.java
deleted file mode 100644
index 11257853f7..0000000000
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDetail.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.access;
-
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AccessDetail<T> { //implements Comparable<AccessDetail<?>> {
-
- private final T accessObject;
- private PermissionEnum permission;
- private Scope scope;
- private String reason;
-
- public AccessDetail(T accessObject, PermissionEnum permission, Scope scope) {
- this(accessObject, permission, scope, Strings.emptyString());
- }
-
- public AccessDetail(T accessObject, PermissionEnum permission, Scope scope, String reason) {
- this.accessObject = accessObject;
- this.permission = permission;
- this.reason = reason;
- this.scope = scope;
- }
-
- public String getReason() {
- return Strings.isValid(reason) ? reason : scope.getPath();
- }
-
- public void setReason(String reason) {
- this.reason = reason;
- }
-
- public PermissionEnum getPermission() {
- return permission;
- }
-
- public Scope getScope() {
- return scope;
- }
-
- public void setScope(Scope scope) {
- this.scope = scope;
- }
-
- public T getAccessObject() {
- return accessObject;
- }
-
- public void setPermission(PermissionEnum permission) {
- this.permission = permission;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 11;
- return hashCode * 37 + (accessObject != null ? accessObject.hashCode() : 0);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof AccessDetail<?>) {
- AccessDetail<?> other = (AccessDetail<?>) obj;
- Object object1 = getAccessObject();
- Object object2 = other.getAccessObject();
- boolean result = false;
- if (object1 == null && object2 == null) {
- result = true;
- } else if (object1 != null && object2 != null) {
- result = getAccessObject().equals(other.getAccessObject());
- }
- return result;
- }
- return false;
- }
-
- @Override
- public String toString() {
- return "AccessDetail [permission=" + getPermission() + ", scope=" + getScope() + ", accessObject=" + getAccessObject() + ", reason=" + getReason() + "]";
- }
-
- public static AccessDetail<?> resolveAccess(AccessDetail<?> original, AccessDetail<?> data) {
- AccessDetail<?> toReturn = data;
- if (original != null) {
- Scope origScope = original.getScope();
- Scope dataScope = data.getScope();
-
- if (origScope.isLegacy() || dataScope.isLegacy() || origScope.getPath().equals(dataScope.getPath())) {
- toReturn = getMostRestrictive(original, data);
- } else {
- if (dataScope.getScopeDepth() > origScope.getScopeDepth()) {
- toReturn = data;
- } else {
- toReturn = original;
- }
- }
-
- }
- return toReturn;
- }
-
- private static AccessDetail<?> getMostRestrictive(AccessDetail<?> original, AccessDetail<?> data) {
- PermissionEnum origPermission = original.getPermission();
- PermissionEnum newPermission = data.getPermission();
-
- AccessDetail<?> toReturn = original;
- if (!origPermission.equals(newPermission)) {
- PermissionEnum netPermission = PermissionEnum.getMostRestrictive(origPermission, newPermission);
- if (netPermission.equals(newPermission)) {
- toReturn = data;
- }
- } else {
- String netReason = merge(toReturn.getReason(), data.getReason());
- toReturn.setReason(netReason);
- }
- return toReturn;
- }
-
- public static String merge(String reason1, String reason2) {
- StringBuilder builder = new StringBuilder();
- builder.append(reason1);
- if (!reason1.equals(reason2)) {
- builder.append(", ");
- builder.append(reason2);
- }
- return builder.toString();
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDetailCollector.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDetailCollector.java
deleted file mode 100644
index b0f0cf6bb1..0000000000
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/AccessDetailCollector.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.access;
-
-import java.util.List;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface AccessDetailCollector {
- void collect(AccessDetail<?> accessDetail);
-
- default List<AccessDetail<?>> getAccessDetails() {
- return null;
- }
-
- default boolean contains(Object expectedAccessObject, PermissionEnum expectedPermission, Scope expectedScopeLevel) {
- return false;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/IAccessControlService.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/IAccessControlService.java
index be8be9cbbb..cd35bf6ec7 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/IAccessControlService.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/IAccessControlService.java
@@ -14,28 +14,148 @@
package org.eclipse.osee.framework.core.access;
import java.util.Collection;
+import java.util.List;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEventPayload;
+import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
+import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
+import org.eclipse.osee.framework.core.data.AttributeTypeToken;
import org.eclipse.osee.framework.core.data.BranchId;
+import org.eclipse.osee.framework.core.data.BranchToken;
+import org.eclipse.osee.framework.core.data.IUserGroupService;
+import org.eclipse.osee.framework.core.data.RelationTypeToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
/**
* @author Roberto E. Escobar
*/
public interface IAccessControlService extends ArtifactCheck {
+ public static final String DEBUG_BRANCH_ACCESS = "DebugBranchAccess";
+
+ ////////////////////////////////////
+ // Store Permission
+ ////////////////////////////////////
+
+ void persistPermission(AccessControlData data);
+
+ void persistPermission(AccessControlData data, boolean recurse);
+
+ void setPermission(ArtifactToken subject, ArtifactToken artifact, PermissionEnum permission);
+
+ void removeAccessControlDataIf(boolean removeFromDb, AccessControlData data);
+
+ ////////////////////////////////////
+ // Branch Permission
+ ////////////////////////////////////
+
+ XResultData isModifyAccessEnabled(ArtifactToken subject, BranchToken branch, XResultData rd);
+
+ PermissionEnum getPermission(BranchToken branch);
+
+ void removePermissions(BranchId branch);
+
+ void setPermission(ArtifactToken subject, BranchId branch, PermissionEnum permissionEnum);
+
+ XResultData hasBranchPermission(BranchToken branch, PermissionEnum permission, XResultData rd);
+
+ XResultData hasBranchPermission(ArtifactToken subject, BranchToken branch, PermissionEnum permission, XResultData rd);
+
+ ////////////////////////////////////
+ // Artifact Permission
+ ////////////////////////////////////
+
+ XResultData isModifyAccessEnabled(ArtifactToken subject, ArtifactToken artifact, XResultData rd);
+
+ PermissionEnum getPermission(ArtifactToken artifact);
+
/**
- * @param object Artifact, Branch or collection of either
+ * Check rollup permission for current user including Branch, ACL and Branch Context. Preferred method.
*/
- boolean hasPermission(Object object, PermissionEnum permission);
+ XResultData hasArtifactPermission(ArtifactToken artifact, PermissionEnum permission, XResultData rd);
- void removePermissions(BranchId branch);
+ // Check rollup permission for current user including Branch ACL, Artifact ACL and Branch Context.
+ XResultData hasArtifactPermission(Collection<? extends ArtifactToken> artifacts, PermissionEnum permission, XResultData rd);
- AccessDataQuery getAccessData(ArtifactToken userArtifact, Collection<?> itemsToCheck);
+ // Check rollup permission for current user including Branch ACL, Artifact ACL and Branch Context.
+ XResultData hasArtifactPermission(ArtifactToken subject, Collection<? extends ArtifactToken> artifact, PermissionEnum permission, XResultData rd);
- void ensurePopulated();
+ // Return artifact or sentinel
+ ArtifactToken getSubjectFromLockedObject(ArtifactToken artifact);
+
+ void lockArtifacts(ArtifactToken subject, Collection<? extends ArtifactToken> artifacts);
+
+ void unLockArtifacts(ArtifactToken subject, Collection<? extends ArtifactToken> artifacts);
+
+ boolean canUnlockObject(ArtifactToken subject, ArtifactToken artifact);
+
+ boolean hasLock(ArtifactToken artifact);
+
+ ////////////////////////////////////
+ // Attribute Type Permission
+ ////////////////////////////////////
+
+ /**
+ * Check rollup permission for current user including Branch ACL, Artifact ACL and Branch Context for Attr Type
+ */
+ XResultData hasAttributeTypePermission(Collection<? extends ArtifactToken> artifacts, AttributeTypeToken attributeType, PermissionEnum permission, XResultData rd);
+
+ /**
+ * Check rollup permission for current user including Branch ACL, Artifact ACL and Branch Context for Attr Type
+ */
+ XResultData hasAttributeTypePermission(ArtifactToken subject, Collection<? extends ArtifactToken> artifacts, AttributeTypeToken attributeType, PermissionEnum permission, XResultData rd);
+
+ ////////////////////////////////////
+ // Relation Permission
+ ////////////////////////////////////
+
+ /**
+ * Check rollup permission for current user including Branch ACL, Artifact ACL and Branch Context for Rel Type
+ *
+ * @param related list to relate or null to check permission without specific artifacts
+ */
+ XResultData hasRelationTypePermission(ArtifactToken user, ArtifactToken artifact, RelationTypeToken relationType, Collection<? extends ArtifactToken> related, PermissionEnum permission, XResultData rd);
+
+ /**
+ * Check rollup permission for current user including Branch ACL, Artifact ACL and Branch Context for Rel Type
+ *
+ * @param related list to relate or null to check permission without specific artifacts
+ */
+ XResultData hasRelationTypePermission(ArtifactToken artifact, RelationTypeToken relationType, Collection<? extends ArtifactToken> related, PermissionEnum permission, XResultData rd);
+
+ ////////////////////////////////////
+ // Supporting Methods
+ ////////////////////////////////////
+
+ boolean isInDb(ArtifactToken artifact);
- void clearCache();
+ boolean isReadOnly(ArtifactToken artifact);
boolean isOseeAdmin();
-}
\ No newline at end of file
+ void ensurePopulated();
+
+ void clearCaches();
+
+ void reloadCache();
+
+ List<AccessControlData> getAccessControlList(Object object);
+
+ ArtifactToken getUserByArtId(ArtifactId subjectArtId);
+
+ Collection<IOseeAccessProvider> getOseeAccessProviders();
+
+ void kickAccessTopicEvent(AccessTopicEventPayload event);
+
+ IUserGroupService getUserGroupService();
+
+ Collection<ArtifactToken> getArtifactListFromType(ArtifactTypeToken artType, BranchToken branch);
+
+ boolean isBaselineBranch(BranchToken branch);
+
+ void populateGroupMembers(ArtifactId groupId);
+
+ ArtifactToken getUser();
+
+}
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/Scope.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/Scope.java
deleted file mode 100644
index e1678bbeb5..0000000000
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/access/Scope.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.core.access;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Roberto E. Escobar
- * @author John R. Misinco
- */
-public class Scope implements Cloneable {
-
- private static final String LEGACY_SCOPE = "##";
- private static final String ARTIFACT_LOCK_SCOPE = "##**";
-
- private final List<String> scopePath = new ArrayList<>();
-
- public Scope() {
- // Do nothing
- }
-
- public int getScopeDepth() {
- return scopePath.size();
- }
-
- public Scope add(String value) {
- scopePath.add(normalize(value));
- return this;
- }
-
- public String getPath() {
- StringBuilder builder = new StringBuilder();
- for (String entry : scopePath) {
- if (!entry.startsWith("#")) {
- builder.append("/");
- }
- builder.append(entry);
- }
- return builder.toString();
- }
-
- private String normalize(String value) {
- return value.replaceAll(" ", "_");
- }
-
- public Scope addSubPath(String value) {
- scopePath.add("#" + normalize(value));
- return this;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + (scopePath == null ? 0 : scopePath.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- Scope other = (Scope) obj;
- if (scopePath == null) {
- if (other.scopePath != null) {
- return false;
- }
- } else if (!scopePath.equals(other.scopePath)) {
- return false;
- }
- return true;
- }
-
- public boolean isLegacy() {
- return this instanceof LegacyScope;
- }
-
- @Override
- public String toString() {
- return getPath();
- }
-
- @Override
- public Scope clone() {
- Scope scope = new Scope();
- for (String value : this.scopePath) {
- scope.add(value);
- }
- return scope;
- }
-
- public static Scope createLegacyScope() {
- return new LegacyScope();
- }
-
- public static Scope createArtifactLockScope() {
- return new ArtifactLockScope();
- }
-
- private static abstract class NonCmScope extends Scope {
- @Override
- public Scope add(String path) {
- return this;
- }
-
- @Override
- public Scope addSubPath(String path) {
- return this;
- }
- }
-
- private static final class LegacyScope extends NonCmScope {
-
- @Override
- public String getPath() {
- return LEGACY_SCOPE;
- }
-
- @Override
- public Scope clone() {
- return Scope.createLegacyScope();
- }
- }
-
- private static final class ArtifactLockScope extends NonCmScope {
-
- @Override
- public String getPath() {
- return ARTIFACT_LOCK_SCOPE;
- }
-
- @Override
- public Scope clone() {
- return Scope.createArtifactLockScope();
- }
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/ArtifactToken.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/ArtifactToken.java
index dcb88065fb..b63603cf83 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/ArtifactToken.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/ArtifactToken.java
@@ -14,13 +14,16 @@
package org.eclipse.osee.framework.core.data;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import java.util.logging.Level;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.osee.framework.jdk.core.type.Id;
import org.eclipse.osee.framework.jdk.core.type.Identity;
import org.eclipse.osee.framework.jdk.core.type.NamedId;
import org.eclipse.osee.framework.jdk.core.type.NamedIdBase;
import org.eclipse.osee.framework.jdk.core.type.NamedIdSerializer;
+import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.util.GUID;
+import org.eclipse.osee.framework.logging.OseeLog;
/**
* @author Ryan D. Brooks
@@ -115,6 +118,16 @@ public interface ArtifactToken extends ArtifactId, HasBranch, NamedId, Identity<
public ArtifactTokenImpl(Long id, String guid, String name, BranchId branch, ArtifactTypeToken artifactType) {
super(id, name);
+ // Until artifacts can have long in db, ensure that tokens aren't negative when turned to int
+ int idInt = Long.valueOf(id).intValue();
+ if (idInt <= 0 && idInt != -1) {
+ String msg = String.format(
+ "Token id (as int) must be > 0 or SENTINAL, not int [%s] for long id [%s] name [%s] and type [%s])",
+ idInt, id, name, artifactType.getName());
+ // Log to console which shows the id, name and type on contruction where exception doesn't show till loading
+ OseeLog.log(ArtifactToken.class, Level.SEVERE, msg);
+ throw new OseeArgumentException(msg);
+ }
this.branch = branch;
this.artifactType = artifactType;
this.guid = guid;
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IUserGroup.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IUserGroup.java
index d23f8ca023..9d8f6a853a 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IUserGroup.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IUserGroup.java
@@ -22,16 +22,18 @@ public interface IUserGroup {
ArtifactToken getArtifact();
- boolean addMember(UserId user);
+ boolean addMember(UserId user, boolean persist);
boolean isMember(UserId user);
boolean isCurrentUserMember();
- boolean removeMember(UserId user);
+ boolean removeMember(UserId user, boolean persist);
Collection<UserToken> getMembers();
boolean isMember(Long id);
+ Long getId();
+
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IUserGroupService.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IUserGroupService.java
index 165ca4ad0b..857dbdefc2 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IUserGroupService.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IUserGroupService.java
@@ -29,7 +29,11 @@ public interface IUserGroupService {
/**
* Checks for existence of user group, then if member
*/
- public boolean isUserMember(IUserGroupArtifactToken amsUsers, Long id);
+ public boolean isUserMember(IUserGroupArtifactToken userGroup, Long id);
+
+ public boolean isUserMember(IUserGroupArtifactToken userGroup, ArtifactId user);
public Collection<UserToken> getUsers(IUserGroupArtifactToken userGroup);
+
+ IUserGroup getUserGroup(ArtifactToken userGroupArt);
}
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/CoreUserGroups.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/CoreUserGroups.java
index e779c7096d..5c257f8087 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/CoreUserGroups.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/CoreUserGroups.java
@@ -23,11 +23,11 @@ public class CoreUserGroups {
public static final IUserGroupArtifactToken Everyone = UserGroupArtifactToken.valueOf(48656L, "Everyone");
public static final IUserGroupArtifactToken OseeAccessAdmin =
- UserGroupArtifactToken.valueOf(8033605L, "OseeAccessAdmin");
- public static final IUserGroupArtifactToken OseeAdmin = UserGroupArtifactToken.valueOf(52247L, "OseeAdmin");
+ UserGroupArtifactToken.valueOf(8033605L, "Osee Access Admin");
+ public static final IUserGroupArtifactToken OseeAdmin = UserGroupArtifactToken.valueOf(52247L, "Osee Admin");
public static final IUserGroupArtifactToken OseeDeveloper =
- UserGroupArtifactToken.valueOf(464565465L, "OseeDeveloper");
- public static final IUserGroupArtifactToken OseeSupport = UserGroupArtifactToken.valueOf(10865894L, "OseeSupport");
+ UserGroupArtifactToken.valueOf(464565465L, "Osee Developer");
+ public static final IUserGroupArtifactToken OseeSupport = UserGroupArtifactToken.valueOf(10865894L, "Osee Support");
public static IUserGroupArtifactToken AgileUser = UserGroupArtifactToken.valueOf(10635635L, "Agile User");
public static IUserGroupArtifactToken EarnedValueUser =
UserGroupArtifactToken.valueOf(10635662L, "Earner Value User");
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/DemoBranches.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/DemoBranches.java
index 2477823441..ac3d53a300 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/DemoBranches.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/DemoBranches.java
@@ -26,6 +26,8 @@ public final class DemoBranches {
public static final BranchToken SAW_Bld_2 = BranchToken.create(5, "SAW_Bld_2");
public static final BranchToken SAW_Bld_3 = BranchToken.create(6, "SAW_Bld_3");
+ public static final BranchToken SAW_PL_Access_Baseline_Test = BranchToken.create(5432, "SAW Access Control Baseline Test");
+
public static final BranchToken SAW_PL = BranchToken.create(8, "SAW Product Line");
public static final BranchToken SAW_PL_Hardening_Branch = BranchToken.create(9, "SAW PL Hardening Branch");
public static final BranchToken SAW_PL_Working_Branch = BranchToken.create(10, "SAW PL Working Branch");
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/PermissionEnum.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/PermissionEnum.java
index a278b5d241..2e697d8681 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/PermissionEnum.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/PermissionEnum.java
@@ -21,12 +21,13 @@ import java.util.Map;
*/
public enum PermissionEnum {
+ // Update FrameworkAccessDesign.adoc if these are changed
NONE(5, "None", "Open Access for all Users"),
READ(10, "Read", "Read only access for specified user"),
WRITE(20, "Write", "Write access for specified user"),
USER_LOCK(25, "Lock", "Locked for write by only the specified user"),
FULLACCESS(30, "Full Access", "Full Access to Read, Write and Change Permissions"),
- DENY(65535, "Deny", "Deny all access. Usually only if something is ");
+ DENY(65535, "Deny", "Deny all access");
// keeping this in sync with the number of permissions will ensure optimal memory usage
private static final int COUNT = 4;
@@ -119,4 +120,5 @@ public enum PermissionEnum {
public int getPermId() {
return permissionId;
}
+
}
diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/result/XResultData.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/result/XResultData.java
index d835d002d1..fff2d4fd70 100644
--- a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/result/XResultData.java
+++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/result/XResultData.java
@@ -45,6 +45,7 @@ public class XResultData {
ConsoleOut;
}
+ public static XResultData EMPTY_RD = new XResultData();
public static final Pattern ErrorPattern = Pattern.compile("Error: ");
public static final Pattern WarningPattern = Pattern.compile("Warning: ");
@JsonIgnore
diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java
index 5d5ecc3a1f..e55666768d 100644
--- a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java
+++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/OseeProperties.java
@@ -41,11 +41,28 @@ public class OseeProperties {
public static final String OSEE_SHOW_TOKEN_FOR_CHANGE_NAME = "osee.show.token.for.change.name";
public static final String OSEE_DB = "osee.db";
public static final String OSEE_HEALTH_SERVERS_KEY = "osee.health.servers";
+ public static final String OSEE_IS_IN_DB_INIT = "osee.is.in.db.init";
protected OseeProperties() {
// Utility Class
}
+ protected static String getProperty(String name) {
+ return getProperty(name, "");
+ }
+
+ protected static String getProperty(String name, String defaultValue) {
+ return System.getProperty(name, defaultValue);
+ }
+
+ public static boolean isInDbInit() {
+ return Boolean.valueOf(getProperty(OSEE_IS_IN_DB_INIT));
+ }
+
+ public static void setInDbInit(boolean value) {
+ System.setProperty(OSEE_IS_IN_DB_INIT, Boolean.toString(value));
+ }
+
public static String getOseeDefaultBrokerUri() {
return System.getProperty(OSEE_DEFAULT_BROKER_URI);
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransactionTest.java b/plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransactionTest.java
index 6401bec90f..861777a28c 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransactionTest.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core.test/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransactionTest.java
@@ -30,7 +30,6 @@ import org.junit.Test;
/**
* @author Jonas Khan
*/
-
public class SkynetTransactionTest {
public static final ArtifactToken token =
@@ -52,26 +51,6 @@ public class SkynetTransactionTest {
Assert.assertTrue(errorMsg, errorMsg.contains(bID.getIdString()));
}
- @Test
- public void getCheckBranchArtifactErrorTest() {
- SkynetTransaction test = new SkynetTransaction(null, DemoBranches.SAW_Bld_1, "");
- String errorMsg = test.getCheckBranchError(token, DemoBranches.SAW_Bld_1);
- Assert.assertTrue(errorMsg, errorMsg.contains(token.getIdString()));
- Assert.assertTrue(errorMsg, errorMsg.contains(token.getName()));
- Assert.assertTrue(errorMsg, errorMsg.contains(DemoBranches.SAW_Bld_1.getIdString()));
- Assert.assertTrue(errorMsg, errorMsg.contains(DemoBranches.SAW_Bld_1.getName()));
- }
-
- @Test
- public void getCheckBranchRelationErrorTest() {
- SkynetTransaction test = new SkynetTransaction(null, DemoBranches.SAW_Bld_1, "");
- String errorMsg = test.getCheckBranchError(link, DemoBranches.SAW_Bld_1);
- Assert.assertTrue(errorMsg, errorMsg.contains(artifactA.getIdString()));
- Assert.assertTrue(errorMsg, errorMsg.contains(artifactB.getIdString()));
- Assert.assertTrue(errorMsg, errorMsg.contains(DemoBranches.SAW_Bld_1.getIdString()));
- Assert.assertTrue(errorMsg, errorMsg.contains(DemoBranches.SAW_Bld_1.getName()));
- }
-
@Test
public void getCheckNotHistoricalErrorTest() {
SkynetTransaction test = new SkynetTransaction(null, DemoBranches.SAW_Bld_1, "");
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.skynet.core/META-INF/MANIFEST.MF
index a93c7eff60..3de3d4487c 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.framework.skynet.core/META-INF/MANIFEST.MF
@@ -63,9 +63,6 @@ Import-Package: com.fasterxml.jackson.core.type,
org.eclipse.osee.framework.core.client,
org.eclipse.osee.framework.core.client.server,
org.eclipse.osee.framework.core.data,
- org.eclipse.osee.framework.core.dsl,
- org.eclipse.osee.framework.core.dsl.oseeDsl,
- org.eclipse.osee.framework.core.dsl.oseeDsl.util,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.event,
org.eclipse.osee.framework.core.exception,
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/OSEE-INF/extensionPts/ArtifactCheck.exsd b/plugins/org.eclipse.osee.framework.skynet.core/OSEE-INF/extensionPts/ArtifactCheck.exsd
deleted file mode 100644
index 49cc86fa45..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/OSEE-INF/extensionPts/ArtifactCheck.exsd
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.osee.framework.skynet.core">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.osee.framework.skynet.core" id="ArtifactCheck" name="ArtifactCheck"/>
- </appInfo>
- <documentation>
- [Enter description of this extension point.]
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="ArtifactCheck"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="ArtifactCheck">
- <complexType>
- <attribute name="classname" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn=":org.eclipse.osee.framework.core.access.IArtifactCheck"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- [Enter the first release in which this extension point appears.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- [Enter extension point usage example here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- [Enter API information here.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="implementation"/>
- </appInfo>
- <documentation>
- [Enter information about supplied implementation of this extension point.]
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
-
- </documentation>
- </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/OSGI-INF/access.policy.service.xml b/plugins/org.eclipse.osee.framework.skynet.core/OSGI-INF/access.policy.service.xml
deleted file mode 100644
index aec108dbe0..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/OSGI-INF/access.policy.service.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
- <implementation class="org.eclipse.osee.framework.skynet.core.internal.AccessPolicyImpl"/>
- <service>
- <provide interface="org.eclipse.osee.framework.skynet.core.AccessPolicy"/>
- </service>
- <reference bind="setAccessControlService" cardinality="1..1" interface="org.eclipse.osee.framework.core.access.IAccessControlService" name="IAccessControlService" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/plugin.xml b/plugins/org.eclipse.osee.framework.skynet.core/plugin.xml
index 3f61f16cda..98506ca0f7 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/plugin.xml
+++ b/plugins/org.eclipse.osee.framework.skynet.core/plugin.xml
@@ -9,7 +9,6 @@
<extension-point id="ArtifactAnnotation" name="ArtifactAnnotation" schema="OSEE-INF/extensionPts/ArtifactAnnotation.exsd"/>
<extension-point id="OseeDbSchema" name="OseeDbSchema" schema="OSEE-INF/extensionPts/OseeDbSchema.exsd"/>
<extension-point id="WebPage" name="WebPage" schema="OSEE-INF/extensionPts/WebPage.exsd"/>
- <extension-point id="ArtifactCheck" name="ArtifactCheck" schema="OSEE-INF/extensionPts/ArtifactCheck.exsd"/>
<extension-point id="AttributeType" name="AttributeType" schema="OSEE-INF/extensionPts/AttributeType.exsd"/>
<extension-point id="AttributeDataProvider" name="AttributeDataProvider" schema="OSEE-INF/extensionPts/AttributeDataProvider.exsd"/>
<extension-point id="OseeDbImportData" name="OseeDbImportData" schema="OSEE-INF/extensionPts/OseeDbImportData.exsd"/>
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/AccessPolicy.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/AccessPolicy.java
deleted file mode 100644
index ee619ba71c..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/AccessPolicy.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2010 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.skynet.core;
-
-import java.util.Collection;
-import java.util.logging.Level;
-import org.eclipse.osee.framework.core.access.ArtifactCheck;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.ArtifactTypeId;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.RelationTypeSide;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-
-/**
- * @author Roberto E. Escobar
- */
-public interface AccessPolicy extends ArtifactCheck {
-
- boolean isReadOnly(Artifact artifact);
-
- void removePermissions(BranchId branch);
-
- PermissionStatus hasBranchPermission(BranchId branch, PermissionEnum permission, Level level);
-
- PermissionStatus hasAttributeTypePermission(Collection<? extends ArtifactToken> artifacts, AttributeTypeId attributeType, PermissionEnum permission, Level level);
-
- PermissionStatus hasArtifactTypePermission(BranchId branch, Collection<? extends ArtifactTypeId> artifactTypes, PermissionEnum permission, Level level);
-
- PermissionStatus hasArtifactPermission(Collection<Artifact> artifacts, PermissionEnum permission, Level level);
-
- PermissionStatus canRelationBeModified(Artifact subject, Collection<Artifact> toBeRelated, RelationTypeSide relationTypeSide, Level level);
-
- void ensurePopulated();
-
-}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/UserGroupImpl.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/UserGroupImpl.java
index 8211744fe0..4f504f7a04 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/UserGroupImpl.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/UserGroupImpl.java
@@ -63,10 +63,20 @@ public class UserGroupImpl extends AbstractUserGroupImpl {
}
@Override
- public boolean addMember(UserId user) {
+ public boolean addMember(UserId user, boolean persist) {
checkGroupExists();
- if (!getArtifact().isRelated(CoreRelationTypes.Users_User, (Artifact) user)) {
- getArtifact().addRelation(CoreRelationTypes.Users_User, (Artifact) user);
+ Artifact userArt = null;
+ if (user instanceof Artifact) {
+ userArt = (Artifact) user;
+ } else {
+ userArt = UserManager.getUserByArtId(user);
+ }
+ Artifact group = getArtifact();
+ if (!group.isRelated(CoreRelationTypes.Users_User, userArt)) {
+ group.addRelation(CoreRelationTypes.Users_User, userArt);
+ if (persist) {
+ group.persist("Add Member");
+ }
return true;
}
return false;
@@ -126,10 +136,20 @@ public class UserGroupImpl extends AbstractUserGroupImpl {
}
@Override
- public boolean removeMember(UserId user) {
+ public boolean removeMember(UserId user, boolean persist) {
checkGroupExists();
- if (getArtifact().isRelated(CoreRelationTypes.Users_User, (Artifact) user)) {
- getArtifact().deleteRelation(CoreRelationTypes.Users_User, (Artifact) user);
+ Artifact userArt = null;
+ if (user instanceof Artifact) {
+ userArt = (Artifact) user;
+ } else {
+ userArt = UserManager.getUserByArtId(user);
+ }
+ Artifact group = getArtifact();
+ if (group.isRelated(CoreRelationTypes.Users_User, userArt)) {
+ group.deleteRelation(CoreRelationTypes.Users_User, userArt);
+ if (persist) {
+ group.persist("Remove Member");
+ }
return true;
}
return false;
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/UserGroupService.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/UserGroupService.java
index b738012874..f58c0cab1c 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/UserGroupService.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/access/UserGroupService.java
@@ -16,6 +16,7 @@ package org.eclipse.osee.framework.skynet.core.access;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.IUserGroup;
import org.eclipse.osee.framework.core.data.IUserGroupArtifactToken;
@@ -39,7 +40,7 @@ public class UserGroupService implements IUserGroupService {
private static List<IUserGroupArtifactToken> userGrps;
public static IUserGroupService instance() {
- return userGroupService;
+ return getUserGroupService();
}
public static IUserGroup getOseeAdmin() {
@@ -70,6 +71,11 @@ public class UserGroupService implements IUserGroupService {
}
}
+ @Override
+ public IUserGroup getUserGroup(ArtifactToken userGroupArt) {
+ return new UserGroupImpl(userGroupArt);
+ }
+
private static IUserGroupService getUserGroupService() {
if (userGroupService == null) {
userGroupService = new UserGroupService();
@@ -133,4 +139,9 @@ public class UserGroupService implements IUserGroupService {
}
return getUserGroup(userGroup).isMember(id);
}
+
+ @Override
+ public boolean isUserMember(IUserGroupArtifactToken userGroup, ArtifactId user) {
+ return isUserMember(userGroup, user.getId());
+ }
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java
index 90733ccbc1..09a9cef242 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java
@@ -81,7 +81,6 @@ import org.eclipse.osee.framework.jdk.core.util.GUID;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.OseeSystemArtifacts;
import org.eclipse.osee.framework.skynet.core.User;
import org.eclipse.osee.framework.skynet.core.UserManager;
@@ -90,7 +89,7 @@ import org.eclipse.osee.framework.skynet.core.attribute.ArtifactReferenceAttribu
import org.eclipse.osee.framework.skynet.core.attribute.AttributeTypeManager;
import org.eclipse.osee.framework.skynet.core.event.model.AttributeChange;
import org.eclipse.osee.framework.skynet.core.internal.Activator;
-import org.eclipse.osee.framework.skynet.core.internal.ServiceUtil;
+import org.eclipse.osee.framework.skynet.core.internal.OseeApiService;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
@@ -1223,16 +1222,7 @@ public class Artifact extends NamedIdBase implements ArtifactToken, Adaptable, F
}
public final boolean isReadOnly() {
- boolean result = true;
- AccessPolicy service = null;
- try {
- service = ServiceUtil.getAccessPolicy();
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- if (service != null) {
- result = service.isReadOnly(this);
- }
+ boolean result = OseeApiService.get().getAccessControlService().isReadOnly(this);
return result;
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactPersistenceManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactPersistenceManager.java
index 4bcda429b5..246e8a855e 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactPersistenceManager.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactPersistenceManager.java
@@ -23,10 +23,8 @@ import org.eclipse.osee.framework.core.enums.DeletionFlag;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
-import org.eclipse.osee.framework.jdk.core.util.Collections;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-import org.eclipse.osee.framework.skynet.core.internal.ServiceUtil;
+import org.eclipse.osee.framework.skynet.core.internal.OseeApiService;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
@@ -64,8 +62,7 @@ public class ArtifactPersistenceManager {
// Confirm artifacts are fit to delete
private static void performDeleteChecks(Collection<Artifact> artifacts) {
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
- XResultData results = policy.isDeleteable(Collections.castAll(artifacts), new XResultData());
+ XResultData results = OseeApiService.get().getAccessControlService().isDeleteable(artifacts, new XResultData());
if (results.isErrors()) {
throw new OseeStateException(results.toString());
}
@@ -73,8 +70,8 @@ public class ArtifactPersistenceManager {
// Confirm relations are fit to delete
public static void performDeleteRelationChecks(Artifact artifact, RelationTypeToken relationType) {
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
- XResultData results = policy.isDeleteableRelation(artifact, relationType, new XResultData());
+ XResultData results =
+ OseeApiService.get().getAccessControlService().isDeleteableRelation(artifact, relationType, new XResultData());
if (results.isErrors()) {
throw new OseeStateException(results.toString());
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Attribute.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Attribute.java
index 45454f5388..088184a684 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Attribute.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Attribute.java
@@ -34,12 +34,11 @@ import org.eclipse.osee.framework.jdk.core.util.Conditions;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.messaging.event.res.AttributeEventModificationType;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.attribute.AttributeTypeManager;
import org.eclipse.osee.framework.skynet.core.attribute.providers.IAttributeDataProvider;
import org.eclipse.osee.framework.skynet.core.event.model.AttributeChange;
import org.eclipse.osee.framework.skynet.core.internal.Activator;
-import org.eclipse.osee.framework.skynet.core.internal.ServiceUtil;
+import org.eclipse.osee.framework.skynet.core.internal.OseeApiService;
/**
* @author Ryan D. Brooks
@@ -141,8 +140,8 @@ public abstract class Attribute<T> implements Comparable<Attribute<T>>, IAttribu
private void checkIsRenameable(T value) {
if (getAttributeType().equals(CoreAttributeTypes.Name) && !value.equals(getValue())) {
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
- XResultData results = policy.isRenamable(Collections.singleton(getArtifact()), new XResultData());
+ XResultData results = OseeApiService.get().getAccessControlService().isRenamable(
+ Collections.singleton(getArtifact()), new XResultData());
if (results.isErrors()) {
throw new OseeStateException(results.toString());
}
@@ -162,6 +161,7 @@ public abstract class Attribute<T> implements Comparable<Attribute<T>>, IAttribu
setToDefaultValue();
}
+ @SuppressWarnings("unchecked")
protected void setToDefaultValue() {
AttributeTypeGeneric<?> attributeType = AttributeTypeManager.getAttributeType(attributeTypeToken.getId());
T defaultValue = (T) getArtifact().getArtifactType().getAttributeDefault(attributeType);
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/BranchManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/BranchManager.java
index 388a1ddc3d..a249a06eae 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/BranchManager.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/BranchManager.java
@@ -767,4 +767,5 @@ public final class BranchManager {
return getBranch(transaction.getBranch());
}
-}
\ No newline at end of file
+}
+
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/checks/AssociatedArtifactCheck.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/checks/AssociatedArtifactCheck.java
deleted file mode 100644
index 5fc88f178f..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/checks/AssociatedArtifactCheck.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.skynet.core.artifact.checks;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.access.ArtifactCheck;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.jdk.core.result.XResultData;
-import org.eclipse.osee.framework.jdk.core.util.Collections;
-import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
-
-/**
- * @author John Misinco
- */
-public class AssociatedArtifactCheck implements ArtifactCheck {
-
- @Override
- public XResultData isDeleteable(Collection<? extends ArtifactToken> artifacts, XResultData results) {
- return BranchManager.isDeleteable(Collections.castAll(artifacts), results);
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java
index 44510172c0..dc8d13b0a3 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/OseeEventManager.java
@@ -19,6 +19,8 @@ import java.util.List;
import java.util.logging.Level;
import org.eclipse.core.runtime.Assert;
import org.eclipse.osee.activity.api.ActivityLog;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEvent;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEventPayload;
import org.eclipse.osee.framework.core.client.TopicEventUtil;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.BranchId;
@@ -35,8 +37,6 @@ import org.eclipse.osee.framework.skynet.core.event.filter.BranchIdEventFilter;
import org.eclipse.osee.framework.skynet.core.event.filter.IEventFilter;
import org.eclipse.osee.framework.skynet.core.event.listener.EventQosType;
import org.eclipse.osee.framework.skynet.core.event.listener.IEventListener;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEventPayload;
import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent;
import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent.ArtifactEventType;
import org.eclipse.osee.framework.skynet.core.event.model.BranchEvent;
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessArtifactLockTopicEvent.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessArtifactLockTopicEvent.java
deleted file mode 100644
index b1ac4d8fda..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessArtifactLockTopicEvent.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2015 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.skynet.core.event.model;
-
-import javax.xml.bind.annotation.XmlRootElement;
-
-/**
- * @author Donald G. Dunne
- */
-@XmlRootElement
-public class AccessArtifactLockTopicEvent extends AccessTopicEventPayload {
-
- boolean locked;
-
- public boolean isLocked() {
- return locked;
- }
-
- public void setLocked(boolean locked) {
- this.locked = locked;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessTopicEvent.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessTopicEvent.java
deleted file mode 100644
index 074587ed39..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessTopicEvent.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2016 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.skynet.core.event.model;
-
-import org.eclipse.osee.framework.core.data.TransactionToken;
-import org.eclipse.osee.framework.core.event.AbstractTopicEvent;
-import org.eclipse.osee.framework.core.event.EventType;
-
-/**
- * @author Donald G. Dunne
- */
-public class AccessTopicEvent extends AbstractTopicEvent {
-
- public static final AccessTopicEvent ACCESS_ARTIFACT_MODIFIED =
- new AccessTopicEvent(EventType.LocalAndRemote, "framework/access/artifact/modified");
- public static final AccessTopicEvent ACCESS_ARTIFACT_LOCK_MODIFIED =
- new AccessTopicEvent(EventType.LocalAndRemote, "framework/access/artifact/lock/modified");
- public static final AccessTopicEvent ACCESS_BRANCH_MODIFIED =
- new AccessTopicEvent(EventType.LocalAndRemote, "framework/access/branch/modified");
- public static final AccessTopicEvent USER_AUTHENTICATED =
- new AccessTopicEvent(EventType.LocalOnly, "framework/access/user/authenticated");
-
- private AccessTopicEvent(EventType eventType, String topic) {
- super(eventType, TransactionToken.SENTINEL, topic);
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessTopicEventPayload.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessTopicEventPayload.java
deleted file mode 100644
index 8c0fd457aa..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/AccessTopicEventPayload.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2015 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.skynet.core.event.model;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.osee.framework.core.data.ArtifactId;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.BranchId;
-
-/**
- * Payload for the Access Topic Event
- *
- * @author Donald G. Dunne
- */
-public class AccessTopicEventPayload implements ISerializeableTopicPayload {
- BranchId branch;
- List<String> artifactUuids = new ArrayList<>();
-
- public BranchId getBranch() {
- return branch;
- }
-
- public void setBranch(BranchId branch) {
- this.branch = branch;
- }
-
- public List<String> getArtifactUuids() {
- return artifactUuids;
- }
-
- public void setArtifactUuids(List<String> artifactUuids) {
- this.artifactUuids = artifactUuids;
- }
-
- public void addArtifact(ArtifactId artifact) {
- addArtifact(artifact.getUuid());
- }
-
- public void addArtifact(Long artifactUuid) {
- getArtifactUuids().add(String.valueOf(artifactUuid));
- }
-
- public void addArtifact(Integer artifactId) {
- getArtifactUuids().add(String.valueOf(Long.valueOf(artifactId)));
- }
-
- /**
- * @return true if this artifact matches event branch and contains artifact
- */
- public boolean matches(ArtifactToken artifact) {
- if (!artifactUuids.isEmpty()) {
- return artifact.isOnBranch(branch) && artifactUuids.contains(artifact.getIdString());
- }
- return false;
- }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/ISerializeableTopicPayload.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/ISerializeableTopicPayload.java
deleted file mode 100644
index dabce1df58..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/event/model/ISerializeableTopicPayload.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2015 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.skynet.core.event.model;
-
-/**
- * Class that is serializable for use in Topic Event as payload
- *
- * @author Donald G. Dunne
- */
-public interface ISerializeableTopicPayload {
- // do nothing
-}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/httpRequests/CommitBranchHttpRequestOperation.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/httpRequests/CommitBranchHttpRequestOperation.java
index bc624e5eb1..ef664539be 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/httpRequests/CommitBranchHttpRequestOperation.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/httpRequests/CommitBranchHttpRequestOperation.java
@@ -30,7 +30,6 @@ import org.eclipse.osee.framework.core.operation.AbstractOperation;
import org.eclipse.osee.framework.core.operation.IOperation;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.messaging.event.res.AttributeEventModificationType;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactCache;
import org.eclipse.osee.framework.skynet.core.artifact.Attribute;
@@ -46,6 +45,7 @@ import org.eclipse.osee.framework.skynet.core.event.model.BranchEventType;
import org.eclipse.osee.framework.skynet.core.event.model.EventBasicGuidRelation;
import org.eclipse.osee.framework.skynet.core.event.model.EventModifiedBasicGuidArtifact;
import org.eclipse.osee.framework.skynet.core.internal.Activator;
+import org.eclipse.osee.framework.skynet.core.internal.OseeApiService;
import org.eclipse.osee.framework.skynet.core.internal.ServiceUtil;
import org.eclipse.osee.framework.skynet.core.relation.RelationEventType;
import org.eclipse.osee.framework.skynet.core.revision.ChangeManager;
@@ -106,8 +106,7 @@ public final class CommitBranchHttpRequestOperation extends AbstractOperation {
}
private void handleResponse(TransactionToken newTransaction, IProgressMonitor monitor, BranchId sourceBranch, BranchId destinationBranch) {
- AccessPolicy accessPolicy = ServiceUtil.getAccessPolicy();
- accessPolicy.removePermissions(sourceBranch);
+ OseeApiService.get().getAccessControlService().removePermissions(sourceBranch);
// Update commit artifact cache with new information
Artifact associatedArtifact = BranchManager.getAssociatedArtifact(sourceBranch);
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/AccessPolicyImpl.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/AccessPolicyImpl.java
deleted file mode 100644
index 09b68eb48a..0000000000
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/AccessPolicyImpl.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.skynet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.logging.Level;
-import org.eclipse.osee.framework.core.access.AccessDataQuery;
-import org.eclipse.osee.framework.core.access.IAccessControlService;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
-import org.eclipse.osee.framework.core.client.OseeClientProperties;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.ArtifactTypeId;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.RelationTypeSide;
-import org.eclipse.osee.framework.core.data.RelationTypeToken;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.core.enums.RelationSide;
-import org.eclipse.osee.framework.jdk.core.result.XResultData;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
-import org.eclipse.osee.framework.skynet.core.User;
-import org.eclipse.osee.framework.skynet.core.UserManager;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AccessPolicyImpl implements AccessPolicy {
-
- public IAccessControlService accessControlService;
-
- public void setAccessControlService(IAccessControlService service) {
- this.accessControlService = service;
- }
-
- private User getCurrentUser() {
- return UserManager.getUser();
- }
-
- private IAccessControlService getAccessService() {
- return accessControlService;
- }
-
- private boolean printErrorMessage(User user, Collection<?> objects, PermissionStatus permissionStatus, Level level) {
- boolean notMatched = !permissionStatus.matched();
-
- if (notMatched) {
- String objectString = org.eclipse.osee.framework.jdk.core.util.Collections.toString("; ", objects);
- String reasonString = permissionStatus.getReason();
- if (Strings.isValid(reasonString)) {
- reasonString = String.format("\n reason:[%s]", reasonString);
- } else {
- reasonString = "";
- }
- OseeLog.logf(Activator.class, level,
- "Access Denied - [%s] does not have valid permission to edit\n item(s) : [%s]%s", user, objectString,
- reasonString);
- }
- return notMatched;
- }
-
- @Override
- public void removePermissions(BranchId branch) {
- getAccessService().removePermissions(branch);
- }
-
- @Override
- public boolean isReadOnly(Artifact artifact) {
- try {
- return artifact.isDeleted() || artifact.isHistorical() || !BranchManager.isEditable(
- artifact.getBranch()) || !getAccessService().hasPermission(artifact, PermissionEnum.WRITE);
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- return true;
- }
- }
-
- @Override
- public PermissionStatus hasBranchPermission(BranchId branch, PermissionEnum permission, Level level) {
- User currentUser = getCurrentUser();
- AccessDataQuery query = getAccessService().getAccessData(currentUser, java.util.Collections.singleton(branch));
- PermissionStatus permissionStatus = null;
- if (!OseeClientProperties.isInDbInit()) {
- permissionStatus = new PermissionStatus();
- query.branchMatches(permission, branch, permissionStatus);
- printErrorMessage(currentUser, java.util.Collections.singleton(branch), permissionStatus, level);
- } else {
- permissionStatus = new PermissionStatus(true, "In DB Init; All permission enabled");
- }
- return permissionStatus;
- }
-
- /**
- * @param level - A level of OseeLevel.SEVERE_POPUP will cause an error dialog to be displayed to the user. All
- * others will write to the log.
- */
- @Override
- public PermissionStatus hasAttributeTypePermission(Collection<? extends ArtifactToken> artifacts, AttributeTypeId attributeType, PermissionEnum permission, Level level) {
- User currentUser = getCurrentUser();
- AccessDataQuery query = getAccessService().getAccessData(currentUser, artifacts);
-
- PermissionStatus permissionStatus = null;
- if (!OseeClientProperties.isInDbInit()) {
- permissionStatus = new PermissionStatus();
- if (artifacts != null) {
- for (ArtifactToken artifact : artifacts) {
- query.attributeTypeMatches(permission, artifact, attributeType, permissionStatus);
-
- if (printErrorMessage(currentUser, artifacts, permissionStatus, level)) {
- break;
- }
- }
- }
- } else {
- permissionStatus = new PermissionStatus(true, "In DB Init; All permission enabled");
- }
-
- return permissionStatus;
- }
-
- @Override
- public PermissionStatus hasArtifactPermission(Collection<Artifact> artifacts, PermissionEnum permission, Level level) {
- User currentUser = getCurrentUser();
- AccessDataQuery query = getAccessService().getAccessData(currentUser, artifacts);
-
- PermissionStatus permissionStatus = null;
- if (!OseeClientProperties.isInDbInit()) {
- permissionStatus = new PermissionStatus();
- if (artifacts != null) {
- for (Artifact artifact : artifacts) {
- if (artifact.isInDb()) {
- query.artifactMatches(permission, artifact, permissionStatus);
- }
- if (printErrorMessage(currentUser, artifacts, permissionStatus, level)) {
- break;
- }
- }
- }
- } else {
- permissionStatus = new PermissionStatus(true, "In DB Init; All permission enabled");
- }
-
- return permissionStatus;
- }
-
- @Override
- public PermissionStatus hasArtifactTypePermission(BranchId branch, Collection<? extends ArtifactTypeId> artifactTypes, PermissionEnum permission, Level level) {
- User currentUser = getCurrentUser();
- AccessDataQuery query = getAccessService().getAccessData(currentUser, java.util.Collections.singleton(branch));
-
- PermissionStatus permissionStatus = null;
- if (!OseeClientProperties.isInDbInit()) {
- permissionStatus = new PermissionStatus();
- if (artifactTypes != null) {
- for (ArtifactTypeId artifactType : artifactTypes) {
- query.branchArtifactTypeMatches(permission, branch, artifactType, permissionStatus);
-
- if (printErrorMessage(currentUser, artifactTypes, permissionStatus, level)) {
- break;
- }
- }
- }
- } else {
- permissionStatus = new PermissionStatus(true, "In DB Init; All permission enabled");
- }
-
- return permissionStatus;
- }
-
- @Override
- public PermissionStatus canRelationBeModified(Artifact subject, Collection<Artifact> toBeRelated, RelationTypeSide relationTypeSide, Level level) {
- PermissionStatus subjectPermission = canRelationBeModifiedHelper(subject, null, relationTypeSide, level);
- if (subjectPermission.matched() && toBeRelated != null && !toBeRelated.isEmpty()) {
- for (Artifact art : toBeRelated) {
- RelationSide otherSide = relationTypeSide.getSide().oppositeSide();
- PermissionStatus toBeRelatedPermission =
- canRelationBeModifiedHelper(art, null, new RelationTypeSide(relationTypeSide, otherSide), level);
- if (!toBeRelatedPermission.matched()) {
- return toBeRelatedPermission;
- }
- }
- }
- return subjectPermission;
- }
-
- private PermissionStatus canRelationBeModifiedHelper(Artifact subject, Collection<Artifact> toBeRelated, RelationTypeSide relationTypeSide, Level level) {
- PermissionStatus status = hasArtifactRelationPermission(java.util.Collections.singleton(subject),
- java.util.Collections.singleton(relationTypeSide), PermissionEnum.WRITE, level);
-
- if (!status.matched()) {
- ArrayList<Artifact> artifacts = new ArrayList<>();
- artifacts.add(subject);
- if (toBeRelated != null) {
- artifacts.addAll(toBeRelated);
- }
- status = hasArtifactPermission(artifacts, PermissionEnum.WRITE, level);
- }
- return status;
- }
-
- private PermissionStatus hasArtifactRelationPermission(Collection<? extends ArtifactToken> artifacts, Collection<? extends RelationTypeSide> relationTypeSides, PermissionEnum permission, Level level) {
- AccessDataQuery query = getAccessService().getAccessData(getCurrentUser(), artifacts);
-
- PermissionStatus permissionStatus = null;
- if (!OseeClientProperties.isInDbInit()) {
- permissionStatus = new PermissionStatus();
- if (!OseeClientProperties.isInDbInit()) {
- permissionStatus = new PermissionStatus();
- for (ArtifactToken artifact : artifacts) {
- for (RelationTypeSide relationTypeSide : relationTypeSides) {
- query.relationTypeMatches(permission, artifact, relationTypeSide, permissionStatus);
- }
- }
- } else {
- permissionStatus = new PermissionStatus(true, "In DB Init; All permission enabled");
- }
- } else {
- permissionStatus = new PermissionStatus(true, "In DB Init; All permission enabled");
- }
-
- return permissionStatus;
- }
-
- @Override
- public XResultData isDeleteable(Collection<? extends ArtifactToken> artifacts, XResultData results) {
- return accessControlService.isDeleteable(artifacts, results);
- }
-
- @Override
- public XResultData isRenamable(Collection<? extends ArtifactToken> artifacts, XResultData results) {
- return accessControlService.isRenamable(artifacts, results);
- }
-
- @Override
- public XResultData isDeleteableRelation(ArtifactToken artifact, RelationTypeToken relationType, XResultData results) {
- return accessControlService.isDeleteableRelation(artifact, relationType, results);
- }
-
- @Override
- public void ensurePopulated() {
- accessControlService.ensurePopulated();
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/OseeApiImpl.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/OseeApiImpl.java
index 9efe1fea2d..7f32f147e1 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/OseeApiImpl.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/OseeApiImpl.java
@@ -11,6 +11,9 @@
package org.eclipse.osee.framework.skynet.core.internal;
import org.eclipse.osee.framework.core.OseeApiBase;
+import org.eclipse.osee.framework.core.access.IAccessControlService;
+import org.eclipse.osee.framework.skynet.core.access.internal.AccessControlServiceImpl;
+import org.eclipse.osee.framework.skynet.core.utility.ConnectionHandler;
/**
* @author Donald G. Dunne
@@ -19,9 +22,18 @@ public class OseeApiImpl extends OseeApiBase {
// for ReviewOsgiXml public void setOrcsTokenService(OrcsTokenService tokenService)
// for ReviewOsgiXml public void setJaxRsApi(JaxRsApi jaxRsApi)
+ IAccessControlService accessControlService;
public OseeApiImpl() {
// for jas-rs
}
+ @Override
+ public IAccessControlService getAccessControlService() {
+ if (accessControlService == null) {
+ accessControlService = new AccessControlServiceImpl(ConnectionHandler.getJdbcClient(), tokenService());
+ }
+ return accessControlService;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/ServiceUtil.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/ServiceUtil.java
index daf919f1a8..2fb4a23c90 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/ServiceUtil.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/ServiceUtil.java
@@ -14,8 +14,6 @@
package org.eclipse.osee.framework.skynet.core.internal;
import java.util.Properties;
-import java.util.logging.Level;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.osee.cache.admin.CacheAdmin;
import org.eclipse.osee.framework.core.OrcsTokenService;
import org.eclipse.osee.framework.core.client.ClientSessionManager;
@@ -23,12 +21,8 @@ import org.eclipse.osee.framework.core.services.IOseeCachingService;
import org.eclipse.osee.framework.core.sql.OseeSql;
import org.eclipse.osee.framework.core.util.OsgiUtil;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.event.OseeEventService;
import org.eclipse.osee.orcs.rest.client.OseeClient;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
public final class ServiceUtil {
@@ -65,18 +59,6 @@ public final class ServiceUtil {
return getService(OseeClient.class);
}
- public static AccessPolicy getAccessPolicy() {
- try {
- Bundle bundle = Platform.getBundle("org.eclipse.osee.framework.access");
- if (bundle.getState() != Bundle.ACTIVE) {
- bundle.start();
- }
- } catch (BundleException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- return getService(AccessPolicy.class);
- }
-
public static boolean useOracleHints() {
return ClientSessionManager.useOracleHints();
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/users/BootStrapUser.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/users/BootStrapUser.java
index fa4bf3cc2d..119d69ca5e 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/users/BootStrapUser.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/users/BootStrapUser.java
@@ -22,10 +22,10 @@ import org.eclipse.osee.framework.skynet.core.User;
*/
public class BootStrapUser extends User {
- public static BootStrapUser instance;
+ private static BootStrapUser instance;
private BootStrapUser() {
- super(CoreBranches.COMMON);
+ super(SystemUser.BootStrap.getId(), "guid", CoreBranches.COMMON);
}
public static BootStrapUser getInstance() {
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/users/CurrentUserProvider.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/users/CurrentUserProvider.java
index 7bd0372eb9..dabcdc46de 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/users/CurrentUserProvider.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/internal/users/CurrentUserProvider.java
@@ -18,6 +18,8 @@ import java.util.concurrent.FutureTask;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
import org.eclipse.osee.cache.admin.Cache;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEvent;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEventPayload;
import org.eclipse.osee.framework.core.client.ClientSessionManager;
import org.eclipse.osee.framework.core.data.IdeClientSession;
import org.eclipse.osee.framework.core.data.UserToken;
@@ -31,8 +33,6 @@ import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.User;
import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEventPayload;
import org.eclipse.osee.framework.skynet.core.internal.Activator;
import org.eclipse.osee.jaxrs.JaxRsClient;
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransaction.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransaction.java
index 7201b002a6..850e1ad1b7 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransaction.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/transaction/SkynetTransaction.java
@@ -26,9 +26,7 @@ import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.logging.Level;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.AttributeId;
@@ -39,6 +37,7 @@ import org.eclipse.osee.framework.core.data.OseeCodeVersion;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
import org.eclipse.osee.framework.core.data.RelationTypeToken;
import org.eclipse.osee.framework.core.data.TransactionId;
+import org.eclipse.osee.framework.core.enums.DeletionFlag;
import org.eclipse.osee.framework.core.enums.ModificationType;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.RelationSide;
@@ -48,21 +47,24 @@ import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.core.model.TransactionRecord;
import org.eclipse.osee.framework.core.operation.IOperation;
import org.eclipse.osee.framework.core.operation.Operations;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.CompositeKeyHashMap;
import org.eclipse.osee.framework.jdk.core.type.Id;
+import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
+import org.eclipse.osee.framework.jdk.core.util.OseeProperties;
import org.eclipse.osee.framework.jdk.core.util.time.GlobalTime;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.User;
import org.eclipse.osee.framework.skynet.core.UserManager;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransactionData;
import org.eclipse.osee.framework.skynet.core.artifact.Attribute;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
import org.eclipse.osee.framework.skynet.core.attribute.AttributeTransactionData;
-import org.eclipse.osee.framework.skynet.core.internal.ServiceUtil;
+import org.eclipse.osee.framework.skynet.core.internal.OseeApiService;
import org.eclipse.osee.framework.skynet.core.relation.RelationEventType;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.skynet.core.relation.RelationTransactionData;
@@ -88,9 +90,8 @@ public final class SkynetTransaction extends TransactionOperation<BranchId> {
private String comment;
private User user;
-
- private AccessPolicy access;
private TransactionRecord transaction;
+ private static boolean overrideAccess;
protected SkynetTransaction(TxMonitor<BranchId> txMonitor, BranchId branch, String comment) {
super(txMonitor, branch, comment);
@@ -126,10 +127,29 @@ public final class SkynetTransaction extends TransactionOperation<BranchId> {
String msg = getCheckAccessError(artifact, txBranch, branch);
throw new OseeStateException(msg);
}
-
- checkBranch(artifact);
+ if (!SkynetTransaction.isOverrideAccess()) {
+ for (Attribute<?> attr : artifact.getAttributes()) {
+ if (attr.isDirty()) {
+ XResultData rd = OseeApiService.get().getAccessControlService().hasAttributeTypePermission(
+ Collections.singleton(artifact), attr.getAttributeType(), PermissionEnum.WRITE,
+ AccessControlArtifactUtil.getXResultAccessHeader("Skynet Transaction: " + comment, artifact));
+ if (rd.isErrors()) {
+ throw new OseeCoreException(rd.toString());
+ }
+ }
+ }
+ for (RelationLink rel : artifact.getRelationsAll(DeletionFlag.EXCLUDE_DELETED)) {
+ if (rel.isDirty()) {
+ XResultData rd = OseeApiService.get().getAccessControlService().hasRelationTypePermission(artifact,
+ rel.getRelationType(), Collections.emptyList(), PermissionEnum.WRITE,
+ AccessControlArtifactUtil.getXResultAccessHeader("Skynet Transaction: " + comment, artifact));
+ if (rd.isErrors()) {
+ throw new OseeCoreException(rd.toString());
+ }
+ }
+ }
+ }
checkNotHistorical(artifact);
- getAccess().hasArtifactPermission(Collections.singleton(artifact), PermissionEnum.WRITE, Level.FINE);
}
public String getCheckAccessError(ArtifactToken artifact, BranchId txBranch, BranchToken branch) {
@@ -139,34 +159,6 @@ public final class SkynetTransaction extends TransactionOperation<BranchId> {
return msg;
}
- private void checkBranch(ArtifactToken artifact) {
- if (!isBranchWritable(artifact.getBranch())) {
- Branch branch = BranchManager.getBranch(artifact.getBranch());
- String msg = getCheckBranchError(artifact, branch);
- throw new OseeStateException(msg);
- }
- }
-
- public String getCheckBranchError(ArtifactToken artifact, BranchToken branch) {
- String msg = String.format("The artifact\n\n%s\n\nis on a non-editable branch\n\n%s\n\n",
- artifact.toStringWithId(), branch.toStringWithId());
- return msg;
- }
-
- private void checkBranch(RelationLink link) {
- if (!isBranchWritable(link.getBranch())) {
- Branch branch = BranchManager.getBranch(link.getBranch());
- String msg = getCheckBranchError(link, branch);
- throw new OseeStateException(msg);
- }
- }
-
- public String getCheckBranchError(RelationLink link, BranchToken branch) {
- String msg = String.format("The relation link\n\n%s\n\nis on a non-editable branch\n\n%s\n\n", link,
- branch.toStringWithId());
- return msg;
- }
-
private void checkNotHistorical(Artifact artifact) {
if (artifact.isHistorical()) {
String msg = getCheckNotHistoricalError(artifact);
@@ -180,45 +172,24 @@ public final class SkynetTransaction extends TransactionOperation<BranchId> {
return msg;
}
- private boolean isBranchWritable(BranchId branch) {
- boolean toReturn = true;
- if (!UserManager.duringMainUserCreation()) {
- toReturn = getAccess().hasBranchPermission(branch, PermissionEnum.WRITE,
- Level.FINE).matched() && BranchManager.isEditable(branch);
- }
- return toReturn;
- }
-
private void checkAccess(Artifact artifact, RelationLink link) {
if (UserManager.duringMainUserCreation()) {
return;
}
- checkBranch(link);
- BranchId txBranch = getBranch();
- if (!link.isOnBranch(txBranch)) {
- Branch branch = BranchManager.getBranch(link.getBranch());
- String msg = String.format(
- "The relation link\n\n%s\n\nis on branch\n\n%s\n\nbut this transaction is for branch\n\n%s\n\n",
- link.getId(), branch.toStringWithId(), txBranch);
- throw new OseeStateException(msg);
- }
-
- RelationSide sideToCheck = link.getSide(artifact).oppositeSide();
- PermissionStatus status = getAccess().canRelationBeModified(artifact, null,
- new RelationTypeSide(link.getRelationType(), sideToCheck), Level.FINE);
-
- if (!status.matched()) {
- throw new OseeCoreException(
- "Access Denied - [%s] does not have valid permission to edit this relation\n itemsToPersist:[%s]\n reason:[%s]",
- getAuthor(), link, status.getReason());
- }
- }
-
- private AccessPolicy getAccess() {
- if (access == null) {
- access = ServiceUtil.getAccessPolicy();
+ if (!SkynetTransaction.isOverrideAccess()) {
+ BranchId txBranch = getBranch();
+ if (!link.isOnBranch(txBranch)) {
+ RelationSide sideToCheck = link.getSide(artifact).oppositeSide();
+ RelationTypeSide relTypeSide = new RelationTypeSide(link.getRelationType(), sideToCheck);
+ XResultData rd =
+ OseeApiService.get().getAccessControlService().hasRelationTypePermission(artifact, relTypeSide, null,
+ PermissionEnum.WRITE, AccessControlArtifactUtil.getXResultAccessHeader("Relation Access Denied",
+ Collections.singleton(artifact), relTypeSide));
+ if (rd.isErrors()) {
+ throw new OseeCoreException(rd.toString());
+ }
+ }
}
- return access;
}
private Collection<BaseTransactionData> getTransactionData() {
@@ -270,7 +241,9 @@ public final class SkynetTransaction extends TransactionOperation<BranchId> {
}
return;
}
- checkAccess(artifact);
+ if (!SkynetTransaction.isOverrideAccess()) {
+ checkAccess(artifact);
+ }
setTxState(TxState.MODIFIED);
if (!artifact.isInDb() || artifact.hasDirtyArtifactType() || artifact.getModType().isDeleted() || artifact.getModType() == REPLACED_WITH_VERSION || artifact.isUseBackingdata()) {
@@ -350,7 +323,9 @@ public final class SkynetTransaction extends TransactionOperation<BranchId> {
private void addRelation(Artifact artifact, RelationLink link) {
synchronized (getTxMonitor()) {
- checkAccess(artifact, link);
+ if (!SkynetTransaction.isOverrideAccess()) {
+ checkAccess(artifact, link);
+ }
setTxState(TxState.MODIFIED);
link.setNotDirty();
@@ -471,4 +446,16 @@ public final class SkynetTransaction extends TransactionOperation<BranchId> {
getTxMonitor().cancel(getBranch(), this);
}
+ public static boolean isOverrideAccess() {
+ return overrideAccess;
+ }
+
+ public static void setOverrideAccess(boolean overrideAccess) {
+ if (OseeProperties.isInTest()) {
+ SkynetTransaction.overrideAccess = overrideAccess;
+ } else {
+ throw new OseeArgumentException("Access Control can not be overridden in production");
+ }
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/Artifacts.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/Artifacts.java
index 3e8d8ff0b8..ae9dfb7aa6 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/Artifacts.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/Artifacts.java
@@ -180,4 +180,13 @@ public final class Artifacts {
strB.append(RelationManager.reportHasDirtyLinks(artifact));
return strB.toString();
}
+
+ public static Object toStringWithIds(Collection<? extends ArtifactToken> artifacts) {
+ StringBuilder sb = new StringBuilder();
+ for (ArtifactToken art : artifacts) {
+ sb.append(art.toStringWithId());
+ sb.append(", ");
+ }
+ return sb.toString().replaceFirst(", $", "");
+ }
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.data.model.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.ui.data.model.editor/META-INF/MANIFEST.MF
index a9e3eb1527..a62f1c5977 100644
--- a/plugins/org.eclipse.osee.framework.ui.data.model.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.framework.ui.data.model.editor/META-INF/MANIFEST.MF
@@ -33,7 +33,6 @@ Import-Package: org.eclipse.core.commands,
org.eclipse.graphiti.util,
org.eclipse.jface.resource,
org.eclipse.osee.framework.core.data,
- org.eclipse.osee.framework.core.dsl.oseeDsl,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.enums.token,
org.eclipse.osee.framework.core.exception,
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.ui.skynet.test/META-INF/MANIFEST.MF
index d86cc2c036..6e58f10b6d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet.test/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.framework.ui.skynet.test/META-INF/MANIFEST.MF
@@ -10,7 +10,6 @@ Export-Package: org.eclipse.osee.framework.ui.skynet
Import-Package: org.eclipse.nebula.widgets.xviewer.core.model,
org.apache.cxf.jaxrs.client,
org.apache.cxf.jaxrs.client.spec,
- org.eclipse.osee.framework.access,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.enums.token,
org.eclipse.osee.framework.jdk.core.util.windows,
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/AllUiSkynetJunitTestSuite.java b/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/AllUiSkynetJunitTestSuite.java
index db3d6d1b1d..396875c3e9 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/AllUiSkynetJunitTestSuite.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/AllUiSkynetJunitTestSuite.java
@@ -13,7 +13,6 @@
package org.eclipse.osee.framework.ui.skynet;
-import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTestSuite;
import org.eclipse.osee.framework.ui.skynet.renderer.RendererTestSuite;
import org.eclipse.osee.framework.ui.skynet.results.ResultsTestSuite;
import org.eclipse.osee.framework.ui.skynet.util.UtilTestSuite;
@@ -24,7 +23,6 @@ import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
- ArtifactTestSuite.class,
RendererTestSuite.class,
ResultsTestSuite.class,
UtilTestSuite.class,
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPromptChangeTest.java b/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPromptChangeTest.java
deleted file mode 100644
index e8b92acafc..0000000000
--- a/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPromptChangeTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2004, 2007 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.ui.skynet.artifact;
-
-import static org.eclipse.osee.framework.core.enums.CoreAttributeTypes.Annotation;
-import static org.eclipse.osee.framework.core.enums.CoreAttributeTypes.Name;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.logging.Level;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
-import org.eclipse.osee.framework.core.data.ArtifactToken;
-import org.eclipse.osee.framework.core.data.ArtifactTypeId;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.data.AttributeTypeToken;
-import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.RelationTypeSide;
-import org.eclipse.osee.framework.core.data.RelationTypeToken;
-import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.jdk.core.result.XResultData;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.ui.skynet.artifact.prompt.IHandlePromptChange;
-import org.eclipse.osee.framework.ui.skynet.artifact.prompt.IPromptFactory;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- * Test Case for {@link ArtifactPromptChange}
- *
- * @author Jeff C. Phillips
- */
-public class ArtifactPromptChangeTest {
-
- @Test
- public void test() {
- boolean persist = true;
- List<Artifact> artifacts = new ArrayList<>();
-
- MockPromptFactory MockPromptFactory = new MockPromptFactory();
- AccessPolicy policyHandler = new MockAccessPolicyHandler();
- MockPromptFactory.createPrompt(Annotation, "", artifacts, persist, false);
-
- ArtifactPrompt artifactPromptChange = new ArtifactPrompt(MockPromptFactory, policyHandler);
-
- Assert.assertFalse(artifactPromptChange.promptChangeAttribute(Annotation, artifacts, persist, false));
- Assert.assertTrue(artifactPromptChange.promptChangeAttribute(Name, artifacts, persist, false));
- }
-
- private static class MockAccessPolicyHandler implements AccessPolicy {
-
- @Override
- public PermissionStatus hasArtifactTypePermission(BranchId branch, Collection<? extends ArtifactTypeId> artifactTypes, PermissionEnum permission, Level level) {
- return new PermissionStatus();
- }
-
- @Override
- public boolean isReadOnly(Artifact artifact) {
- return false;
- }
-
- @Override
- public PermissionStatus hasBranchPermission(BranchId branch, PermissionEnum permission, Level level) {
- return new PermissionStatus();
- }
-
- @Override
- public PermissionStatus hasAttributeTypePermission(Collection<? extends ArtifactToken> artifacts, AttributeTypeId attributeType, PermissionEnum permission, Level level) {
- return new PermissionStatus();
- }
-
- @Override
- public PermissionStatus hasArtifactPermission(Collection<Artifact> artifacts, PermissionEnum permission, Level level) {
- return new PermissionStatus();
- }
-
- @Override
- public PermissionStatus canRelationBeModified(Artifact subject, Collection<Artifact> toBeRelated, RelationTypeSide relationTypeSide, Level level) {
- return new PermissionStatus();
- }
-
- @Override
- public void removePermissions(BranchId branch) {
- //
- }
-
- @Override
- public XResultData isDeleteable(Collection<? extends ArtifactToken> artifacts, XResultData results) {
- return new XResultData();
- }
-
- @Override
- public XResultData isRenamable(Collection<? extends ArtifactToken> artifacts, XResultData results) {
- return new XResultData();
- }
-
- @Override
- public XResultData isDeleteableRelation(ArtifactToken artifact, RelationTypeToken relationType, XResultData results) {
- return new XResultData();
- }
-
- @Override
- public void ensurePopulated() {
- // do nothing
- }
-
- }
-
- private static class MockPromptFactory implements IPromptFactory {
- @Override
- public IHandlePromptChange createPrompt(AttributeTypeToken attributeType, String displayName, Collection<? extends Artifact> artifacts, boolean persist, boolean multiLine) {
- return new TestPromptChange(attributeType, persist);
- }
- }
- private static class TestPromptChange implements IHandlePromptChange {
- private final AttributeTypeId attributeType;
- private final boolean persist;
-
- public TestPromptChange(AttributeTypeId attributeType, boolean persist) {
- super();
- this.attributeType = attributeType;
- this.persist = persist;
- }
-
- @Override
- public boolean promptOk() {
- return true;
- }
-
- @Override
- public boolean store() {
- return persist && attributeType.equals(Name);
- }
- }
-}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactTestSuite.java b/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactTestSuite.java
deleted file mode 100644
index 1e5e9c37e4..0000000000
--- a/plugins/org.eclipse.osee.framework.ui.skynet.test/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactTestSuite.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2012 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.ui.skynet.artifact;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({ArtifactPromptChangeTest.class})
-/**
- * @author Roberto E. Escobar
- */
-public class ArtifactTestSuite {
- // Test Suite
-}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF
index a36d3a2676..f0ae4f7cba 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF
@@ -10,8 +10,6 @@ Service-Component: OSGI-INF/*.xml
Bundle-Vendor: Eclipse Open System Engineering Environment
Import-Package: com.fasterxml.jackson.core.type,
com.fasterxml.jackson.databind,
- org.apache.cxf.jaxrs.client,
- org.apache.cxf.jaxrs.client.spec,
com.google.common.base,
com.google.common.cache,
com.google.common.collect,
@@ -27,6 +25,8 @@ Import-Package: com.fasterxml.jackson.core.type,
org.apache.commons.io,
org.apache.commons.lang,
org.apache.commons.lang.mutable,
+ org.apache.cxf.jaxrs.client,
+ org.apache.cxf.jaxrs.client.spec,
org.eclipse.compare,
org.eclipse.compare.structuremergeviewer,
org.eclipse.core.commands,
@@ -68,9 +68,10 @@ Import-Package: com.fasterxml.jackson.core.type,
org.eclipse.osee.account.rest.model,
org.eclipse.osee.ats.api.data,
org.eclipse.osee.define.api,
- org.eclipse.osee.framework.access,
org.eclipse.osee.framework.core,
org.eclipse.osee.framework.core.access,
+ org.eclipse.osee.framework.core.access.event,
+ org.eclipse.osee.framework.core.access.object,
org.eclipse.osee.framework.core.client,
org.eclipse.osee.framework.core.client.server,
org.eclipse.osee.framework.core.data,
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/OSGI-INF/access.control.service.ref.xml b/plugins/org.eclipse.osee.framework.ui.skynet/OSGI-INF/access.control.service.ref.xml
deleted file mode 100644
index e553ff6084..0000000000
--- a/plugins/org.eclipse.osee.framework.ui.skynet/OSGI-INF/access.control.service.ref.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
- <implementation class="org.eclipse.osee.framework.ui.skynet.access.AccessControlService"/>
- <reference bind="setAccessService" cardinality="1..1" interface="org.eclipse.osee.framework.core.access.IAccessControlService" name="IAccessControlService" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/OSGI-INF/artifact.prompt.change.xml b/plugins/org.eclipse.osee.framework.ui.skynet/OSGI-INF/artifact.prompt.change.xml
deleted file mode 100644
index c94091ad49..0000000000
--- a/plugins/org.eclipse.osee.framework.ui.skynet/OSGI-INF/artifact.prompt.change.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.framework.ui.skynet.artifact.ArtifactPromptChange"/>
- <reference bind="setAccessPolicy" cardinality="1..1" interface="org.eclipse.osee.framework.skynet.core.AccessPolicy" name="AccessPolicy" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactContentProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactContentProvider.java
index e4bdcfdb9b..4b94a11142 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactContentProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactContentProvider.java
@@ -24,7 +24,6 @@ import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
import org.eclipse.osee.framework.core.enums.DeletionFlag;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
@@ -34,6 +33,7 @@ import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactChangeListener;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.explorer.ArtifactExplorerLinkNode;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
@@ -86,7 +86,8 @@ public class ArtifactContentProvider implements ITreeContentProvider, ArtifactCh
if (parentElement instanceof Artifact) {
Artifact parentItem = (Artifact) parentElement;
try {
- if (AccessControlManager.hasPermission(parentItem, PermissionEnum.READ)) {
+ if (OseeApiService.get().getAccessControlService().hasArtifactPermission(parentItem, PermissionEnum.READ,
+ null).isSuccess()) {
Collection<Artifact> children = parentItem.getChildren();
List<RelationLink> relationsAll = parentItem.getRelationsAll(DeletionFlag.EXCLUDE_DELETED);
List<Object> allChildren = new ArrayList<>();
@@ -180,7 +181,8 @@ public class ArtifactContentProvider implements ITreeContentProvider, ArtifactCh
if (element instanceof Artifact) {
Artifact artifact = (Artifact) element;
try {
- if (AccessControlManager.hasPermission(artifact, PermissionEnum.READ)) {
+ if (OseeApiService.get().getAccessControlService().hasArtifactPermission(artifact, PermissionEnum.READ,
+ null).isSuccess()) {
if (artifact.isDeleted()) {
return false;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java
index 76b40bc24d..1aaa806316 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java
@@ -21,7 +21,6 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.enums.ModificationType;
import org.eclipse.osee.framework.core.model.change.ChangeIgnoreType;
@@ -35,6 +34,7 @@ import org.eclipse.osee.framework.skynet.core.change.Change;
import org.eclipse.osee.framework.skynet.core.conflict.ArtifactConflict;
import org.eclipse.osee.framework.skynet.core.conflict.AttributeConflict;
import org.eclipse.osee.framework.skynet.core.conflict.Conflict;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.annotation.ArtifactAnnotation;
import org.eclipse.osee.framework.ui.skynet.artifact.annotation.AttributeAnnotationManager;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
@@ -300,7 +300,7 @@ public final class ArtifactImageManager {
} else {
KeyedImage imageKey = getArtifactTypeImage(type);
if (imageKey != null) {
- if (AccessControlManager.hasLock(artifact)) {
+ if (OseeApiService.get().getAccessControlService().hasLock(artifact)) {
return getLockedImage(imageKey, artifact);
}
return ImageManager.setupImage(imageKey);
@@ -318,7 +318,7 @@ public final class ArtifactImageManager {
try {
baseImageEnum = BaseImage.getBaseImageEnum(artifact);
- if (AccessControlManager.hasLock(artifact)) {
+ if (OseeApiService.get().getAccessControlService().hasLock(artifact)) {
return getLockedImage(baseImageEnum, artifact);
}
@@ -335,7 +335,7 @@ public final class ArtifactImageManager {
private static String getLockedImage(KeyedImage baseImageEnum, Artifact artifact) {
KeyedImage locked = FrameworkImage.LOCKED_NO_ACCESS;
- if (AccessControlManager.hasLockAccess(artifact)) {
+ if (OseeApiService.get().getAccessControlService().isReadOnly(artifact)) {
locked = FrameworkImage.LOCKED_WITH_ACCESS;
}
return ImageManager.setupImageWithOverlay(baseImageEnum, locked, Location.TOP_LEFT).getImageKey();
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java
index ea4457e8b4..c6b00fe650 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java
@@ -145,6 +145,7 @@ public enum FrameworkImage implements KeyedImage {
LINK("link.gif"),
LOAD("load.gif"),
LOCKED("lock.gif"),
+ LOCK_DETAILS("lock_details.gif"),
LOCK_LOCKED("lock_locked.gif"),
LOCK_UNLOCKED("lock_unlocked.gif"),
LOCK_OVERLAY("lock_overlay.gif"),
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationCellModifier.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationCellModifier.java
index 07c41826e6..f274e64fb1 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationCellModifier.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationCellModifier.java
@@ -18,14 +18,14 @@ import java.util.logging.Level;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.swt.IDirtiableEditor;
import org.eclipse.swt.widgets.Item;
@@ -45,22 +45,12 @@ public class RelationCellModifier implements ICellModifier {
public boolean canModify(Object element, String property) {
if (element instanceof WrapperForRelationLink) {
WrapperForRelationLink relLink = (WrapperForRelationLink) element;
- RelationTypeSide rts = new RelationTypeSide(relLink.getRelationType(), relLink.getRelationSide());
- boolean canModify = false;
- AccessPolicy policyHandlerService = null;
- try {
- policyHandlerService = ServiceUtil.getAccessPolicy();
- } catch (OseeCoreException ex1) {
- OseeLog.log(Activator.class, Level.SEVERE, ex1);
- }
- if (policyHandlerService != null) {
- try {
- canModify = policyHandlerService.canRelationBeModified(relLink.getArtifactA(),
- Arrays.asList(relLink.getArtifactB()), rts, Level.INFO).matched();
- } catch (OseeCoreException ex) {
- canModify = false;
- }
- }
+ RelationTypeSide relationTypeSide = new RelationTypeSide(relLink.getRelationType(), relLink.getRelationSide());
+
+ boolean canModify =
+ OseeApiService.get().getAccessControlService().hasRelationTypePermission(relLink.getArtifactA(),
+ relationTypeSide, Arrays.asList(relLink.getArtifactB()), PermissionEnum.WRITE, null).isSuccess();
+
return canModify;
}
return false;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationLabelProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationLabelProvider.java
index c45d951754..501070722b 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationLabelProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationLabelProvider.java
@@ -13,23 +13,23 @@
package org.eclipse.osee.framework.ui.skynet;
+import java.util.Collections;
import java.util.logging.Level;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
import org.eclipse.osee.framework.core.data.RelationTypeToken;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.RelationSide;
import org.eclipse.osee.framework.core.enums.RelationTypeMultiplicity;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.swt.ImageManager;
import org.eclipse.swt.graphics.Image;
@@ -65,12 +65,11 @@ public class RelationLabelProvider implements ITableLabelProvider, ILabelProvide
private boolean isLocked(RelationTypeSide relationTypeSide) {
boolean isLocked = true;
- AccessPolicy policyHandlerService;
try {
- policyHandlerService = ServiceUtil.getAccessPolicy();
- PermissionStatus permissionStatus =
- policyHandlerService.canRelationBeModified(artifact, null, relationTypeSide, Level.FINE);
- isLocked = !permissionStatus.matched();
+
+ boolean hasPermission = OseeApiService.get().getAccessControlService().hasRelationTypePermission(artifact,
+ relationTypeSide, Collections.emptyList(), PermissionEnum.WRITE, null).isSuccess();
+ isLocked = !hasPermission;
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationSkynetDragAndDrop.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationSkynetDragAndDrop.java
index e41efb974b..ddf5cee9dd 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationSkynetDragAndDrop.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationSkynetDragAndDrop.java
@@ -15,9 +15,11 @@ package org.eclipse.osee.framework.ui.skynet;
import java.io.File;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
+import java.util.List;
import java.util.logging.Level;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
@@ -28,6 +30,7 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
import org.eclipse.osee.framework.core.data.RelationTypeToken;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.RelationSide;
import org.eclipse.osee.framework.core.operation.AbstractOperation;
import org.eclipse.osee.framework.core.operation.IOperation;
@@ -35,15 +38,14 @@ import org.eclipse.osee.framework.core.operation.Operations;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
import org.eclipse.osee.framework.skynet.core.importing.parsers.HandleImport;
import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
import org.eclipse.osee.framework.skynet.core.relation.RelationTypeSideSorter;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.skynet.relation.explorer.RelationExplorerWindow;
import org.eclipse.osee.framework.ui.skynet.util.SkynetDragAndDrop;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -117,36 +119,38 @@ public final class RelationSkynetDragAndDrop extends SkynetDragAndDrop {
if (selected != null && selected.getData() instanceof RelationTypeSideSorter) {
ArtifactTransfer artTransfer = ArtifactTransfer.getInstance();
FileTransfer fileTransfer = FileTransfer.getInstance();
- RelationTypeSideSorter data = (RelationTypeSideSorter) selected.getData();
+ RelationTypeSideSorter relTypeSorter = (RelationTypeSideSorter) selected.getData();
if (artTransfer.isSupportedType(event.currentDataType)) {
try {
ArtifactData artData = artTransfer.nativeToJava(event.currentDataType);
- Artifact[] selectedArtifacts = artData.getArtifacts();
+ List<Artifact> relatedArts = new ArrayList<Artifact>();
+ for (Artifact relatedArt : artData.getArtifacts()) {
+ relatedArts.add(relatedArt);
+ }
+
String toolTipText = "";
- Artifact relationArtifact = data.getArtifact();
+ Artifact relationArtifact = relTypeSorter.getArtifact();
boolean canRelate = false;
- for (Artifact i : selectedArtifacts) {
- Artifact sideA = i;
+ for (Artifact art : relatedArts) {
+ Artifact sideA = art;
Artifact sideB = relationArtifact;
- if (data.getSide() == RelationSide.SIDE_B) {
+ if (relTypeSorter.getSide() == RelationSide.SIDE_B) {
sideA = relationArtifact;
- sideB = i;
+ sideB = art;
}
- canRelate = ensureRelationCanBeAdded(data.getRelationType(), sideA, sideB);
+ canRelate = ensureRelationCanBeAdded(relTypeSorter.getRelationType(), sideA, sideB);
if (!canRelate) {
toolTipText += String.format("Relation: [%s] \n\tcannot be added to [%s]\n\tof [%s]\n",
- i.getName(), data.getSide().name(), data.getRelationType().getName());
+ art.getName(), relTypeSorter, relTypeSorter.getRelationType().getName());
}
}
- AccessPolicy policyHandlerService = ServiceUtil.getAccessPolicy();
-
- boolean matched = policyHandlerService.canRelationBeModified(artifact, Arrays.asList(selectedArtifacts),
- data, Level.INFO).matched();
+ boolean hadPermission = OseeApiService.get().getAccessControlService().hasRelationTypePermission(artifact,
+ relTypeSorter, relatedArts, PermissionEnum.WRITE, null).isSuccess();
- if (matched) {
+ if (canRelate) {
event.detail = DND.DROP_COPY;
tree.setInsertMark(null, false);
} else {
@@ -154,7 +158,7 @@ public final class RelationSkynetDragAndDrop extends SkynetDragAndDrop {
toolTipText += "Access: Access Control has prevented this relation";
}
- if (!matched || !canRelate) {
+ if (!hadPermission || !canRelate) {
getErrorToolTip().setText("RELATION ERROR");
getErrorToolTip().setMessage(toolTipText);
getErrorToolTip().setVisible(true);
@@ -164,29 +168,33 @@ public final class RelationSkynetDragAndDrop extends SkynetDragAndDrop {
}
} else if (fileTransfer.isSupportedType(event.currentDataType)) {
- RelationTypeToken relationType = data.getRelationType();
+ RelationTypeToken relationType = relTypeSorter.getRelationType();
if (relationType.equals(CoreRelationTypes.Verification_Verifier) || relationType.equals(
CoreRelationTypes.Uses_TestUnit)) {
- AccessPolicy policyHandlerService = null;
- try {
- policyHandlerService = ServiceUtil.getAccessPolicy();
- } catch (OseeCoreException ex1) {
- OseeLog.log(Activator.class, Level.SEVERE, ex1);
+ RelationTypeSide relTypeSide = null;
+ if (relationType.equals(CoreRelationTypes.Verification_Verifier)) {
+ relTypeSide = CoreRelationTypes.Verification_Verifier;
+ } else {
+ relTypeSide = CoreRelationTypes.Verification_Verifier;
}
- boolean matched = false;
- if (policyHandlerService != null) {
- try {
- matched = policyHandlerService.canRelationBeModified(artifact, null, data, Level.INFO).matched();
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
+ ArtifactData artData = artTransfer.nativeToJava(event.currentDataType);
+ List<Artifact> relatedArts = new ArrayList<Artifact>();
+ for (Artifact relatedArt : artData.getArtifacts()) {
+ relatedArts.add(relatedArt);
}
+ Artifact artifact = relTypeSorter.getArtifact();
- if (matched) {
+ boolean hasPermission = false;
+ try {
+ hasPermission = OseeApiService.get().getAccessControlService().hasRelationTypePermission(artifact,
+ relTypeSide, relatedArts, PermissionEnum.WRITE, null).isSuccess();
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ if (hasPermission) {
event.detail = DND.DROP_COPY;
}
}
-
}
} else if (selected != null && selected.getData() instanceof WrapperForRelationLink) {
@@ -195,18 +203,19 @@ public final class RelationSkynetDragAndDrop extends SkynetDragAndDrop {
Object obj = selection.getFirstElement();
if (obj instanceof WrapperForRelationLink) {
WrapperForRelationLink dropTarget = (WrapperForRelationLink) obj;
- boolean matched = false;
+ boolean hasPermission = false;
try {
- AccessPolicy policyHandlerService = ServiceUtil.getAccessPolicy();
RelationTypeSide rts = new RelationTypeSide(dropTarget.getRelationType(), dropTarget.getRelationSide());
+ List<Artifact> related = Arrays.asList(
+ artifact.equals(dropTarget.getArtifactA()) ? dropTarget.getArtifactB() : dropTarget.getArtifactA());
+
+ hasPermission = OseeApiService.get().getAccessControlService().hasRelationTypePermission(artifact, rts,
+ related, PermissionEnum.WRITE, null).isSuccess();
- matched = policyHandlerService.canRelationBeModified(artifact, Arrays.asList(
- artifact.equals(dropTarget.getArtifactA()) ? dropTarget.getArtifactB() : dropTarget.getArtifactA()),
- rts, Level.INFO).matched();
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
- if (!matched) {
+ if (!hasPermission) {
event.detail = DND.DROP_NONE;
getErrorToolTip().setText("MOVE ERROR");
getErrorToolTip().setMessage("Access Control has restricted this action.");
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationsComposite.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationsComposite.java
index 3359144cc5..1d3766c8d4 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationsComposite.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/RelationsComposite.java
@@ -34,6 +34,7 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.osee.framework.core.OrcsTokenService;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
import org.eclipse.osee.framework.core.data.RelationTypeToken;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
import org.eclipse.osee.framework.core.enums.RelationSorter;
import org.eclipse.osee.framework.help.ui.OseeHelpContext;
@@ -41,7 +42,6 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ISelectedArtifacts;
import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
@@ -49,6 +49,7 @@ import org.eclipse.osee.framework.skynet.core.relation.RelationTypeSideSorter;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.HelpUtil;
import org.eclipse.osee.framework.ui.skynet.RelationOrderContributionItem.SelectionListener;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
@@ -395,15 +396,15 @@ public class RelationsComposite extends Composite implements ISelectedArtifacts
if (selection.getFirstElement() instanceof WrapperForRelationLink) {
WrapperForRelationLink data = (WrapperForRelationLink) selection.getFirstElement();
- AccessPolicy policyHandlerService;
try {
- policyHandlerService = ServiceUtil.getAccessPolicy();
- RelationTypeSide rts = new RelationTypeSide(data.getRelationType(), data.getRelationSide());
- valid = policyHandlerService.canRelationBeModified(artifact,
- java.util.Collections.singleton(
- data.getArtifactA().equals(artifact) ? data.getArtifactB() : data.getArtifactA()),
- rts, Level.INFO).matched();
+ RelationTypeSide relationTypeSide = new RelationTypeSide(data.getRelationType(), data.getRelationSide());
+ Set<Artifact> relArts = java.util.Collections.singleton(
+ data.getArtifactA().equals(artifact) ? data.getArtifactB() : data.getArtifactA());
+
+ valid = OseeApiService.get().getAccessControlService().hasRelationTypePermission(artifact, relationTypeSide,
+ relArts, PermissionEnum.WRITE, null).isSuccess();
+
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
@@ -553,11 +554,8 @@ public class RelationsComposite extends Composite implements ISelectedArtifacts
artifacts.add(group.getArtifact());
}
- AccessPolicy policyHandlerService = ServiceUtil.getAccessPolicy();
-
- hasPermission =
- policyHandlerService.canRelationBeModified(toCheck, artifacts, relationTypeSide, Level.INFO).matched();
-
+ hasPermission = OseeApiService.get().getAccessControlService().hasRelationTypePermission(toCheck, relationTypeSide,
+ artifacts, PermissionEnum.WRITE, null).isSuccess();
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java
index 11695ec7ae..44620f74fb 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/SessionContributionItem.java
@@ -17,13 +17,13 @@ import java.util.logging.Level;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEvent;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEventPayload;
import org.eclipse.osee.framework.core.client.ClientSessionManager;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEventPayload;
import org.eclipse.osee.framework.ui.plugin.OseeStatusContributionItem;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.dialogs.AuthenticationDialog;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/AccessControlService.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/AccessControlService.java
deleted file mode 100644
index 574c63ad9f..0000000000
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/AccessControlService.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*********************************************************************
- * Copyright (c) 2014 Boeing
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Boeing - initial API and implementation
- **********************************************************************/
-
-package org.eclipse.osee.framework.ui.skynet.access;
-
-import org.eclipse.osee.framework.core.access.IAccessControlService;
-
-/**
- * @author Donald G. Dunne
- */
-public class AccessControlService {
-
- private static IAccessControlService accessService;
-
- public static IAccessControlService getAccessService() {
- return accessService;
- }
-
- public void setAccessService(IAccessControlService accessService) {
- AccessControlService.accessService = accessService;
- }
-
-}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyContentProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyContentProvider.java
index 76e7f5b076..0f345d101a 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyContentProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyContentProvider.java
@@ -18,16 +18,17 @@ import java.util.Collection;
import java.util.Map;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.osee.framework.access.AccessControlData;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.framework.core.access.AccessControlData;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
public class PolicyContentProvider implements ITreeContentProvider {
- private final Map<String, AccessControlData> accessControlList;
+ private final Map<ArtifactToken, AccessControlData> accessControlList;
private final Collection<AccessControlData> deleteControlList;
private final Object accessControlledObject;
- public PolicyContentProvider(Map<String, AccessControlData> accessControlList, Object accessControlledObject, Collection<AccessControlData> deleteControlList) {
+ public PolicyContentProvider(Map<ArtifactToken, AccessControlData> accessControlList, Object accessControlledObject, Collection<AccessControlData> deleteControlList) {
this.accessControlList = accessControlList;
this.accessControlledObject = accessControlledObject;
this.deleteControlList = deleteControlList;
@@ -46,16 +47,17 @@ public class PolicyContentProvider implements ITreeContentProvider {
@Override
public Object[] getElements(Object object) {
- Collection<AccessControlData> data = AccessControlManager.getAccessControlList(accessControlledObject);
+ Collection<AccessControlData> data =
+ OseeApiService.get().getAccessControlService().getAccessControlList(accessControlledObject);
for (AccessControlData entry : data) {
if (!deleteControlList.contains(entry)) {
- accessControlList.put(entry.getSubject().getGuid(), entry);
+ accessControlList.put(entry.getSubject(), entry);
}
}
- AccessControlData lockData = AccessControlManager.getAccessControlForLock(accessControlledObject);
- if (lockData != null) {
- accessControlList.put(lockData.getSubject().getGuid(), lockData);
+ for (AccessControlData lockData : OseeApiService.get().getAccessControlService().getAccessControlList(
+ accessControlledObject)) {
+ accessControlList.put(lockData.getSubject(), lockData);
}
Object[] accessControlListArray = accessControlList.values().toArray();
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java
index 489732ed8b..11af8eeed9 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java
@@ -20,27 +20,35 @@ import java.util.List;
import java.util.logging.Level;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.framework.access.AccessControlData;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.framework.core.access.AccessControlData;
+import org.eclipse.osee.framework.core.access.event.AccessArtifactLockTopicEvent;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEvent;
+import org.eclipse.osee.framework.core.access.object.AccessObject;
+import org.eclipse.osee.framework.core.access.object.ArtifactAccessObject;
+import org.eclipse.osee.framework.core.access.object.BranchAccessObject;
import org.eclipse.osee.framework.core.data.ArtifactId;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.BranchToken;
-import org.eclipse.osee.framework.core.data.IUserGroup;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.enums.CoreBranches;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
+import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.UserManager;
-import org.eclipse.osee.framework.skynet.core.access.UserGroupService;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessArtifactLockTopicEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
+import org.eclipse.osee.framework.ui.skynet.results.XResultDataUI;
import org.eclipse.osee.framework.ui.swt.Displays;
+import org.eclipse.osee.framework.ui.swt.FontManager;
+import org.eclipse.osee.framework.ui.swt.HyperLinkLabel;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -50,8 +58,10 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
/**
@@ -65,39 +75,47 @@ public class PolicyDialog extends Dialog {
private Button chkChildrenPermission;
private Combo userCombo;
private Combo permissionLevelCombo;
- private final Object accessControlledObject;
- private Label accessLabel, objectLabel;
+ private final AccessObject accessControlledObject;
+ private Label accessErrorLabel, accessTitleLabel;
private final Shell parentShell;
- Boolean isArtifactLockedBeforeDialog = null;
+ Boolean isArtifactLockedBeforeDialog;
+ private XResultData accessModifyEnabled;
- public PolicyDialog(Shell parentShell, Object accessControlledObject) {
+ public PolicyDialog(Shell parentShell, AccessObject accessControlledObject) {
super(parentShell);
this.parentShell = parentShell;
this.accessControlledObject = accessControlledObject;
setShellStyle(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | getDefaultOrientation() | SWT.RESIZE);
}
+ public static PolicyDialog createPolicyDialog(Shell activeShell, Object object) {
+ if (object instanceof ArtifactToken) {
+ return new PolicyDialog(activeShell, ArtifactAccessObject.valueOf((ArtifactToken) object));
+ } else if (object instanceof BranchToken) {
+ return new PolicyDialog(activeShell, BranchAccessObject.valueOf((BranchToken) object));
+ }
+ throw new OseeArgumentException("Unhandled object %", object);
+ }
+
@Override
protected Control createDialogArea(Composite parent) {
- getShell().setText("Access Control List: " + getHeaderName(accessControlledObject));
+ final String title = "Access Control for " + (accessControlledObject.isArtifact() ? "Artifact" : "Branch");
+ getShell().setText(title);
Composite mainComposite = new Composite(parent, SWT.NONE);
mainComposite.setFont(parent.getFont());
mainComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
mainComposite.setLayout(new GridLayout(1, false));
- accessLabel = new Label(mainComposite, SWT.NONE);
- accessLabel.setForeground(Displays.getSystemColor(SWT.COLOR_RED));
+ createTitleComp(mainComposite, title);
+
+ accessErrorLabel = new Label(mainComposite, SWT.NONE);
+ accessErrorLabel.setForeground(Displays.getSystemColor(SWT.COLOR_RED));
Group group = new Group(mainComposite, SWT.NULL);
group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
group.setLayout(new GridLayout(1, false));
- // Setup policy table
- objectLabel = new Label(group, SWT.NONE);
- objectLabel.setText(
- String.format("Access Control for [%s]", Strings.truncate(accessControlledObject.toString(), 70)));
-
policyTableViewer = new PolicyTableViewer(group, accessControlledObject);
// Create Input Widgets
@@ -136,13 +154,46 @@ public class PolicyDialog extends Dialog {
checkEnabled();
setMaxModificationLevel();
- if (accessControlledObject instanceof Artifact) {
- isArtifactLockedBeforeDialog = AccessControlManager.hasLock((Artifact) accessControlledObject);
+ if (accessControlledObject instanceof ArtifactAccessObject) {
+ isArtifactLockedBeforeDialog = OseeApiService.get().getAccessControlService().hasLock(
+ ((ArtifactAccessObject) accessControlledObject).getArtifact());
}
return mainComposite;
}
+ private void createTitleComp(Composite parent, final String title) {
+ Composite titleComposite = new Composite(parent, SWT.NONE);
+ titleComposite.setFont(parent.getFont());
+ titleComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ titleComposite.setLayout(new GridLayout(2, false));
+
+ accessTitleLabel = new Label(titleComposite, SWT.NONE);
+ accessTitleLabel.setText(String.format("Access Control for %s\nUser %s",
+ Strings.truncate(accessControlledObject.toString(), 70), UserManager.getUser().toStringWithId()));
+ accessTitleLabel.setFont(FontManager.getCourierNew12Bold());
+
+ HyperLinkLabel edit = new HyperLinkLabel(titleComposite, SWT.None);
+ edit.setText(" Show Access Details");
+ edit.addListener(SWT.MouseUp, new Listener() {
+
+ @Override
+ public void handleEvent(Event event) {
+ XResultData rd = null;
+ String useTitle = "Modify " + title;
+ if (accessControlledObject.isArtifact()) {
+ rd = AccessControlArtifactUtil.getXResultAccessHeader(useTitle,
+ (Artifact) ((ArtifactAccessObject) accessControlledObject).getArtifact());
+ } else {
+ rd = AccessControlArtifactUtil.getXResultAccessHeader(useTitle, accessControlledObject.getBranch());
+ }
+ rd.addRaw(accessModifyEnabled.toString());
+ XResultDataUI.report(rd, useTitle);
+ close();
+ }
+ });
+ }
+
private void populateInputWidgets() {
// Setup permissions combo
@@ -207,26 +258,29 @@ public class PolicyDialog extends Dialog {
}
private void setMaxModificationLevel() {
- PermissionEnum permission = AccessControlManager.getPermission(accessControlledObject);
+ PermissionEnum permission = null;
+ if (accessControlledObject.isArtifact()) {
+ permission = OseeApiService.get().getAccessControlService().getPermission(
+ ((ArtifactAccessObject) accessControlledObject).getArtifact());
+ } else if (accessControlledObject.isBranch()) {
+ permission = OseeApiService.get().getAccessControlService().getPermission(
+ ((BranchAccessObject) accessControlledObject).getBranch());
+ } else {
+ throw new OseeArgumentException("Unhandled object %s", accessControlledObject);
+ }
policyTableViewer.setMaxModificationLevel(permission);
}
private void checkEnabled() {
- boolean isAccessEnabled = isAddAccessEnabled();
- boolean isModifyEnabled = isModifyAccessEnabled();
+ boolean isAccessEnabled = isAccessEnabled();
String displayText = "";
if (!isAccessEnabled) {
- displayText = "You do not have permissions to add/delete users";
- if (!isModifyEnabled) {
- displayText += " or modify access";
- }
- } else if (!isModifyEnabled) {
displayText = "You do not have permissions to modify access";
}
- accessLabel.setText(displayText);
- boolean isArtifact = accessControlledObject instanceof Artifact;
+ accessErrorLabel.setText(displayText);
+ boolean isArtifact = accessControlledObject.isArtifact();
userCombo.setEnabled(isAccessEnabled);
permissionLevelCombo.setEnabled(isAccessEnabled);
@@ -236,35 +290,18 @@ public class PolicyDialog extends Dialog {
}
private boolean isAccessEnabled() {
- return isModifyAccessEnabled() || isAddAccessEnabled();
- }
-
- private boolean isModifyAccessEnabled() {
- return isAccessEnabled(PermissionEnum.USER_LOCK);
- }
-
- private boolean isAddAccessEnabled() {
- return isAccessEnabled(PermissionEnum.FULLACCESS);
- }
-
- private boolean isAccessEnabled(PermissionEnum permission) {
- boolean enabled;
- try {
- IUserGroup oseeAccessGroup = UserGroupService.getOseeAccessAdmin();
- boolean isOseeAccessAdmin = oseeAccessGroup.isCurrentUserMember();
- boolean objectHasAccessSet = !policyTableViewer.getAccessControlList().isEmpty();
- if (isOseeAccessAdmin) {
- enabled = true;
- } else if (objectHasAccessSet) {
- enabled = AccessControlManager.hasPermission(accessControlledObject, permission);
- } else {
- enabled = false;
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- enabled = false;
+ accessModifyEnabled = new XResultData();
+ if (accessControlledObject.isArtifact()) {
+ OseeApiService.get().getAccessControlService().isModifyAccessEnabled(UserManager.getUser(),
+ ((ArtifactAccessObject) accessControlledObject).getArtifact(), accessModifyEnabled);
+ } else if (accessControlledObject.isBranch()) {
+ OseeApiService.get().getAccessControlService().isModifyAccessEnabled(UserManager.getUser(),
+ accessControlledObject.getBranch(), accessModifyEnabled);
+ } else {
+ accessModifyEnabled.errorf("User %s DOES NOT have Access Modify rights for %s: Reason [Unhandled Object]",
+ UserManager.getUser().getName(), accessControlledObject);
}
- return enabled;
+ return accessModifyEnabled.isSuccess();
}
@Override
@@ -272,17 +309,17 @@ public class PolicyDialog extends Dialog {
for (AccessControlData data : policyTableViewer.getAccessControlList().values()) {
if (data.isDirty()) {
boolean isRecursionAllowed = chkChildrenPermission.getSelection();
- AccessControlManager.persistPermission(data, isRecursionAllowed);
+ OseeApiService.get().getAccessControlService().persistPermission(data, isRecursionAllowed);
}
}
policyTableViewer.removeDataFromDB();
- AccessControlManager.clearCaches();
+ OseeApiService.get().getAccessControlService().clearCaches();
// Send artifact locked event if changed in dialog
if (isArtifactLockedBeforeDialog != null) {
try {
- Artifact artifact = (Artifact) accessControlledObject;
- boolean isArtifactLockedAfterDialog = AccessControlManager.hasLock(artifact);
+ Artifact artifact = (Artifact) ((ArtifactAccessObject) accessControlledObject).getArtifact();
+ boolean isArtifactLockedAfterDialog = OseeApiService.get().getAccessControlService().hasLock(artifact);
if (isArtifactLockedAfterDialog != isArtifactLockedBeforeDialog) {
AccessArtifactLockTopicEvent event = new AccessArtifactLockTopicEvent();
event.setBranch(artifact.getBranch());
@@ -297,16 +334,6 @@ public class PolicyDialog extends Dialog {
super.okPressed();
}
- private String getHeaderName(Object object) {
- String name = "";
- if (object instanceof Artifact) {
- name = ((Artifact) object).getName();
- } else if (object instanceof BranchToken) {
- name = ((BranchToken) object).getName();
- }
- return name;
- }
-
private static final class UserComparator<T> implements Comparator<T> {
@Override
public int compare(T o1, T o2) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyLabelProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyLabelProvider.java
index 9ea5cec201..2da3da6e4d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyLabelProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyLabelProvider.java
@@ -17,7 +17,7 @@ import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.nebula.widgets.xviewer.XViewer;
import org.eclipse.nebula.widgets.xviewer.XViewerLabelProvider;
import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn;
-import org.eclipse.osee.framework.access.AccessControlData;
+import org.eclipse.osee.framework.core.access.AccessControlData;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.swt.ImageManager;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java
index fc3bdeee79..79ca4780b4 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java
@@ -15,10 +15,10 @@ package org.eclipse.osee.framework.ui.skynet.access;
import java.util.Collections;
import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.osee.framework.access.AccessControlData;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.framework.core.access.AccessControlData;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.skynet.core.UserManager;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.swt.widgets.TreeItem;
/**
@@ -60,8 +60,8 @@ public class PolicyTableCellModifier implements ICellModifier {
TreeItem item = (TreeItem) element;
AccessControlData data = (AccessControlData) item.getData();
if (policyTableViewer.isArtifact() && data.getPermission() == PermissionEnum.USER_LOCK) {
- AccessControlManager.unLockObjects(Collections.singleton(policyTableViewer.getArtifact()),
- UserManager.getUser());
+ OseeApiService.get().getAccessControlService().unLockArtifacts(UserManager.getUser(),
+ Collections.singleton(policyTableViewer.getArtifact()));
policyTableViewer.removeData(data);
} else {
if (canDelete() && property.equals(PolicyTableColumns.delete.toString())) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java
index 72fb223506..36bba40c20 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java
@@ -21,9 +21,9 @@ import java.util.logging.Level;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.osee.framework.access.AccessControlData;
-import org.eclipse.osee.framework.access.AccessControlManager;
-import org.eclipse.osee.framework.access.AccessObject;
+import org.eclipse.osee.framework.core.access.AccessControlData;
+import org.eclipse.osee.framework.core.access.object.AccessObject;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.IUserGroup;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
@@ -32,6 +32,7 @@ import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.access.UserGroupService;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.widgets.xBranch.PolicyTableXViewerFactory;
import org.eclipse.swt.SWT;
@@ -45,7 +46,7 @@ import org.eclipse.swt.widgets.Composite;
*/
public class PolicyTableViewer {
- private final Map<String, AccessControlData> accessControlList = new HashMap<>();
+ private final Map<ArtifactToken, AccessControlData> accessControlList = new HashMap<>();
private final Collection<AccessControlData> deleteControlList = new ArrayList<>();
private final Object object;
private final Composite parent;
@@ -65,14 +66,14 @@ public class PolicyTableViewer {
}
public void addOrModifyItem(Artifact subject, Object object, PermissionEnum permission) {
- AccessObject accessObject = AccessControlManager.getAccessObject(object);
- AccessControlData data = accessControlList.get(subject.getGuid());
+ AccessObject accessObject = AccessObject.valueOf(object);
+ AccessControlData data = accessControlList.get(subject);
if (data == null) {
data = new AccessControlData(subject, accessObject, permission, true);
} else {
modifyPermissionLevel(data, permission);
}
- accessControlList.put(data.getSubject().getGuid(), data);
+ accessControlList.put(data.getSubject(), data);
tableXViewer.refresh();
}
@@ -107,7 +108,7 @@ public class PolicyTableViewer {
tableXViewer.setTableViewer(this);
}
- public Map<String, AccessControlData> getAccessControlList() {
+ public Map<ArtifactToken, AccessControlData> getAccessControlList() {
return accessControlList;
}
@@ -121,13 +122,13 @@ public class PolicyTableViewer {
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
- accessControlList.remove(data.getSubject().getGuid());
+ accessControlList.remove(data.getSubject());
}
public void removeDataFromDB() {
try {
for (AccessControlData data : deleteControlList) {
- AccessControlManager.removeAccessControlDataIf(true, data);
+ OseeApiService.get().getAccessControlService().removeAccessControlDataIf(true, data);
}
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
@@ -162,8 +163,10 @@ public class PolicyTableViewer {
IUserGroup oseeAccessGroup = UserGroupService.getOseeAccessAdmin();
boolean isOseeAccessAdmin = oseeAccessGroup.isCurrentUserMember();
- boolean canUnlockObject = AccessControlManager.canUnlockObject(artifact, UserManager.getUser());
- boolean isUserFullAccess = AccessControlManager.getPermission(artifact).matches(PermissionEnum.FULLACCESS);
+ boolean canUnlockObject =
+ OseeApiService.get().getAccessControlService().canUnlockObject(artifact, UserManager.getUser());
+ boolean isUserFullAccess = OseeApiService.get().getAccessControlService().hasArtifactPermission(artifact,
+ PermissionEnum.FULLACCESS, null).isSuccess();
return isOseeAccessAdmin || canUnlockObject || isUserFullAccess;
}
return false;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableXviewer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableXviewer.java
index 27de196983..c5b69ff1e0 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableXviewer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableXviewer.java
@@ -30,7 +30,7 @@ import org.eclipse.jface.window.Window;
import org.eclipse.nebula.widgets.xviewer.IMultiColumnEditProvider;
import org.eclipse.nebula.widgets.xviewer.IXViewerFactory;
import org.eclipse.nebula.widgets.xviewer.XViewer;
-import org.eclipse.osee.framework.access.AccessControlData;
+import org.eclipse.osee.framework.core.access.AccessControlData;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.StringLabelProvider;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPrompt.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPrompt.java
index 828c5c9723..ab12cf7d5d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPrompt.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPrompt.java
@@ -16,11 +16,13 @@ package org.eclipse.osee.framework.ui.skynet.artifact;
import java.util.Collection;
import org.eclipse.osee.framework.core.data.AttributeTypeToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.logging.OseeLevel;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.prompt.IHandlePromptChange;
import org.eclipse.osee.framework.ui.skynet.artifact.prompt.IPromptFactory;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
/**
* @author Jeff C. Phillips
@@ -29,24 +31,27 @@ import org.eclipse.osee.framework.ui.skynet.artifact.prompt.IPromptFactory;
public final class ArtifactPrompt {
private final IPromptFactory promptFactory;
- private final AccessPolicy policyHandler;
- public ArtifactPrompt(IPromptFactory promptFactory, AccessPolicy policyHandler) {
+ public ArtifactPrompt(IPromptFactory promptFactory) {
this.promptFactory = promptFactory;
- this.policyHandler = policyHandler;
}
- public boolean promptChangeAttribute(AttributeTypeToken attributeType, final Collection<? extends Artifact> artifacts, boolean persist, boolean multiLine) {
+ public boolean promptChangeAttribute(AttributeTypeToken attributeType, final Collection<Artifact> artifacts, boolean persist, boolean multiLine) {
boolean toReturn = false;
- boolean hasPermission = policyHandler.hasAttributeTypePermission(artifacts, attributeType, PermissionEnum.WRITE,
- OseeLevel.SEVERE_POPUP).matched();
-
- if (hasPermission) {
- IHandlePromptChange promptChange = promptFactory.createPrompt(attributeType,
- attributeType.getUnqualifiedName(), artifacts, persist, multiLine);
- if (promptChange.promptOk()) {
- toReturn = promptChange.store();
- }
+ XResultData rd =
+ OseeApiService.get().getAccessControlService().hasAttributeTypePermission(artifacts, attributeType,
+ PermissionEnum.WRITE, AccessControlArtifactUtil.getXResultAccessHeader("Change Attribute", artifacts, attributeType));
+
+ if (rd.isErrors()) {
+ XResultDataDialog.open(rd, "Change Attribute", "Permission Denied Changing Attribute %s",
+ attributeType.toStringWithId());
+ return false;
+ }
+
+ IHandlePromptChange promptChange =
+ promptFactory.createPrompt(attributeType, attributeType.getUnqualifiedName(), artifacts, persist, multiLine);
+ if (promptChange.promptOk()) {
+ toReturn = promptChange.store();
}
return toReturn;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPromptChange.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPromptChange.java
index e9819d58f9..ad210852be 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPromptChange.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactPromptChange.java
@@ -17,7 +17,6 @@ import java.util.Collection;
import org.eclipse.osee.framework.core.data.AttributeTypeToken;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.skynet.artifact.prompt.PromptFactory;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
@@ -30,21 +29,10 @@ public final class ArtifactPromptChange {
private static ArtifactPrompt prompt;
- private AccessPolicy accessPolicy;
-
- public void setAccessPolicy(AccessPolicy accessPolicy) {
- this.accessPolicy = accessPolicy;
- }
-
- public void start() {
- prompt = new ArtifactPrompt(new PromptFactory(), accessPolicy);
- }
-
- public void stop() {
- prompt = null;
- }
-
private static ArtifactPrompt getArtifactPrompt() {
+ if (prompt == null) {
+ prompt = new ArtifactPrompt(new PromptFactory());
+ }
return ArtifactPromptChange.prompt;
}
@@ -52,12 +40,13 @@ public final class ArtifactPromptChange {
return promptChangeAttribute(attributeType, artifacts, persist, true);
}
+ @SuppressWarnings("unchecked")
public static boolean promptChangeAttribute(AttributeTypeToken attributeType, final Collection<? extends Artifact> artifacts, boolean persist, boolean multiLine) {
boolean result = false;
ArtifactPrompt prompt = getArtifactPrompt();
if (prompt != null) {
try {
- result = prompt.promptChangeAttribute(attributeType, artifacts, persist, multiLine);
+ result = prompt.promptChangeAttribute(attributeType, (Collection<Artifact>) artifacts, persist, multiLine);
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/OpenArtifactEditorLoopbackCmd.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/OpenArtifactEditorLoopbackCmd.java
index 0f4e2efcb2..ba85c78e78 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/OpenArtifactEditorLoopbackCmd.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/OpenArtifactEditorLoopbackCmd.java
@@ -16,7 +16,6 @@ package org.eclipse.osee.framework.ui.skynet.artifact;
import java.net.HttpURLConnection;
import java.util.Map;
import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.client.server.HttpResponse;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.jdk.core.type.MutableBoolean;
@@ -25,6 +24,7 @@ import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.httpRequests.BaseArtifactLoopbackCmd;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.ArtifactEditor;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.ArtifactEditorInput;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
@@ -47,7 +47,8 @@ public class OpenArtifactEditorLoopbackCmd extends BaseArtifactLoopbackCmd {
try {
boolean hasPermissionToRead = false;
try {
- hasPermissionToRead = AccessControlManager.hasPermission(artifact, PermissionEnum.READ);
+ hasPermissionToRead = OseeApiService.get().getAccessControlService().hasArtifactPermission(artifact,
+ PermissionEnum.READ, null).isSuccess();
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditor.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditor.java
index 3671f58a0e..58ebcc310d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditor.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditor.java
@@ -17,22 +17,25 @@ import java.util.logging.Level;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactId;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.plugin.core.util.Jobs;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.OseeStatusContributionItemFactory;
import org.eclipse.osee.framework.ui.skynet.RelationsComposite;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.pages.ArtifactEditorOutlinePage;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.pages.ArtifactEditorReloadTab;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.pages.ArtifactFormPage;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.tab.attr.ArtEdAttrTab;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
+import org.eclipse.osee.framework.ui.skynet.results.XResultDataUI;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.osee.framework.ui.swt.Widgets;
import org.eclipse.ui.IEditorReference;
@@ -109,7 +112,10 @@ public class ArtifactEditor extends AbstractEventArtifactEditor {
firePropertyChange(PROP_DIRTY);
} catch (OseeCoreException ex) {
onDirtied();
- OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
+ XResultData rd =
+ AccessControlArtifactUtil.getXResultAccessHeader("Artifact Editor - Save", getEditorInput().getArtifact());
+ rd.logf("\n\n%s", Lib.exceptionToString(ex));
+ XResultDataUI.report(rd, "Artifact Editor - Save");
}
}
@@ -191,7 +197,7 @@ public class ArtifactEditor extends AbstractEventArtifactEditor {
}
private void createAttributesTab() {
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
attrTab = new ArtEdAttrTab(this, getArtifactFromEditorInput());
try {
addPage(attrTab);
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorActionBarContributor.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorActionBarContributor.java
index fa2ab212b3..9b63bad508 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorActionBarContributor.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorActionBarContributor.java
@@ -22,19 +22,25 @@ import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.window.Window;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.framework.core.access.AccessControlUtil;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ISelectedArtifacts;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.skynet.OpenContributionItem;
+import org.eclipse.osee.framework.ui.skynet.access.AccessControlDetails;
import org.eclipse.osee.framework.ui.skynet.access.PolicyDialog;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.action.RevealInExplorerAction;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.action.CopyArtifactURLAction;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.action.OpenArtifactInBrowserAction;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.action.OpenHistoryAction;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.osee.framework.ui.skynet.widgets.xBranch.BranchView;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.osee.framework.ui.swt.ImageManager;
@@ -63,13 +69,16 @@ public class ArtifactEditorActionBarContributor implements IActionContributor, I
manager.add(new RevealBranchAction());
manager.add(new Separator());
manager.add(new AccessControlAction());
+ if (AccessControlUtil.isDebugOn()) {
+ manager.add(new AccessControlDetails(artifact));
+ }
manager.add(new Separator());
if (CopyArtifactURLAction.isApplicable(artifact)) {
manager.add(new CopyArtifactURLAction(artifact));
}
manager.add(new OpenArtifactInBrowserAction(artifact));
manager.add(new Separator());
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
manager.add(new DirtyReportAction(artifact));
}
}
@@ -108,6 +117,15 @@ public class ArtifactEditorActionBarContributor implements IActionContributor, I
@Override
public void run() {
try {
+ XResultData rd = OseeApiService.get().getAccessControlService().hasArtifactPermission(
+ Collections.singleton(artifact), PermissionEnum.WRITE,
+ AccessControlArtifactUtil.getXResultAccessHeader("Delete Artifact Failed", artifact));
+ if (rd.isErrors()) {
+ XResultDataDialog.open(rd, "Delete Artifact Failed", "You do not have valid access to delete %s",
+ artifact.toStringWithId());
+ return;
+ }
+
MessageDialog dialog = new MessageDialog(Displays.getActiveShell(), "Confirm Artifact Deletion", null,
String.format(
"Are you sure you want to delete the artifact\n\n%s\n\nand all of the default hierarchy children?",
@@ -133,7 +151,7 @@ public class ArtifactEditorActionBarContributor implements IActionContributor, I
@Override
public void run() {
try {
- PolicyDialog pd = new PolicyDialog(Displays.getActiveShell(), artifact);
+ PolicyDialog pd = PolicyDialog.createPolicyDialog(Displays.getActiveShell(), artifact);
pd.open();
} catch (Exception ex) {
OseeLog.log(getClass(), OseeLevel.SEVERE_POPUP, ex);
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorEventManager.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorEventManager.java
index 6f2a8f68d1..2e1d81ac10 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorEventManager.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/ArtifactEditorEventManager.java
@@ -17,6 +17,8 @@ import java.util.Collection;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
+import org.eclipse.osee.framework.core.access.event.AccessArtifactLockTopicEvent;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEvent;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.event.EventUtil;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -25,8 +27,6 @@ import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.filter.IEventFilter;
import org.eclipse.osee.framework.skynet.core.event.listener.IArtifactEventListener;
import org.eclipse.osee.framework.skynet.core.event.listener.IBranchEventListener;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessArtifactLockTopicEvent;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent;
import org.eclipse.osee.framework.skynet.core.event.model.BranchEvent;
import org.eclipse.osee.framework.skynet.core.event.model.BranchEventType;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/pages/ArtifactFormPage.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/pages/ArtifactFormPage.java
index bf055a248c..390464d053 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/pages/ArtifactFormPage.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/pages/ArtifactFormPage.java
@@ -28,7 +28,7 @@ import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.operation.AbstractOperation;
import org.eclipse.osee.framework.core.operation.IOperation;
import org.eclipse.osee.framework.core.operation.Operations;
@@ -43,6 +43,7 @@ import org.eclipse.osee.framework.ui.plugin.util.HelpUtil;
import org.eclipse.osee.framework.ui.skynet.ArtifactImageManager;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.skynet.RelationsComposite;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.ArtifactEditor;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.ArtifactEditorInput;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.ArtifactEditorProviders;
@@ -317,8 +318,8 @@ public class ArtifactFormPage extends FormPage {
}
private String getLockedString(Artifact artifact) {
- Artifact subject = AccessControlManager.getSubjectFromLockedObject(artifact);
- if (subject != null) {
+ ArtifactToken subject = OseeApiService.get().getAccessControlService().getSubjectFromLockedObject(artifact);
+ if (subject.isValid()) {
return "<b>LOCKED:</b> " + subject.getName() + " ";
}
return "";
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/parts/AttributeFormPart.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/parts/AttributeFormPart.java
index a418fab1f8..7b7775e226 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/parts/AttributeFormPart.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/parts/AttributeFormPart.java
@@ -27,14 +27,12 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.utility.OseeInfo;
import org.eclipse.osee.framework.ui.plugin.util.HelpUtil;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.ArtifactEditor;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.sections.AttributeTypeUtil;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.skynet.widgets.ArtifactStoredWidget;
import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener;
import org.eclipse.osee.framework.ui.skynet.widgets.XOption;
@@ -89,8 +87,7 @@ public class AttributeFormPart extends AbstractFormPart {
public AttributeFormPart(ArtifactEditor editor) {
this.editor = editor;
try {
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
- decorator.addProvider(new XWidgetAccessDecorationProvider(policy));
+ decorator.addProvider(new XWidgetAccessDecorationProvider());
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex.toString(), ex);
}
@@ -378,4 +375,4 @@ public class AttributeFormPart extends AbstractFormPart {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/sections/DetailsFormSection.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/sections/DetailsFormSection.java
index e75daa4740..d951e8c97c 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/sections/DetailsFormSection.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/editor/sections/DetailsFormSection.java
@@ -18,8 +18,11 @@ import org.eclipse.osee.framework.help.ui.OseeHelpContext;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
import org.eclipse.osee.framework.ui.plugin.util.HelpUtil;
+import org.eclipse.osee.framework.ui.skynet.access.AccessControlDetails;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.ArtifactEditor;
+import org.eclipse.osee.framework.ui.skynet.widgets.XButtonViaAction;
import org.eclipse.osee.framework.ui.swt.ALayout;
+import org.eclipse.osee.framework.ui.swt.FontManager;
import org.eclipse.osee.framework.ui.swt.Widgets;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
@@ -31,6 +34,7 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.widgets.FormToolkit;
@@ -54,6 +58,7 @@ public class DetailsFormSection extends ArtifactEditorFormSection {
super.initialize(form);
section = getSection();
section.setText("Details");
+ section.setExpanded(false);
section.setLayout(new GridLayout());
section.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
// Only load when users selects section
@@ -71,7 +76,7 @@ public class DetailsFormSection extends ArtifactEditorFormSection {
if (!sectionCreated) {
final FormToolkit toolkit = getManagedForm().getToolkit();
Composite composite = toolkit.createComposite(getSection(), toolkit.getBorderStyle() | SWT.WRAP);
- composite.setLayout(ALayout.getZeroMarginLayout());
+ composite.setLayout(ALayout.getZeroMarginLayout(2, false));
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
composite.addDisposeListener(new DisposeListener() {
@@ -84,16 +89,8 @@ public class DetailsFormSection extends ArtifactEditorFormSection {
}
});
- GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
- gd.widthHint = 200;
- gd.heightHint = 250;
-
- try {
- browser = new Browser(composite, SWT.NONE);
- browser.setLayoutData(gd);
- } catch (SWTError e) {
- // do nothing
- }
+ createDetailsBrowser(composite);
+ createOperationsSection(composite);
getSection().setClient(composite);
toolkit.paintBordersFor(composite);
@@ -114,8 +111,8 @@ public class DetailsFormSection extends ArtifactEditorFormSection {
try {
FontData systemFont = browser.getDisplay().getSystemFont().getFontData()[0];
Map<String, String> detailsKeyValues = Artifacts.getDetailsKeyValues(getEditorInput().getArtifact());
- browser.setText(
- Artifacts.getDetailsFormText(detailsKeyValues, systemFont.getName(), systemFont.getHeight()));
+ String html = Artifacts.getDetailsFormText(detailsKeyValues, systemFont.getName(), systemFont.getHeight());
+ browser.setText(html);
} catch (Exception ex) {
browser.setText(Lib.exceptionToString(ex));
}
@@ -123,4 +120,31 @@ public class DetailsFormSection extends ArtifactEditorFormSection {
}
}
+ private void createOperationsSection(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout(1, false));
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ Label opsLabel = new Label(composite, SWT.BOLD);
+ opsLabel.setFont(FontManager.getDefaultLabelFont());
+ opsLabel.setText("Operations");
+
+ new XButtonViaAction(new AccessControlDetails(getEditor().getArtifactFromEditorInput())).createWidgets(
+ composite, 1);
+
+ }
+
+ private void createDetailsBrowser(Composite composite) {
+ try {
+ GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
+ gd.widthHint = 200;
+ gd.heightHint = 250;
+
+ browser = new Browser(composite, SWT.NONE);
+ browser.setLayoutData(gd);
+ } catch (SWTError e) {
+ // do nothing
+ }
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassArtifactEditor.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassArtifactEditor.java
index 1f837e13ac..0e0922476b 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassArtifactEditor.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassArtifactEditor.java
@@ -27,7 +27,6 @@ import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.nebula.widgets.xviewer.XViewer;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.help.ui.OseeHelpContext;
@@ -42,6 +41,7 @@ import org.eclipse.osee.framework.ui.plugin.PluginUiImage;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.HelpUtil;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.AbstractArtifactEditor;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.swt.ALayout;
@@ -103,7 +103,8 @@ public class MassArtifactEditor extends AbstractArtifactEditor {
try {
Set<Artifact> accessibleArts = new HashSet<>();
for (Artifact artifact : artifacts) {
- if (!AccessControlManager.hasPermission(artifact, PermissionEnum.READ)) {
+ if (OseeApiService.get().getAccessControlService().hasArtifactPermission(artifact,
+ PermissionEnum.READ, null).isErrors()) {
OseeLog.log(Activator.class, Level.INFO,
"The user " + UserManager.getUser() + " does not have read access to " + artifact);
accessControlFilteredResults = true;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java
index f5fb5fa790..8a3909f2c4 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java
@@ -27,15 +27,16 @@ import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.nebula.widgets.xviewer.XViewer;
import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.AttributeTypeToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
import org.eclipse.osee.framework.core.exception.OseeTypeDoesNotExist;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.UserManager;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.access.UserGroupService;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
@@ -46,6 +47,7 @@ import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.ArtifactDoubleClick;
import org.eclipse.osee.framework.ui.skynet.action.PurgeAction;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactPromptChange;
import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.artifact.editor.action.AddRelationColumnAction;
@@ -53,6 +55,7 @@ import org.eclipse.osee.framework.ui.skynet.change.ChangeUiUtil;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.FilteredCheckboxAttributeTypeDialog;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.ViewApplicabilityColumn;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.osee.framework.ui.swt.IDirtiableEditor;
@@ -199,7 +202,7 @@ public class MassXViewer extends XViewer implements IMassViewerEventHandler {
@Override
public void run() {
try {
- handleDeleteArtifacts();
+ handleDeleteArtifactsAdminOnly();
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
@@ -217,12 +220,14 @@ public class MassXViewer extends XViewer implements IMassViewerEventHandler {
};
}
- protected void handleDeleteArtifacts() {
+ protected void handleDeleteArtifactsAdminOnly() {
ArrayList<Artifact> selectedArtifacts = getSelectedArtifacts();
if (selectedArtifacts.isEmpty()) {
AWorkbench.popup("Must select items to delete");
return;
}
+
+ // Admin-Only action, no access control is checked
if (MessageDialog.openConfirm(Displays.getActiveShell(), "Delete Artifacts",
"Delete " + selectedArtifacts.size() + " Artifacts")) {
SkynetTransaction transaction = TransactionManager.createTransaction(
@@ -241,6 +246,12 @@ public class MassXViewer extends XViewer implements IMassViewerEventHandler {
AWorkbench.popup("Must select items to delete");
return;
}
+ XResultData rd = OseeApiService.get().getAccessControlService().hasArtifactPermission(selectedArtifacts,
+ PermissionEnum.WRITE, AccessControlArtifactUtil.getXResultAccessHeader("Delete Attributes Error", selectedArtifacts));
+ if (rd.isErrors()) {
+ XResultDataDialog.open(rd, "Delete Attributes Failed", "Access Denied for artifacts");
+ return;
+ }
// get attributes that can be deleted (from artifact and validity)
Set<AttributeTypeToken> attrTypesUsed = new HashSet<>();
for (Artifact art : artifacts) {
@@ -372,7 +383,7 @@ public class MassXViewer extends XViewer implements IMassViewerEventHandler {
PresentationType type = ArtifactDoubleClick.getPresentationType(artifact);
PermissionEnum perEnum = ArtifactDoubleClick.getPermissionEnum(artifact);
- if (AccessControlManager.hasPermission(artifacts, perEnum)) {
+ if (OseeApiService.get().getAccessControlService().hasArtifactPermission(artifacts, perEnum, null).isSuccess()) {
RendererManager.openInJob(getSelectedArtifacts(), type);
} else {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP,
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/BlamContributionManager.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/BlamContributionManager.java
index 3eee332ff7..febcd46ba3 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/BlamContributionManager.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/BlamContributionManager.java
@@ -19,7 +19,6 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.IUserGroupArtifactToken;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Collections;
@@ -32,6 +31,7 @@ import org.eclipse.osee.framework.ui.plugin.xnavigate.IXNavigateCommonItem;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateCommonItems;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateItemBlam;
@@ -105,8 +105,9 @@ public class BlamContributionManager implements IXNavigateCommonItem {
// Create categories first (so can have them up top)
for (String category : blamOperation.getCategories()) {
try {
- if (AccessControlManager.isOseeAdmin() || !category.contains("Admin") || category.contains(
- "Admin") && AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin() || !category.contains(
+ "Admin") || category.contains(
+ "Admin") && OseeApiService.get().getAccessControlService().isOseeAdmin()) {
createCategories(category.split("\\."), 0, blamOperationItems, nameToParent);
}
} catch (OseeCoreException ex) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/DatabaseHealth.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/DatabaseHealth.java
index adff5736a1..3beccbfe40 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/DatabaseHealth.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/DatabaseHealth.java
@@ -19,7 +19,6 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.IUserGroupArtifactToken;
import org.eclipse.osee.framework.core.enums.CoreUserGroups;
import org.eclipse.osee.framework.core.exception.OseeAccessDeniedException;
@@ -29,6 +28,7 @@ import org.eclipse.osee.framework.jdk.core.result.Manipulations;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.util.AXml;
import org.eclipse.osee.framework.jdk.core.util.Strings;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
import org.eclipse.osee.framework.ui.skynet.dbHealth.DatabaseHealthOperation;
@@ -155,7 +155,7 @@ public class DatabaseHealth extends AbstractBlam {
protected void doWork(IProgressMonitor monitor) throws Exception {
int totalTasks = fixOperations.size() + verifyOperations.size();
double workPercentage = 1.0 / totalTasks;
- if (!AccessControlManager.isOseeAdmin()) {
+ if (!OseeApiService.get().getAccessControlService().isOseeAdmin()) {
throw new OseeAccessDeniedException("Must be a Developer to run this BLAM");
} else {
for (DatabaseHealthOperation operation : fixOperations) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/ReportAttributeTypesUsageBlam.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/ReportAttributeTypesUsageBlam.java
index 94fa018671..640dc38000 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/ReportAttributeTypesUsageBlam.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/ReportAttributeTypesUsageBlam.java
@@ -43,7 +43,7 @@ public class ReportAttributeTypesUsageBlam extends AbstractBlam {
@Override
public void runOperation(VariableMap variableMap, IProgressMonitor monitor) throws Exception {
- monitor.beginTask("Report Usage of AttributeTypes on Branch", IProgressMonitor.UNKNOWN);
+ monitor.beginTask("Report Usage of AttributeType on Branch", IProgressMonitor.UNKNOWN);
XResultData xResultData = new XResultData();
BranchId branch = variableMap.getBranch("Branch");
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/ValidateArtifactsToDelete.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/ValidateArtifactsToDelete.java
index e6efabbc2b..89bb033b53 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/ValidateArtifactsToDelete.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/ValidateArtifactsToDelete.java
@@ -21,11 +21,10 @@ import org.eclipse.osee.framework.core.data.IUserGroupArtifactToken;
import org.eclipse.osee.framework.core.enums.CoreUserGroups;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.util.Collections;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.skynet.results.XResultDataUI;
/**
@@ -57,8 +56,7 @@ public class ValidateArtifactsToDelete extends AbstractBlam {
rd.log("Validation Artifacts: " + Collections.toString("; ", artifacts));
// Confirm artifacts are fit to delete
try {
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
- policy.isDeleteable(Collections.castAll(artifacts), rd);
+ OseeApiService.get().getAccessControlService().isDeleteable(Collections.castAll(artifacts), rd);
rd.log("\n");
rd.log("Validation Complete - Any errors will be displayed.");
XResultDataUI.report(rd, "Validate Artifacts to Delete");
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/branch/ViewApplicabilityUtil.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/branch/ViewApplicabilityUtil.java
index e603afa279..f3c3528981 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/branch/ViewApplicabilityUtil.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/branch/ViewApplicabilityUtil.java
@@ -19,17 +19,18 @@ import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import org.eclipse.jface.window.Window;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.TransactionToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.Pair;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
+import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.ViewApplicabilityFilterTreeDialog;
@@ -42,7 +43,6 @@ public class ViewApplicabilityUtil {
public static String CHANGE_APPLICABILITY_INVAILD = "User does not have permissions to change View Applicability";
public static String SAVE_OTHER_CHANGES = "Save all other changes before making View Applicability update";
- private static AccessPolicy policy;
public static Pair<Boolean, String> changeApplicability(List<? extends ArtifactToken> artifacts) {
BranchId branch = artifacts.iterator().next().getBranch();
@@ -62,13 +62,6 @@ public class ViewApplicabilityUtil {
return new Pair<>(false, "");
}
- private static AccessPolicy getAccessPolicy() {
- if (policy == null) {
- policy = ServiceUtil.getAccessPolicy();
- }
- return policy;
- }
-
public static boolean isChangeApplicabilityValid(Collection<Artifact> artifacts) {
try {
for (Artifact artifact : artifacts) {
@@ -76,9 +69,9 @@ public class ViewApplicabilityUtil {
return false;
}
}
- PermissionStatus permissionStatus = new PermissionStatus();
- permissionStatus = getAccessPolicy().hasArtifactPermission(artifacts, PermissionEnum.WRITE, Level.FINE);
- boolean isWriteable = permissionStatus.matched();
+ XResultData rd = OseeApiService.get().getAccessControlService().hasArtifactPermission(UserManager.getUser(), artifacts,
+ PermissionEnum.WRITE, null);
+ boolean isWriteable = rd.isSuccess();
if (!isWriteable) {
return false;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/change/ChangeUiUtil.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/change/ChangeUiUtil.java
index 79f36ac296..565f37481d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/change/ChangeUiUtil.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/change/ChangeUiUtil.java
@@ -17,7 +17,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.TransactionToken;
@@ -25,14 +24,18 @@ import org.eclipse.osee.framework.core.enums.BranchState;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.core.model.TransactionDelta;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.util.Conditions;
import org.eclipse.osee.framework.plugin.core.util.Jobs;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.change.view.ChangeReportEditor;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.progress.UIJob;
@@ -59,10 +62,12 @@ public final class ChangeUiUtil {
* @return true if permissions denied
*/
public static boolean permissionsDeniedWithDialog(BranchToken branch) {
- boolean hasPermission = AccessControlManager.hasPermission(branch, PermissionEnum.READ);
- if (!hasPermission) {
- AWorkbench.popup("Access Denied",
- String.format("Access denied to branch:\n\n%s", BranchManager.toStringWithId(branch)));
+ XResultData rd =
+ OseeApiService.get().getAccessControlService().hasBranchPermission(BranchManager.getBranch(branch),
+ PermissionEnum.READ, AccessControlArtifactUtil.getXResultAccessHeader("Branch Access Denied", branch));
+ if (rd.isErrors()) {
+ XResultDataDialog.open(rd, "Branch Access Denied", "Access denied to branch:\n\n%s",
+ BranchManager.toStringWithId(branch));
return true;
}
return false;
@@ -140,16 +145,16 @@ public final class ChangeUiUtil {
Jobs.startJob(job, true);
}
- public static void open(BranchToken workingBranchId, BranchId parentBranchId, boolean b) {
- Branch workingBranch = BranchManager.getBranch(workingBranchId);
- if (workingBranch.isInvalid() || permissionsDeniedWithDialog(workingBranchId)) {
+ public static void open(BranchToken workingBranch, BranchId parentBranchId, boolean loadOnOpen) {
+ Branch branch = BranchManager.getBranch(workingBranch);
+ if (branch.isInvalid() || permissionsDeniedWithDialog(workingBranch)) {
return;
}
Branch parentBranch = BranchManager.getBranch(parentBranchId);
if (parentBranch.isInvalid() || permissionsDeniedWithDialog(parentBranch)) {
return;
}
- ChangeReportEditorInput input = createInput(workingBranch, true);
+ ChangeReportEditorInput input = createInput(workingBranch, loadOnOpen);
open(input);
}
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/AccessControlHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/AccessControlHandler.java
index b7545b65fb..e24775c99e 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/AccessControlHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/AccessControlHandler.java
@@ -32,7 +32,7 @@ public class AccessControlHandler extends CommandHandler {
public Object executeWithException(ExecutionEvent event, IStructuredSelection selection) {
Object object = getSelection(selection);
if (object != null) {
- PolicyDialog pd = new PolicyDialog(Displays.getActiveShell(), object);
+ PolicyDialog pd = PolicyDialog.createPolicyDialog(Displays.getActiveShell(), object);
pd.open();
} else {
AWorkbench.popup("Selection can not be determined");
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CompressWordAttributesHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CompressWordAttributesHandler.java
index b5cfebc346..71a87b3cea 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CompressWordAttributesHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CompressWordAttributesHandler.java
@@ -21,12 +21,12 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.word.WordUtil;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.ui.PlatformUI;
@@ -43,8 +43,9 @@ public class CompressWordAttributesHandler extends CommandHandler {
artifacts = Handlers.getArtifactsFromStructuredSelection(structuredSelection);
if (!artifacts.isEmpty()) {
- boolean writePermission = AccessControlManager.hasPermission(artifacts.get(0), PermissionEnum.WRITE);
- enabled = writePermission && AccessControlManager.isOseeAdmin();
+ boolean writePermission = OseeApiService.get().getAccessControlService().hasArtifactPermission(artifacts.get(0),
+ PermissionEnum.WRITE, null).isSuccess();
+ enabled = writePermission && OseeApiService.get().getAccessControlService().isOseeAdmin();
}
return enabled;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CopyHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CopyHandler.java
index c09ca86753..22a229a278 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CopyHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CopyHandler.java
@@ -25,7 +25,6 @@ import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
import org.eclipse.osee.framework.ui.skynet.util.ArtifactClipboard;
import org.eclipse.search.ui.text.Match;
import org.eclipse.ui.IWorkbenchPartSite;
@@ -78,7 +77,7 @@ public class CopyHandler extends AbstractHandler {
clipboard.setTextToClipboard(names);
} else if (!names.isEmpty() && !artifacts.isEmpty()) {
try {
- clipboard.setArtifactsToClipboard(ServiceUtil.getAccessPolicy(), artifacts);
+ clipboard.setArtifactsToClipboard(artifacts);
} catch (OseeCoreException ex) {
clipboard.dispose();
throw new ExecutionException(ex.getLocalizedMessage());
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/DeleteArtifactHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/DeleteArtifactHandler.java
index b8c1022ac3..2c515a7ea5 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/DeleteArtifactHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/DeleteArtifactHandler.java
@@ -18,13 +18,13 @@ import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactPersistenceManager;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.swt.Displays;
/**
@@ -55,7 +55,8 @@ public class DeleteArtifactHandler extends CommandHandler {
boolean enabled = false;
artifacts = Handlers.getArtifactsFromStructuredSelection(structuredSelection);
if (!artifacts.isEmpty()) {
- enabled = AccessControlManager.hasPermission(artifacts, PermissionEnum.WRITE);
+ enabled = OseeApiService.get().getAccessControlService().hasArtifactPermission(artifacts, PermissionEnum.WRITE,
+ null).isSuccess();
}
return enabled;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/PurgeArtifactHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/PurgeArtifactHandler.java
index ba10bd7910..8ece1fb21d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/PurgeArtifactHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/PurgeArtifactHandler.java
@@ -22,7 +22,6 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.operation.Operations;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -30,6 +29,7 @@ import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.PurgeArtifacts;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.ui.PlatformUI;
@@ -70,6 +70,7 @@ public class PurgeArtifactHandler extends CommandHandler {
@Override
public boolean isEnabledWithException(IStructuredSelection structuredSelection) {
artifacts = Handlers.getArtifactsFromStructuredSelection(structuredSelection);
- return AccessControlManager.isOseeAdmin() && AccessControlManager.hasPermission(artifacts, PermissionEnum.WRITE);
+ return OseeApiService.get().getAccessControlService().isOseeAdmin() && OseeApiService.get().getAccessControlService().hasArtifactPermission(
+ artifacts, PermissionEnum.WRITE, null).isSuccess();
}
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/ReplaceWithBaselineHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/ReplaceWithBaselineHandler.java
index 0255e75370..98ca892041 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/ReplaceWithBaselineHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/ReplaceWithBaselineHandler.java
@@ -26,7 +26,6 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.window.Window;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.model.change.ChangeType;
import org.eclipse.osee.framework.core.operation.AbstractOperation;
@@ -38,6 +37,7 @@ import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.change.Change;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.blam.operation.ReplaceArtifactWithBaselineOperation;
import org.eclipse.osee.framework.ui.skynet.blam.operation.ReplaceAttributeWithBaselineOperation;
import org.eclipse.osee.framework.ui.skynet.change.view.ChangeReportEditor;
@@ -85,7 +85,8 @@ public class ReplaceWithBaselineHandler extends AbstractHandler {
try {
isEnabled =
- isEnabled && AccessControlManager.hasPermission(change.getChangeArtifact(), PermissionEnum.WRITE);
+ isEnabled && OseeApiService.get().getAccessControlService().hasArtifactPermission(change.getChangeArtifact(),
+ PermissionEnum.WRITE, null).isSuccess();
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, "Error loading changes for change report handler");
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ArchiveBranchHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ArchiveBranchHandler.java
index 6f3ae6bdee..ef69f0154e 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ArchiveBranchHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ArchiveBranchHandler.java
@@ -18,7 +18,6 @@ import java.util.List;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.enums.BranchArchivedState;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
@@ -26,6 +25,7 @@ import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.model.BranchEvent;
import org.eclipse.osee.framework.skynet.core.event.model.BranchEventType;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -37,7 +37,7 @@ public class ArchiveBranchHandler extends CommandHandler {
@Override
public boolean isEnabledWithException(IStructuredSelection structuredSelection) {
List<? extends BranchId> branches = Handlers.getBranchesFromStructuredSelection(structuredSelection);
- return !branches.isEmpty() && AccessControlManager.isOseeAdmin();
+ return !branches.isEmpty() && OseeApiService.get().getAccessControlService().isOseeAdmin();
}
@Override
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/BranchCreationHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/BranchCreationHandler.java
index c5b8255cad..bcc2200278 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/BranchCreationHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/BranchCreationHandler.java
@@ -19,9 +19,9 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
+import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.TransactionToken;
import org.eclipse.osee.framework.core.enums.CoreBranches;
import org.eclipse.osee.framework.core.enums.DemoUsers;
@@ -33,6 +33,7 @@ import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryCheckDialog;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -70,8 +71,8 @@ public class BranchCreationHandler extends CommandHandler {
BranchId branch = parentTransactionId.getBranch();
if (branch.equals(CoreBranches.SYSTEM_ROOT)) {
BranchManager.createTopLevelBranch(dialog.getEntry());
- AccessControlManager.setPermission(UserManager.getUser(DemoUsers.Joe_Smith), branch,
- PermissionEnum.FULLACCESS);
+ OseeApiService.get().getAccessControlService().setPermission(UserManager.getUser(DemoUsers.Joe_Smith),
+ branch, PermissionEnum.FULLACCESS);
} else {
if (dialog.isChecked()) {
BranchManager.createWorkingBranchFromTx(parentTransactionId, dialog.getEntry(), null);
@@ -98,19 +99,20 @@ public class BranchCreationHandler extends CommandHandler {
}
Object object = structuredSelection.getFirstElement();
- BranchId branch = null;
+ BranchToken branch = null;
if (object instanceof BranchId) {
- branch = (BranchId) object;
+ branch = BranchManager.getBranch((BranchId) object);
} else if (object instanceof TransactionToken) {
- branch = ((TransactionToken) object).getBranch();
+ branch = BranchManager.getBranch(((TransactionToken) object).getBranch());
}
if (branch == null || BranchManager.isArchived(branch)) {
return false;
}
- enabled = AccessControlManager.hasPermission(branch, PermissionEnum.READ);
+ enabled = OseeApiService.get().getAccessControlService().hasBranchPermission(branch, PermissionEnum.READ,
+ null).isSuccess();
return enabled;
}
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/GeneralBranchHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/GeneralBranchHandler.java
index 8559e7af30..89c9d51e79 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/GeneralBranchHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/GeneralBranchHandler.java
@@ -17,14 +17,15 @@ import java.util.List;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.osee.framework.ui.swt.Displays;
/**
@@ -63,7 +64,8 @@ public abstract class GeneralBranchHandler extends CommandHandler {
List<BranchToken> selectedBranches = Handlers.getBranchesFromStructuredSelection(selection);
for (BranchToken branch : selectedBranches) {
confirmDialogResults.logf("Branch: %s\n", branch.toStringWithId());
- if (!AccessControlManager.hasPermission(branch, PermissionEnum.WRITE)) {
+ if (!OseeApiService.get().getAccessControlService().hasBranchPermission(branch, PermissionEnum.WRITE,
+ errorResults).isSuccess()) {
errorResults.errorf("No write permission for Branch %s.\n\n", branch.toStringWithId());
}
if (BranchManager.hasChildren(branch)) {
@@ -72,7 +74,7 @@ public abstract class GeneralBranchHandler extends CommandHandler {
}
if (errorResults.isErrors()) {
- MessageDialog.openError(Displays.getActiveShell(), type.dialogTitle, errorResults.toString());
+ XResultDataDialog.open(errorResults, type.dialogTitle, type.dialogTitle);
} else {
if (MessageDialog.openQuestion(Displays.getActiveShell(), type.dialogTitle, confirmDialogResults.toString())) {
performOperation(selectedBranches);
@@ -85,7 +87,8 @@ public abstract class GeneralBranchHandler extends CommandHandler {
@Override
public boolean isEnabledWithException(IStructuredSelection structuredSelection) {
List<? extends BranchId> branches = Handlers.getBranchesFromStructuredSelection(structuredSelection);
- return !branches.isEmpty() && (AccessControlManager.isOseeAdmin() || canEnableBranches(branches));
+ return !branches.isEmpty() && (OseeApiService.get().getAccessControlService().isOseeAdmin() || canEnableBranches(
+ branches));
}
private boolean canEnableBranches(List<? extends BranchId> branches) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/OpenAssociatedArtifactHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/OpenAssociatedArtifactHandler.java
index d9303aa482..5c1d02d60d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/OpenAssociatedArtifactHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/OpenAssociatedArtifactHandler.java
@@ -16,7 +16,6 @@ package org.eclipse.osee.framework.ui.skynet.commandHandlers.branch;
import java.util.List;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
@@ -28,6 +27,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.cm.IOseeCmService;
import org.eclipse.osee.framework.ui.skynet.cm.OseeCmEditor;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
@@ -54,7 +54,8 @@ public class OpenAssociatedArtifactHandler extends CommandHandler {
AWorkbench.popup("ERROR", "No Associated Artifact");
return null;
}
- if (AccessControlManager.hasPermission(associatedArtifact, PermissionEnum.READ)) {
+ if (OseeApiService.get().getAccessControlService().hasArtifactPermission(associatedArtifact, PermissionEnum.READ,
+ null).isSuccess()) {
IOseeCmService cmService = ServiceUtil.getOseeCmService();
if (cmService.isPcrArtifact(associatedArtifact)) {
cmService.openArtifact(associatedArtifact, OseeCmEditor.CmPcrEditor);
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/PurgeTransactionHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/PurgeTransactionHandler.java
index d32c6834c6..abdf0de291 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/PurgeTransactionHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/PurgeTransactionHandler.java
@@ -16,9 +16,9 @@ package org.eclipse.osee.framework.ui.skynet.commandHandlers.branch;
import java.util.List;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.TransactionToken;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.action.PurgeTransactionAction;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
@@ -40,6 +40,6 @@ public class PurgeTransactionHandler extends CommandHandler {
@Override
public boolean isEnabledWithException(IStructuredSelection structuredSelection) {
List<TransactionToken> transactions = Handlers.getTransactionsFromStructuredSelection(structuredSelection);
- return transactions.size() > 0 && AccessControlManager.isOseeAdmin();
+ return transactions.size() > 0 && OseeApiService.get().getAccessControlService().isOseeAdmin();
}
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/RenameBranchHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/RenameBranchHandler.java
index ded99d54c9..af019d0e3f 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/RenameBranchHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/RenameBranchHandler.java
@@ -18,11 +18,11 @@ import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
import org.eclipse.osee.framework.ui.skynet.widgets.xBranch.BranchXViewerFactory;
import org.eclipse.osee.framework.ui.swt.Widgets;
@@ -124,7 +124,7 @@ public class RenameBranchHandler extends CommandHandler {
return false;
}
BranchToken branch = branches.get(0);
- return AccessControlManager.isOseeAdmin() || BranchManager.getType(
+ return OseeApiService.get().getAccessControlService().isOseeAdmin() || BranchManager.getType(
branch).isWorkingBranch() || BranchManager.getBaseTransaction(branch).getAuthor().equals(
UserManager.getUser());
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/SetAssociatedBranchArtifactHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/SetAssociatedBranchArtifactHandler.java
index 664e355c6c..fb2f878b73 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/SetAssociatedBranchArtifactHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/SetAssociatedBranchArtifactHandler.java
@@ -18,7 +18,6 @@ import java.util.List;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
@@ -26,6 +25,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -57,6 +57,6 @@ public class SetAssociatedBranchArtifactHandler extends CommandHandler {
@Override
public boolean isEnabledWithException(IStructuredSelection structuredSelection) {
List<? extends BranchId> branches = Handlers.getBranchesFromStructuredSelection(structuredSelection);
- return branches.size() == 1 && AccessControlManager.isOseeAdmin();
+ return branches.size() == 1 && OseeApiService.get().getAccessControlService().isOseeAdmin();
}
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ShowArchivedBranchHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ShowArchivedBranchHandler.java
index f35e2bbc30..ee9dfe0aac 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ShowArchivedBranchHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ShowArchivedBranchHandler.java
@@ -20,11 +20,11 @@ import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.utility.DbUtil;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.util.DbConnectionUtility;
import org.eclipse.osee.framework.ui.skynet.widgets.xBranch.BranchOptionsEnum;
@@ -79,7 +79,7 @@ public class ShowArchivedBranchHandler extends CommandHandler implements IElemen
if (!DbUtil.isDbInit() && DbConnectionUtility.isApplicationServerAlive()) {
service.refreshElements(COMMAND_ID, null);
try {
- isValid = AccessControlManager.isOseeAdmin();
+ isValid = OseeApiService.get().getAccessControlService().isOseeAdmin();
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ShowMergeBranchPresentationHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ShowMergeBranchPresentationHandler.java
index a56681d997..6825b0a0f9 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ShowMergeBranchPresentationHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/ShowMergeBranchPresentationHandler.java
@@ -20,10 +20,10 @@ import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.utility.DbUtil;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.widgets.xBranch.BranchOptionsEnum;
import org.eclipse.osee.framework.ui.skynet.widgets.xBranch.BranchView;
@@ -72,7 +72,7 @@ public final class ShowMergeBranchPresentationHandler extends AbstractHandler im
IWorkbench workbench = PlatformUI.getWorkbench();
if (!workbench.isStarting() && !workbench.isClosing()) {
try {
- isValid = AccessControlManager.isOseeAdmin();
+ isValid = OseeApiService.get().getAccessControlService().isOseeAdmin();
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitHandler.java
index 17a4224c31..ed75c360fa 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitHandler.java
@@ -25,7 +25,6 @@ import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.window.Window;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.TransactionResult;
@@ -36,6 +35,7 @@ import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.conflict.ConflictManagerExternal;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.util.MergeInProgressHandler;
@@ -140,7 +140,8 @@ public abstract class CommitHandler extends CommandHandler {
if (branches.size() == 1) {
BranchToken branch = branches.iterator().next();
- return useParentBranchValid(branch) || !useParentBranch && AccessControlManager.isOseeAdmin();
+ return useParentBranchValid(
+ branch) || !useParentBranch && OseeApiService.get().getAccessControlService().isOseeAdmin();
}
return false;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitIntoHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitIntoHandler.java
index ceb442128e..d6b68724b4 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitIntoHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitIntoHandler.java
@@ -19,13 +19,13 @@ import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.window.Window;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.BranchArchivedState;
import org.eclipse.osee.framework.core.enums.BranchType;
import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.branch.BranchSelectionDialog;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.CheckBoxDialog;
@@ -47,7 +47,7 @@ public class CommitIntoHandler extends CommitHandler {
BranchId sourceBranch = Handlers.getBranchesFromStructuredSelection(selection).iterator().next();
BranchType[] allowedTypes;
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
allowedTypes = new BranchType[] {BranchType.WORKING, BranchType.BASELINE};
} else {
allowedTypes = new BranchType[] {BranchType.WORKING};
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/SingleNativeDiffHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/SingleNativeDiffHandler.java
index 094d364a76..ee13efc77c 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/SingleNativeDiffHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/SingleNativeDiffHandler.java
@@ -19,7 +19,6 @@ import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.util.RendererOption;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
@@ -27,6 +26,7 @@ import org.eclipse.osee.framework.skynet.core.change.ArtifactDelta;
import org.eclipse.osee.framework.skynet.core.change.Change;
import org.eclipse.osee.framework.skynet.core.revision.ChangeManager;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.framework.ui.skynet.render.RenderingUtil;
@@ -42,7 +42,8 @@ public class SingleNativeDiffHandler extends CommandHandler {
changes = new ArrayList<>(Handlers.getArtifactChangesFromStructuredSelection(structuredSelection));
if (changes.size() == 1) {
Artifact sampleArtifact = changes.iterator().next().getChangeArtifact();
- return AccessControlManager.hasPermission(sampleArtifact, PermissionEnum.READ);
+ return OseeApiService.get().getAccessControlService().hasArtifactPermission(sampleArtifact, PermissionEnum.READ,
+ null).isSuccess();
}
return false;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/renderer/handlers/AbstractEditorHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/renderer/handlers/AbstractEditorHandler.java
index 61f07ffe52..16f627492c 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/renderer/handlers/AbstractEditorHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/renderer/handlers/AbstractEditorHandler.java
@@ -16,10 +16,10 @@ package org.eclipse.osee.framework.ui.skynet.commandHandlers.renderer.handlers;
import java.util.List;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
/**
@@ -39,7 +39,8 @@ public abstract class AbstractEditorHandler extends CommandHandler {
public boolean isEnabledWithException(IStructuredSelection structuredSelection) {
artifacts = Handlers.getArtifactsFromStructuredSelection(structuredSelection);
if (!artifacts.isEmpty()) {
- return AccessControlManager.hasPermission(artifacts, getPermissionLevel());
+ return OseeApiService.get().getAccessControlService().hasArtifactPermission(artifacts, getPermissionLevel(),
+ null).isSuccess();
}
return false;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorer.java
index b3a868992d..a94327d718 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorer.java
@@ -13,6 +13,7 @@
package org.eclipse.osee.framework.ui.skynet.explorer;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
@@ -23,7 +24,6 @@ import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
@@ -53,6 +53,7 @@ import org.eclipse.osee.framework.ui.skynet.ArtifactLabelProvider;
import org.eclipse.osee.framework.ui.skynet.ArtifactStructuredSelection;
import org.eclipse.osee.framework.ui.skynet.IArtifactExplorerEventHandler;
import org.eclipse.osee.framework.ui.skynet.OseeStatusContributionItemFactory;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.explorer.menu.ArtifactExplorerMenu;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.listener.IRebuildMenuListener;
@@ -76,9 +77,11 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewReference;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
/**
* @author Ryan D. Brooks
@@ -330,8 +333,8 @@ public class ArtifactExplorer extends GenericViewPart implements IArtifactExplor
if (memento != null && memento.getString(ROOT_UUID) != null && memento.getString(ROOT_BRANCH) != null) {
BranchId branch = BranchId.valueOf(memento.getString(ROOT_BRANCH));
- if (BranchManager.branchExists(
- branch) && !BranchManager.isArchived(branch) || AccessControlManager.isOseeAdmin()) {
+ if (BranchManager.branchExists(branch) && !BranchManager.isArchived(
+ branch) || OseeApiService.get().getAccessControlService().isOseeAdmin()) {
Artifact previousArtifact =
ArtifactQuery.checkArtifactFromId(ArtifactId.valueOf(memento.getString(ROOT_UUID)), branch);
if (previousArtifact != null) {
@@ -464,6 +467,18 @@ public class ArtifactExplorer extends GenericViewPart implements IArtifactExplor
return this;
}
+ public static List<ArtifactExplorer> getEditors() {
+ List<ArtifactExplorer> results = new ArrayList<>();
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ IViewReference views[] = page.getViewReferences();
+ for (IViewReference view : views) {
+ if (view.getPart(false) instanceof ArtifactExplorer) {
+ results.add((ArtifactExplorer) view.getPart(false));
+ }
+ }
+ return results;
+ }
+
@Override
public boolean isDisposed() {
return treeViewer.getTree() == null || treeViewer.getTree().isDisposed();
@@ -513,4 +528,8 @@ public class ArtifactExplorer extends GenericViewPart implements IArtifactExplor
this.refreshing = refreshing;
}
+ public void resetMenu() {
+ artifactExplorerMenu.resetMenu();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerDragAndDrop.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerDragAndDrop.java
index 4ac8745765..aa64d14067 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerDragAndDrop.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerDragAndDrop.java
@@ -16,9 +16,9 @@ package org.eclipse.osee.framework.ui.skynet.explorer;
import static org.eclipse.osee.framework.core.enums.RelationSorter.USER_DEFINED;
import java.io.File;
import java.util.Arrays;
+import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
-import java.util.logging.Level;
import org.apache.commons.io.FilenameUtils;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -31,13 +31,13 @@ import org.eclipse.osee.framework.core.data.JsonAttribute;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.operation.IOperation;
import org.eclipse.osee.framework.core.operation.Operations;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.OseeSystemArtifacts;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
@@ -55,6 +55,7 @@ import org.eclipse.osee.framework.ui.skynet.Import.ArtifactImportOperationParame
import org.eclipse.osee.framework.ui.skynet.Import.ArtifactImportWizard;
import org.eclipse.osee.framework.ui.skynet.Import.ArtifactResolverFactory;
import org.eclipse.osee.framework.ui.skynet.Import.ArtifactResolverFactory.ArtifactCreationStrategy;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
@@ -123,7 +124,6 @@ public class ArtifactExplorerDragAndDrop extends SkynetDragAndDrop {
ArtifactData toBeDropped = ArtifactTransfer.getInstance().nativeToJava(event.currentDataType);
if (dropTarget != null) {
try {
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
Artifact[] artifactsBeingDropped = toBeDropped.getArtifacts();
List<Artifact> artsOnSameBranchAsDestination = new LinkedList<>();
BranchId destinationBranch = dropTarget.getBranch();
@@ -132,15 +132,19 @@ public class ArtifactExplorerDragAndDrop extends SkynetDragAndDrop {
artsOnSameBranchAsDestination.add(art);
}
}
- valid = policy.canRelationBeModified(dropTarget, artsOnSameBranchAsDestination,
- CoreRelationTypes.DefaultHierarchical_Child, Level.FINE).matched();
+
+ valid = OseeApiService.get().getAccessControlService().hasRelationTypePermission(dropTarget,
+ CoreRelationTypes.DefaultHierarchical_Child, artsOnSameBranchAsDestination, PermissionEnum.WRITE,
+ null).isSuccess();
// if we are deparenting ourself, make sure our parent's child side can be modified
if (valid) {
for (Artifact art : artsOnSameBranchAsDestination) {
if (art.hasParent()) {
- valid = policy.canRelationBeModified(art.getParent(), null,
- CoreRelationTypes.DefaultHierarchical_Child, Level.FINE).matched();
+ valid =
+ OseeApiService.get().getAccessControlService().hasRelationTypePermission(art.getParent(),
+ CoreRelationTypes.DefaultHierarchical_Child, Collections.emptyList(),
+ PermissionEnum.WRITE, null).isSuccess();
}
if (!valid) {
break;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerEventManager.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerEventManager.java
index 9cee894142..33f6c2f46c 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerEventManager.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerEventManager.java
@@ -18,6 +18,7 @@ import java.util.Collection;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEvent;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.enums.BranchState;
import org.eclipse.osee.framework.core.event.EventUtil;
@@ -27,7 +28,6 @@ import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
import org.eclipse.osee.framework.skynet.core.event.filter.IEventFilter;
import org.eclipse.osee.framework.skynet.core.event.listener.IArtifactEventListener;
-import org.eclipse.osee.framework.skynet.core.event.model.AccessTopicEvent;
import org.eclipse.osee.framework.skynet.core.event.model.ArtifactEvent;
import org.eclipse.osee.framework.skynet.core.event.model.EventBasicGuidArtifact;
import org.eclipse.osee.framework.skynet.core.event.model.EventModType;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerToolbar.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerToolbar.java
index d5f543647b..d9c430faf1 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerToolbar.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerToolbar.java
@@ -22,7 +22,7 @@ import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.window.Window;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.framework.core.access.IAccessControlService;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.GUID;
@@ -34,7 +34,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
-import org.eclipse.osee.framework.ui.skynet.access.AccessControlService;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.action.OpenAssociatedArtifactFromBranchProvider;
import org.eclipse.osee.framework.ui.skynet.change.ChangeUiUtil;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
@@ -109,8 +109,8 @@ public class ArtifactExplorerToolbar {
@Override
protected IStatus run(IProgressMonitor monitor) {
- AccessControlService.getAccessService().clearCache();
- AccessControlService.getAccessService().ensurePopulated();
+ OseeApiService.get().getAccessControlService().clearCaches();
+ OseeApiService.get().getAccessControlService().ensurePopulated();
Displays.ensureInDisplayThread(new Runnable() {
@@ -119,14 +119,14 @@ public class ArtifactExplorerToolbar {
artifactExplorer.setRefreshing(false);
artifactExplorer.refreshBranchWarning();
ArtifactExplorer.exploreBranch(artifactExplorer.getBranch());
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
CheckBoxDialog dialog =
new CheckBoxDialog("Admin - Enable Debug", "Enable Branch Access Debug",
"Check to enable Branch Access Debug if instructed to do so");
if (dialog.open() == Window.OK) {
- System.setProperty(AccessControlManager.DEBUG_BRANCH_ACCESS, "true");
+ System.setProperty(IAccessControlService.DEBUG_BRANCH_ACCESS, "true");
} else {
- System.setProperty(AccessControlManager.DEBUG_BRANCH_ACCESS, "false");
+ System.setProperty(IAccessControlService.DEBUG_BRANCH_ACCESS, "false");
}
}
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerUtil.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerUtil.java
index ad29e63020..47bce876cf 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerUtil.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/ArtifactExplorerUtil.java
@@ -22,12 +22,13 @@ import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
+import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.BranchState;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.operation.IOperation;
import org.eclipse.osee.framework.core.operation.Operations;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.GUID;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -36,6 +37,7 @@ import org.eclipse.osee.framework.skynet.core.OseeSystemArtifacts;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.osee.framework.ui.swt.Widgets;
@@ -77,7 +79,7 @@ public class ArtifactExplorerUtil {
}
}
- public static void refreshBranchWarning(ArtifactExplorer artifactExplorer, TreeViewer treeViewer, BranchId branch, BranchWarningComposite branchWarningComposite) {
+ public static void refreshBranchWarning(ArtifactExplorer artifactExplorer, TreeViewer treeViewer, BranchToken branch, BranchWarningComposite branchWarningComposite) {
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
@@ -89,7 +91,8 @@ public class ArtifactExplorerUtil {
Control control = treeViewer.getTree();
if (branch.isValid()) {
String warningStr = null;
- boolean branchReadable = AccessControlManager.hasPermission(branch, PermissionEnum.READ);
+ boolean branchReadable = OseeApiService.get().getAccessControlService().hasBranchPermission(branch,
+ PermissionEnum.READ, new XResultData()).isSuccess();
if (artifactExplorer.isRefreshing()) {
warningStr = "Refreshing Artifact Explorer";
} else if (!branchReadable) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/MenuPermissions.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/MenuPermissions.java
index 93059b4345..fd8ebf8291 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/MenuPermissions.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/MenuPermissions.java
@@ -16,12 +16,13 @@ package org.eclipse.osee.framework.ui.skynet.explorer;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import org.eclipse.osee.framework.access.AccessControlManager;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
/**
* @author Donald G. Dunne
@@ -46,21 +47,27 @@ public class MenuPermissions {
fullAccess = true;
isLocked = false;
accessToRemoveLock = true;
- Artifact combinationSubject = null;
+ ArtifactToken combinationSubject = null;
for (Artifact objectArtifact : artifacts) {
- writePermission = writePermission && AccessControlManager.hasPermission(objectArtifact,
- PermissionEnum.WRITE) && BranchManager.isEditable(objectArtifact.getBranch());
- readPermission = readPermission && AccessControlManager.hasPermission(objectArtifact, PermissionEnum.READ);
- fullAccess = fullAccess && AccessControlManager.hasPermission(objectArtifact, PermissionEnum.FULLACCESS);
- isLocked = isLocked || AccessControlManager.hasLock(objectArtifact);
+ writePermission =
+ writePermission && OseeApiService.get().getAccessControlService().hasArtifactPermission(objectArtifact,
+ PermissionEnum.WRITE, null).isSuccess() && BranchManager.isEditable(objectArtifact.getBranch());
+ readPermission =
+ readPermission && OseeApiService.get().getAccessControlService().hasArtifactPermission(objectArtifact,
+ PermissionEnum.READ, null).isSuccess();
+ fullAccess = fullAccess && OseeApiService.get().getAccessControlService().hasArtifactPermission(objectArtifact,
+ PermissionEnum.FULLACCESS, null).isSuccess();
+ isLocked = isLocked || OseeApiService.get().getAccessControlService().hasLock(objectArtifact);
accessToRemoveLock =
- accessToRemoveLock && AccessControlManager.canUnlockObject(objectArtifact, UserManager.getUser());
+ accessToRemoveLock && OseeApiService.get().getAccessControlService().canUnlockObject(objectArtifact,
+ UserManager.getUser());
// acquire the name of the subject that has the lock
- Artifact subject = AccessControlManager.getSubjectFromLockedObject(objectArtifact);
+ ArtifactToken subject =
+ OseeApiService.get().getAccessControlService().getSubjectFromLockedObject(objectArtifact);
- if (isLocked && subject != null) {
+ if (isLocked && subject.isValid()) {
if (combinationSubject == null) {
combinationSubject = subject;
subjectFromLockedObjectName = combinationSubject.getName();
@@ -96,7 +103,8 @@ public class MenuPermissions {
}
public boolean isBranchReadable(BranchId branch) {
- return AccessControlManager.hasPermission(branch, PermissionEnum.READ);
+ return OseeApiService.get().getAccessControlService().hasBranchPermission(BranchManager.getBranch(branch),
+ PermissionEnum.READ, null).isSuccess();
}
public boolean isHasArtifacts() {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/menu/ArtifactExplorerMenu.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/menu/ArtifactExplorerMenu.java
index 4cfaebade8..892680f6dc 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/menu/ArtifactExplorerMenu.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/menu/ArtifactExplorerMenu.java
@@ -20,28 +20,29 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.window.Window;
-import org.eclipse.osee.framework.access.AccessControlManager;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
+import org.eclipse.osee.framework.core.access.AccessControlUtil;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.BranchId;
+import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
import org.eclipse.osee.framework.core.enums.CoreArtifactTokens;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
import org.eclipse.osee.framework.core.operation.Operations;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.OseeSystemArtifacts;
import org.eclipse.osee.framework.skynet.core.UserManager;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
@@ -54,7 +55,9 @@ import org.eclipse.osee.framework.ui.skynet.ArtifactContentProvider;
import org.eclipse.osee.framework.ui.skynet.ArtifactStructuredSelection;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.skynet.OpenContributionItem;
+import org.eclipse.osee.framework.ui.skynet.access.AccessControlDetails;
import org.eclipse.osee.framework.ui.skynet.access.PolicyDialog;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.action.DeleteAction;
import org.eclipse.osee.framework.ui.skynet.action.PurgeAction;
import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactNameConflictHandler;
@@ -71,6 +74,7 @@ import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.framework.ui.skynet.util.ArtifactClipboard;
import org.eclipse.osee.framework.ui.skynet.util.ArtifactPasteConfiguration;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.FilteredTreeArtifactTypeEntryDialog;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.osee.framework.ui.swt.ImageManager;
import org.eclipse.osee.framework.ui.swt.MenuItems;
@@ -107,6 +111,7 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
private MenuItem createMenuItem;
private CreateRelatedMenuItem createRelatedMenuItem;
private MenuItem accessControlMenuItem;
+ private MenuItem showAccessControlMenuItem;
private MenuItem lockMenuItem;
private MenuItem goIntoMenuItem;
private MenuItem copyMenuItem;
@@ -122,6 +127,7 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
private Text myTextBeingRenamed;
private MenuItem deleteMenuItem;
private MenuItem purgeMenuItem;
+ private Menu popupMenu;
public ArtifactExplorerMenu(ArtifactExplorer artifactExplorer) {
this.artifactExplorer = artifactExplorer;
@@ -138,22 +144,22 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
try {
IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
Object obj = selection.getFirstElement();
- AccessPolicy service = ServiceUtil.getAccessPolicy();
boolean canModifyDH = false;
boolean isArtifact = false;
MenuPermissions permiss;
if (obj instanceof Artifact) {
isArtifact = true;
Artifact art = (Artifact) obj;
- canModifyDH = service.canRelationBeModified(art, null, CoreRelationTypes.DefaultHierarchical_Child,
- Level.FINE).matched();
+ canModifyDH = OseeApiService.get().getAccessControlService().hasRelationTypePermission(art,
+ CoreRelationTypes.DefaultHierarchical_Child, java.util.Collections.emptyList(), PermissionEnum.WRITE,
+ null).isSuccess();
permiss = new MenuPermissions(art);
} else {
permiss = new MenuPermissions((Artifact) null);
}
boolean isBranchEditable =
- BranchManager.isEditable(getBranch()) && AccessControlManager.hasPermission(getBranch(),
- PermissionEnum.WRITE);
+ BranchManager.isEditable(getBranch()) && OseeApiService.get().getAccessControlService().hasBranchPermission(
+ getBranch(), PermissionEnum.WRITE, null).isSuccess();
boolean locked = permiss.isLocked();
if (isArtifact) {
@@ -183,11 +189,11 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
accessControlMenuItem.setEnabled(isArtifact);
refreshMenuItem.setEnabled(isArtifact);
- createRelatedMenuItem.setCreateRelatedEnabled(obj, service);
+ createRelatedMenuItem.setCreateRelatedEnabled(obj);
deleteMenuItem.setEnabled(isArtifact && permiss.isWritePermission());
purgeMenuItem.setEnabled(
- isArtifact && permiss.isHasArtifacts() && permiss.isWritePermission() && AccessControlManager.isOseeAdmin());
+ isArtifact && permiss.isHasArtifacts() && permiss.isWritePermission() && UserManager.getUser().isOseeAdmin());
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
@@ -197,7 +203,7 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
public void setupPopupMenu() {
- Menu popupMenu = new Menu(treeViewer.getTree().getParent());
+ popupMenu = new Menu(treeViewer.getTree().getParent());
needArtifactListener = new NeedArtifactMenuListener(artifactExplorer);
needProjectListener = new NeedProjectMenuListener(artifactExplorer);
popupMenu.addMenuListener(needArtifactListener);
@@ -243,10 +249,13 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
new MenuItem(popupMenu, SWT.SEPARATOR);
createAccessControlMenuItem(popupMenu);
+ if (AccessControlUtil.isDebugOn()) {
+ createShowAccessControlMenuItem(popupMenu);
+ }
treeViewer.getTree().setMenu(popupMenu);
}
- private BranchId getBranch() {
+ private BranchToken getBranch() {
return artifactExplorer.getBranch();
}
@@ -261,32 +270,22 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
Artifact parent = null;
- // If artifact is selected, check permissions of artifact
- if (selection.size() == 1) {
+ // Get selected and check permissions
+ if (selection.size() > 1) {
+ AWorkbench.popup("Select single or no artifact to Add Child");
+ return;
+ } else if (selection.size() == 1) {
parent = getParent();
-
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
-
- PermissionStatus status = policy.canRelationBeModified(parent, null,
- CoreRelationTypes.DefaultHierarchical_Child, Level.FINE);
- if (!status.matched()) {
- MessageDialog.openError(AWorkbench.getActiveShell(), "New Child Error",
- "Access control has restricted this action. The current user does not have sufficient permission to create relations on this artifact.");
- return;
- }
+ } else {
+ parent = OseeSystemArtifacts.getDefaultHierarchyRootArtifact(getBranch());
}
- // check branch permissions
- else {
- boolean isBranchEditable =
- BranchManager.isEditable(getBranch()) && AccessControlManager.hasPermission(getBranch(),
- PermissionEnum.WRITE);
- if (!isBranchEditable) {
- MessageDialog.openError(AWorkbench.getActiveShell(), "New Child Error",
- "Access control has restricted this action. The current user does not have sufficient permission to create relations on this artifact.");
- return;
- }
- parent = OseeSystemArtifacts.getDefaultHierarchyRootArtifact(getBranch());
+ XResultData rd = OseeApiService.get().getAccessControlService().hasArtifactPermission(parent,
+ PermissionEnum.WRITE, AccessControlArtifactUtil.getXResultAccessHeader("New Child Error", parent));
+ if (rd.isErrors()) {
+ XResultDataDialog.open(rd, "New Child Error",
+ "You do not have permissions to add related to artifact %s", parent.toStringWithId());
+ return;
}
handleCreateChild(parent, treeViewer);
} catch (Exception ex) {
@@ -586,7 +585,7 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
Artifact selectedArtifact = (Artifact) selection.getFirstElement();
try {
if (selectedArtifact != null) {
- PolicyDialog pd = new PolicyDialog(Displays.getActiveShell(), selectedArtifact);
+ PolicyDialog pd = PolicyDialog.createPolicyDialog(Displays.getActiveShell(), selectedArtifact);
pd.open();
artifactExplorer.refreshBranchWarning();
}
@@ -597,6 +596,25 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
});
}
+ private void createShowAccessControlMenuItem(Menu parentMenu) {
+ showAccessControlMenuItem = new MenuItem(parentMenu, SWT.PUSH);
+ showAccessControlMenuItem.setImage(ImageManager.getImage(FrameworkImage.LOCK_DETAILS));
+ showAccessControlMenuItem.setText(AccessControlDetails.NAME);
+ showAccessControlMenuItem.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
+ Artifact selectedArtifact = (Artifact) selection.getFirstElement();
+ try {
+ (new AccessControlDetails(selectedArtifact)).run();
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ }
+ });
+ }
+
private void createLockMenuItem(Menu parentMenu) {
lockMenuItem = new MenuItem(parentMenu, SWT.PUSH);
lockMenuItem.addSelectionListener(new SelectionAdapter() {
@@ -622,10 +640,11 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
try {
if (!unlockArtifacts.isEmpty()) {
- AccessControlManager.unLockObjects(unlockArtifacts, UserManager.getUser());
+ OseeApiService.get().getAccessControlService().unLockArtifacts(UserManager.getUser(),
+ Collections.castAll(unlockArtifacts));
}
if (!lockArtifacts.isEmpty()) {
- AccessControlManager.lockObjects(lockArtifacts, UserManager.getUser());
+ OseeApiService.get().getAccessControlService().lockArtifacts(UserManager.getUser(), lockArtifacts);
}
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
@@ -668,7 +687,7 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
artifactTransferData.add(artifact);
}
}
- artifactClipboard.setArtifactsToClipboard(ServiceUtil.getAccessPolicy(), artifactTransferData);
+ artifactClipboard.setArtifactsToClipboard(artifactTransferData);
}
}
@@ -799,4 +818,8 @@ public class ArtifactExplorerMenu implements ISelectedArtifacts {
return getSelection().toList();
}
+ public void resetMenu() {
+ setupPopupMenu();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/menu/CreateRelatedMenuItem.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/menu/CreateRelatedMenuItem.java
index 570f146e72..14af4fadc1 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/menu/CreateRelatedMenuItem.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/explorer/menu/CreateRelatedMenuItem.java
@@ -15,25 +15,26 @@ package org.eclipse.osee.framework.ui.skynet.explorer.menu;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
-import java.util.logging.Level;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.window.Window;
import org.eclipse.osee.framework.core.OrcsTokenService;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.RelationTypeSide;
import org.eclipse.osee.framework.core.data.RelationTypeToken;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
import org.eclipse.osee.framework.core.enums.RelationSide;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
@@ -41,6 +42,7 @@ import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.StringLabelProvider;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.explorer.ArtifactExplorer;
import org.eclipse.osee.framework.ui.skynet.explorer.ArtifactExplorerLinkNode;
import org.eclipse.osee.framework.ui.skynet.explorer.MenuPermissions;
@@ -50,6 +52,7 @@ import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.FilteredTreeArtifactTypeEntryDialog;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.FilteredTreeRelationTypeDialog;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
@@ -93,25 +96,23 @@ public class CreateRelatedMenuItem implements SelectionListener {
relationTypeSide = RelationTypeSide.create(relationType, RelationSide.SIDE_A);
}
- AccessPolicy service = ServiceUtil.getAccessPolicy();
+ XResultData rd = OseeApiService.get().getAccessControlService().hasRelationTypePermission(existingArtifact,
+ relationTypeSide, null, PermissionEnum.WRITE, AccessControlArtifactUtil.getXResultAccessHeader("New Related",
+ Collections.singleton(existingArtifact), relationTypeSide));
- // check permissions
- PermissionStatus status =
- service.canRelationBeModified(existingArtifact, null, relationTypeSide, Level.FINE);
- if (status.matched()) {
+ if (rd.isSuccess()) {
handleCreateRelated(existingArtifact, relationType, relationTypeSide, relationSide);
} else {
- MessageDialog.openError(AWorkbench.getActiveShell(), "New Child Error",
- "Access control has restricted this action. The current user does not have sufficient permission to create relations on this artifact.");
+ XResultDataDialog.open(rd, "New Child Error",
+ "You do not have permissions to add a New Related artifact");
}
} else if (obj instanceof Artifact) {
Artifact parentArt = (Artifact) obj;
- AccessPolicy policy = ServiceUtil.getAccessPolicy();
+ boolean hasPermission = OseeApiService.get().getAccessControlService().hasRelationTypePermission(parentArt,
+ CoreRelationTypes.DefaultHierarchical_Child, null, PermissionEnum.WRITE, null).isSuccess();
- PermissionStatus status =
- policy.canRelationBeModified(parentArt, null, CoreRelationTypes.DefaultHierarchical_Child, Level.FINE);
- if (!status.matched()) {
+ if (!hasPermission) {
MessageDialog.openError(AWorkbench.getActiveShell(), "New Child Error",
"Access control has restricted this action. The current user does not have sufficient permission to create relations on this artifact.");
return;
@@ -208,7 +209,7 @@ public class CreateRelatedMenuItem implements SelectionListener {
return dialog;
}
- public void setCreateRelatedEnabled(Object obj, AccessPolicy service) {
+ public void setCreateRelatedEnabled(Object obj) {
if (obj instanceof ArtifactExplorerLinkNode) {
ArtifactExplorerLinkNode linkNode = (ArtifactExplorerLinkNode) obj;
Artifact artifact = linkNode.getArtifact();
@@ -222,8 +223,10 @@ public class CreateRelatedMenuItem implements SelectionListener {
MenuPermissions permiss = new MenuPermissions(artifact);
- boolean canModifyRelation = service.canRelationBeModified(artifact, null, relationSide, Level.FINE).matched();
- menuItem.setEnabled(permiss.isWritePermission() && canModifyRelation);
+ boolean hasPermission = OseeApiService.get().getAccessControlService().hasRelationTypePermission(artifact,
+ relationSide, Collections.emptyList(), PermissionEnum.WRITE, null).isSuccess();
+
+ menuItem.setEnabled(permiss.isWritePermission() && hasPermission);
} else if (obj instanceof Artifact) {
Artifact artifact = (Artifact) obj;
MenuPermissions permiss = new MenuPermissions(artifact);
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/internal/ServiceUtil.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/internal/ServiceUtil.java
index b54ea2898c..3614236549 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/internal/ServiceUtil.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/internal/ServiceUtil.java
@@ -13,19 +13,13 @@
package org.eclipse.osee.framework.ui.skynet.internal;
-import java.util.logging.Level;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.osee.account.rest.client.AccountClient;
import org.eclipse.osee.framework.core.OrcsTokenService;
import org.eclipse.osee.framework.core.services.IOseeCachingService;
import org.eclipse.osee.framework.core.util.OsgiUtil;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.ui.skynet.cm.IOseeCmService;
import org.eclipse.osee.orcs.rest.client.OseeClient;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
import org.osgi.service.packageadmin.PackageAdmin;
@SuppressWarnings("deprecation")
@@ -59,18 +53,6 @@ public final class ServiceUtil {
return getService(PackageAdmin.class);
}
- public static AccessPolicy getAccessPolicy() {
- try {
- Bundle bundle = Platform.getBundle("org.eclipse.osee.framework.access");
- if (bundle.getState() != Bundle.ACTIVE) {
- bundle.start();
- }
- } catch (BundleException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- return getService(AccessPolicy.class);
- }
-
public static IOseeCmService getOseeCmService() {
return getService(IOseeCmService.class);
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/ConfigurationDetails.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/ConfigurationDetails.java
index a0ba09c53b..952777caee 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/ConfigurationDetails.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/ConfigurationDetails.java
@@ -131,7 +131,7 @@ public class ConfigurationDetails extends PreferencePage implements IWorkbenchPr
String bundleVerStr = OseeCodeVersion.getBundleVersion();
String display = verStr;
if (!verStr.equals(bundleVerStr)) {
- display = String.format("%s / %s/", verStr, bundleVerStr);
+ display = String.format("%s / %s", verStr, bundleVerStr);
}
builder.append("<tr><td><b>OSEE Client Version</b></td><td colspan=2>" + display + "</td></tr>");
} catch (NullPointerException ex) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/EditorsPreferencePage.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/EditorsPreferencePage.java
index 4eaa95b9a7..df6bdc3e6d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/EditorsPreferencePage.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/preferences/EditorsPreferencePage.java
@@ -246,9 +246,9 @@ public class EditorsPreferencePage extends PreferencePage implements IWorkbenchP
boolean editOnOpen = editButton.getSelection();
UserManager.setSetting(UserManager.DOUBLE_CLICK_SETTING_KEY_EDIT, String.valueOf(editOnOpen));
if (editOnOpen) {
- UserGroupService.get(CoreUserGroups.DefaultArtifactEditor).removeMember(UserManager.getUser());
+ UserGroupService.get(CoreUserGroups.DefaultArtifactEditor).removeMember(UserManager.getUser(), true);
} else {
- UserGroupService.get(CoreUserGroups.DefaultArtifactEditor).addMember(UserManager.getUser());
+ UserGroupService.get(CoreUserGroups.DefaultArtifactEditor).addMember(UserManager.getUser(), true);
}
RendererManager.clearCaches();
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/example/XResultDataDialogExample.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/example/XResultDataDialogExample.java
index 0b562cca84..4937d304e3 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/example/XResultDataDialogExample.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/example/XResultDataDialogExample.java
@@ -37,9 +37,8 @@ public final class XResultDataDialogExample extends XNavigateItemAction {
rd.log("This is a log message");
rd.error("This is a error message");
rd.warning("This is a warn message");
- XResultDataDialog diag = new XResultDataDialog(getName(),
- "This is the message.\n\nTo XResultData contents, select the hyperlink below.", rd);
- diag.open();
+ XResultDataDialog.open(rd, getName(),
+ "This is the message.\n\nTo XResultData contents, select the hyperlink below.");
}
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/ArtifactSearchPage.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/ArtifactSearchPage.java
index bb087b6921..bd7f881f7d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/ArtifactSearchPage.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/ArtifactSearchPage.java
@@ -30,24 +30,24 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.osee.framework.core.OrcsTokenService;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
import org.eclipse.osee.framework.core.data.AttributeTypeToken;
-import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.RelationTypeToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.RelationSide;
import org.eclipse.osee.framework.help.ui.OseeHelpContext;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.attribute.AttributeTypeManager;
-import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.ArrayTreeContentProvider;
import org.eclipse.osee.framework.ui.plugin.util.HelpUtil;
import org.eclipse.osee.framework.ui.plugin.util.StringLabelProvider;
import org.eclipse.osee.framework.ui.skynet.ToStringViewerSorter;
-import org.eclipse.osee.framework.ui.skynet.access.AccessControlService;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.change.ChangeUiUtil;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.internal.ServiceUtil;
@@ -60,6 +60,7 @@ import org.eclipse.osee.framework.ui.skynet.util.NamedLabelProvider;
import org.eclipse.osee.framework.ui.skynet.widgets.XBranchSelectWidget;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.FilteredCheckboxTree;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.FilteredTree;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.osee.framework.ui.swt.HyperLinkLabel;
import org.eclipse.osee.framework.ui.swt.ToStringContainsPatternFilter;
@@ -161,9 +162,10 @@ public class ArtifactSearchPage extends DialogPage implements ISearchPage, IRepl
@Override
public void handleEvent(Event event) {
- BranchId branch = branchSelect.getSelection();
- if (!isBranchReadable(branch)) {
- AWorkbench.popup(String.format("Read Access Denied for branch [%s]", branch));
+ BranchToken branch = branchSelect.getSelection();
+ XResultData rd = isBranchReadable(branch);
+ if (rd.isErrors()) {
+ XResultDataDialog.open(rd, "Branch Access", "Read Access Denied for branch %s", branch.toStringWithId());
}
}
}
@@ -557,20 +559,20 @@ public class ArtifactSearchPage extends DialogPage implements ISearchPage, IRepl
}
public void updateOKStatus() {
- if (isBranchReadable(
- getSelectedBranch()) && filterviewer == null || filterviewer.getFilterList().getFilters().isEmpty()) {
+ XResultData rd = isBranchReadable(getSelectedBranch());
+ if (rd.isSuccess() && filterviewer == null || filterviewer.getFilterList().getFilters().isEmpty()) {
getContainer().setPerformActionEnabled(false);
} else {
getContainer().setPerformActionEnabled(true);
}
}
- private static boolean isBranchReadable(BranchId branch) {
- boolean read = false;
+ private static XResultData isBranchReadable(BranchToken branch) {
if (branch != null) {
- read = AccessControlService.getAccessService().hasPermission(branch, PermissionEnum.READ);
+ return OseeApiService.get().getAccessControlService().hasBranchPermission(branch, PermissionEnum.READ,
+ AccessControlArtifactUtil.getXResultAccessHeader("Branch Selection", branch));
}
- return read;
+ return null;
}
private String asString(FilterModel model) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/QuickSearchView.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/QuickSearchView.java
index 847e6772ae..3223134127 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/QuickSearchView.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/QuickSearchView.java
@@ -23,7 +23,6 @@ import java.util.List;
import java.util.logging.Level;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ApplicabilityToken;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
@@ -32,20 +31,23 @@ import org.eclipse.osee.framework.core.enums.DeletionFlag;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.util.ArtifactSearchOptions;
import org.eclipse.osee.framework.help.ui.OseeHelpContext;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.jdk.core.util.GUID;
import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.skynet.OseeStatusContributionItemFactory;
-import org.eclipse.osee.framework.ui.skynet.access.AccessControlService;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.panels.SearchComposite;
import org.eclipse.osee.framework.ui.skynet.util.DbConnectionExceptionComposite;
import org.eclipse.osee.framework.ui.skynet.widgets.GenericViewPart;
import org.eclipse.osee.framework.ui.skynet.widgets.XBranchSelectWidget;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.osee.framework.ui.swt.ALayout;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.osee.framework.ui.swt.ImageManager;
@@ -246,7 +248,7 @@ public class QuickSearchView extends GenericViewPart {
panel.setLayout(gL);
panel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
idSearchComposite = new SearchComposite(panel, SWT.NONE, "Search", "Search by ID:", this, false);
idSearchComposite.addListener(idSearchListener);
}
@@ -274,7 +276,7 @@ public class QuickSearchView extends GenericViewPart {
applicability = new QuickSearchApplicabilityToken(appSearchGroup, this);
applicability.create();
- if (!AccessControlManager.isOseeAdmin()) {
+ if (!OseeApiService.get().getAccessControlService().isOseeAdmin()) {
idSearchComposite = new SearchComposite(panel, SWT.NONE, "Search", "Search by ID:", this, false);
idSearchComposite.addListener(idSearchListener);
}
@@ -345,11 +347,15 @@ public class QuickSearchView extends GenericViewPart {
public void handleEvent(Event event) {
if (Widgets.isAccessible(branchLabel) && branchSelect != null) {
branchLabel.setText("");
- final BranchId branch = branchSelect.getData();
+ final BranchToken branch = branchSelect.getData();
if (branch == null) {
branchLabel.setText("Error: Must Select a Branch");
- } else if (!AccessControlService.getAccessService().hasPermission(branch, PermissionEnum.READ)) {
- AWorkbench.popup(String.format("Access Denied for branch [%s]", branch));
+ }
+
+ XResultData rd = OseeApiService.get().getAccessControlService().hasBranchPermission(branch,
+ PermissionEnum.READ, AccessControlArtifactUtil.getXResultAccessHeader("Select Branch", branch));
+ if (rd.isErrors()) {
+ XResultDataDialog.open(rd, "Branch Select Failed", "Access Denied for branch [%s]", branch);
} else if (Widgets.isAccessible(attrSearchComposite) && attrSearchComposite.isExecuteSearchEvent(
event) && Widgets.isAccessible(optionsComposite)) {
@@ -393,11 +399,12 @@ public class QuickSearchView extends GenericViewPart {
public void handleEvent(Event event) {
if (Widgets.isAccessible(branchLabel) && branchSelect != null) {
branchLabel.setText("");
- final BranchId branch = branchSelect.getData();
+ final BranchToken branch = branchSelect.getData();
if (branch == null) {
branchLabel.setText("Error: Must Select a Branch");
- } else if (!AccessControlService.getAccessService().hasPermission(branch, PermissionEnum.READ)) {
- // since AttributeSearchListener is called when Select Branch is actioned, only display if this is the guid search button
+ } else if (!OseeApiService.get().getAccessControlService().hasBranchPermission(branch, PermissionEnum.READ,
+ null).isSuccess()) {
+ // since AttributeSearchListener is called when Select Branch is selected, only display if this is the guid search button
if (event.widget instanceof Button && ((Button) event.widget).getText().equals("Search")) {
AWorkbench.popup(String.format("Access Denied for branch [%s]", branch));
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/update/InterArtifactExplorerDropHandlerOperation.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/update/InterArtifactExplorerDropHandlerOperation.java
index 5d19111a20..8461a1793f 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/update/InterArtifactExplorerDropHandlerOperation.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/update/InterArtifactExplorerDropHandlerOperation.java
@@ -20,22 +20,25 @@ import java.util.List;
import java.util.logging.Level;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.DeletionFlag;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.operation.AbstractOperation;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.artifact.IntroduceArtifactOperation;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.skynet.core.transaction.TransactionManager;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.CheckBoxDialog;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.osee.framework.ui.swt.Displays;
/**
@@ -66,7 +69,7 @@ public class InterArtifactExplorerDropHandlerOperation extends AbstractOperation
if (destinationParentArtifact == null || sourceArtifacts == null || sourceArtifacts.isEmpty()) {
throw new OseeArgumentException("Invalid arguments");
}
- BranchId sourceBranch = sourceArtifacts.iterator().next().getBranchToken();
+ BranchToken sourceBranch = sourceArtifacts.iterator().next().getBranchToken();
final BranchToken destinationBranch = destinationParentArtifact.getBranchToken();
if (isUpdateFromParent(sourceBranch, destinationBranch)) {
@@ -76,7 +79,9 @@ public class InterArtifactExplorerDropHandlerOperation extends AbstractOperation
MessageDialog.openError(Displays.getActiveShell(), ACCESS_ERROR_MSG_TITLE, UPDATE_FROM_PARENT_ERROR_MSG);
}
});
- } else if (isAccessAllowed(sourceBranch, destinationBranch)) {
+ }
+ XResultData rd = isAccessAllowed(sourceBranch, destinationBranch);
+ if (rd.isSuccess()) {
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
@@ -108,16 +113,22 @@ public class InterArtifactExplorerDropHandlerOperation extends AbstractOperation
Displays.ensureInDisplayThread(new Runnable() {
@Override
public void run() {
- MessageDialog.openError(Displays.getActiveShell(), ACCESS_ERROR_MSG_TITLE, ACCESS_ERROR_MSG);
+ XResultDataDialog.open(rd, ACCESS_ERROR_MSG_TITLE, ACCESS_ERROR_MSG);
}
});
}
monitor.done();
}
- private boolean isAccessAllowed(BranchId sourceBranch, BranchId destinationBranch) {
- return AccessControlManager.hasPermission(destinationBranch,
- PermissionEnum.WRITE) && AccessControlManager.hasPermission(sourceBranch, PermissionEnum.READ);
+ private XResultData isAccessAllowed(BranchToken sourceBranch, BranchToken destinationBranch) {
+ XResultData rd = OseeApiService.get().getAccessControlService().hasBranchPermission(destinationBranch,
+ PermissionEnum.WRITE, AccessControlArtifactUtil.getXResultAccessHeader("Drag/Drop Artifact", sourceBranch));
+ if (rd.isErrors()) {
+ return rd;
+ }
+ rd = OseeApiService.get().getAccessControlService().hasBranchPermission(sourceBranch, PermissionEnum.READ,
+ AccessControlArtifactUtil.getXResultAccessHeader("Drag/Drop Artifact", sourceBranch));
+ return rd;
}
private boolean isUpdateFromParent(BranchId sourceBranch, BranchId destinationBranch) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/user/UserNavigateViewItems.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/user/UserNavigateViewItems.java
index 1abd9316a2..55cfc4382d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/user/UserNavigateViewItems.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/user/UserNavigateViewItems.java
@@ -17,7 +17,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.Active;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -28,6 +27,7 @@ import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateViewItems;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.blam.operation.CreateNewUser;
import org.eclipse.osee.framework.ui.skynet.blam.operation.PopulateUserGroupBlam;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
@@ -77,7 +77,7 @@ public class UserNavigateViewItems implements XNavigateViewItems, IXNavigateComm
items.add(new XNavigateItemAction(parentItem, new OpenUsersInMassEditor("Open All Users", Active.Both),
FrameworkImage.USER));
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
items.add(new XNavigateItemBlam(parentItem, new CreateNewUser(), FrameworkImage.ADD_GREEN));
items.add(new XNavigateItemBlam(parentItem, new PopulateUserGroupBlam(), FrameworkImage.GROUP));
}
@@ -98,7 +98,7 @@ public class UserNavigateViewItems implements XNavigateViewItems, IXNavigateComm
@Override
public void createCommonSection(List<XNavigateItem> items, List<String> excludeSectionIds) {
try {
- boolean admin = AccessControlManager.isOseeAdmin();
+ boolean admin = OseeApiService.get().getAccessControlService().isOseeAdmin();
if (admin) {
XNavigateItem reviewItem = new XNavigateItem(null, "User Management", FrameworkImage.USER);
addOseeUserSectionChildren(reviewItem);
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ArtifactClipboard.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ArtifactClipboard.java
index bc9657cbe3..316f58d9e3 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ArtifactClipboard.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ArtifactClipboard.java
@@ -18,14 +18,13 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import java.util.logging.Level;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.jdk.core.util.Collections;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
import org.eclipse.osee.framework.ui.skynet.HTMLTransferFormatter;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.swt.Displays;
import org.eclipse.swt.dnd.Clipboard;
@@ -46,15 +45,14 @@ public class ArtifactClipboard {
this.viewId = viewId;
}
- private List<Artifact> getArtifactsWithPermission(AccessPolicy accessService, PermissionEnum permission, List<Artifact> artifacts) {
+ private List<Artifact> getArtifactsWithPermission(PermissionEnum permission, List<Artifact> artifacts) {
ArrayList<Artifact> toReturn = new ArrayList<>(artifacts);
Iterator<Artifact> artIterator = toReturn.iterator();
// Remove Artifact that do not have write permission.
while (artIterator.hasNext()) {
- Artifact cur = artIterator.next();
- if (!accessService.hasArtifactPermission(java.util.Collections.singleton(cur), permission,
- Level.WARNING).matched()) {
+ Artifact art = artIterator.next();
+ if (!OseeApiService.get().getAccessControlService().hasArtifactPermission(art, permission, null).isSuccess()) {
artIterator.remove();
}
}
@@ -67,7 +65,7 @@ public class ArtifactClipboard {
}
}
- public void setArtifactsToClipboard(AccessPolicy policyHandlerService, List<Artifact> artifactTransferData) {
+ public void setArtifactsToClipboard(List<Artifact> artifactTransferData) {
if (artifactTransferData == null) {
throw new IllegalArgumentException("Artifacts can not be null for artifact copy.");
}
@@ -79,8 +77,7 @@ public class ArtifactClipboard {
}
List<Artifact> authFailedList = new ArrayList<>(artifactTransferData);
- List<Artifact> authorizedArtifacts =
- getArtifactsWithPermission(policyHandlerService, PermissionEnum.READ, artifactTransferData);
+ List<Artifact> authorizedArtifacts = getArtifactsWithPermission(PermissionEnum.READ, artifactTransferData);
authFailedList.removeAll(authorizedArtifacts);
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/MergeInProgressHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/MergeInProgressHandler.java
index 925eb2054e..870b9c2483 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/MergeInProgressHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/MergeInProgressHandler.java
@@ -22,7 +22,6 @@ import java.util.List;
import java.util.logging.Level;
import org.apache.commons.lang.mutable.MutableBoolean;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.TransactionResult;
import org.eclipse.osee.framework.jdk.core.type.MutableInteger;
@@ -30,6 +29,7 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.skynet.core.conflict.ConflictManagerExternal;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.widgets.xmerge.MergeView;
import org.eclipse.osee.framework.ui.swt.Displays;
@@ -173,7 +173,7 @@ public class MergeInProgressHandler {
String[] choices;
boolean isAdmin = false;
try {
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
isAdmin = true;
}
} catch (OseeCoreException ex) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/email/EmailUserGroups.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/email/EmailUserGroups.java
index bfa87c363e..ffa562558c 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/email/EmailUserGroups.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/email/EmailUserGroups.java
@@ -17,7 +17,6 @@ import static org.eclipse.osee.framework.core.enums.CoreBranches.COMMON;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Level;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
import org.eclipse.osee.framework.core.enums.DeletionFlag;
@@ -35,6 +34,7 @@ import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLo
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.results.ResultsEditor;
import org.eclipse.osee.framework.ui.skynet.widgets.dialog.FilteredCheckboxTreeArtifactDialog;
@@ -57,7 +57,8 @@ public class EmailUserGroups extends XNavigateItemAction {
for (Artifact art : ArtifactQuery.getArtifactListFromTypeWithInheritence(CoreArtifactTypes.UserGroup, COMMON,
DeletionFlag.EXCLUDE_DELETED)) {
// Only add group if have read permissions
- if (!art.getName().equals("Root Artifact") && AccessControlManager.hasPermission(art, PermissionEnum.READ)) {
+ if (!art.getName().equals("Root Artifact") && OseeApiService.get().getAccessControlService().hasArtifactPermission(art,
+ PermissionEnum.READ, null).isSuccess()) {
artifacts.add(art);
}
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XTextDam.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XTextDam.java
index 01df07e256..6465ca29bf 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XTextDam.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XTextDam.java
@@ -31,7 +31,7 @@ import org.eclipse.osee.framework.ui.skynet.internal.Activator;
*/
public class XTextDam extends XText implements AttributeWidget {
- public static final String WIDGET_ID = XStackedDam.class.getSimpleName();
+ public static final String WIDGET_ID = XTextDam.class.getSimpleName();
private Artifact artifactStrongRef;
private AttributeTypeToken attributeType;
private final boolean isWeakReference;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidgetAccessDecorationProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidgetAccessDecorationProvider.java
index 6a592ca2fa..3c78ddaea5 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidgetAccessDecorationProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidgetAccessDecorationProvider.java
@@ -15,18 +15,23 @@ package org.eclipse.osee.framework.ui.skynet.widgets;
import java.util.Collections;
import java.util.logging.Level;
-import org.eclipse.osee.framework.core.access.PermissionStatus;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
+import org.eclipse.osee.framework.core.data.AttributeTypeToken;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
+import org.eclipse.osee.framework.jdk.core.result.XResultData;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.AccessPolicy;
+import org.eclipse.osee.framework.skynet.core.access.AccessControlArtifactUtil;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
+import org.eclipse.osee.framework.ui.skynet.results.XResultDataUI;
import org.eclipse.osee.framework.ui.skynet.widgets.XWidgetDecorator.Decorator;
import org.eclipse.osee.framework.ui.swt.ImageManager;
import org.eclipse.osee.framework.ui.swt.Widgets;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
@@ -37,12 +42,7 @@ import org.eclipse.swt.widgets.Label;
public class XWidgetAccessDecorationProvider implements XWidgetDecorator.DecorationProvider {
private static final Image LOCK_IMAGE = ImageManager.getImage(FrameworkImage.LOCK_OVERLAY);
-
- private final AccessPolicy policyHandlerService;
-
- public XWidgetAccessDecorationProvider(AccessPolicy policyHandlerService) {
- this.policyHandlerService = policyHandlerService;
- }
+ private static final Image UNLOCK_IMAGE = ImageManager.getImage(FrameworkImage.LOCK_UNLOCKED);
@Override
public int getPriority() {
@@ -53,34 +53,45 @@ public class XWidgetAccessDecorationProvider implements XWidgetDecorator.Decorat
public void onUpdate(XWidget xWidget, Decorator decorator) {
if (xWidget instanceof AttributeWidget) {
AttributeWidget attributeWidget = (AttributeWidget) xWidget;
- AttributeTypeId attributeType = attributeWidget.getAttributeType();
+ AttributeTypeToken attributeType = attributeWidget.getAttributeType();
- PermissionStatus permissionStatus = new PermissionStatus();
Artifact artifact = attributeWidget.getArtifact();
+ final XResultData rd = AccessControlArtifactUtil.getXResultAccessHeader("Change Attribute",
+ Collections.singleton(artifact), attributeType);
try {
- permissionStatus = policyHandlerService.hasAttributeTypePermission(Collections.singletonList(artifact),
- attributeType, PermissionEnum.WRITE, Level.FINE);
+ OseeApiService.get().getAccessControlService().hasAttributeTypePermission(Collections.singleton(artifact),
+ attributeType, PermissionEnum.WRITE, rd);
} catch (OseeCoreException ex) {
+ rd.errorf("Error computing access permissions %s", Lib.exceptionToString(ex));
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
// Get Info from AccessControlServiceImpl and take in to account if widget was editable before;
- boolean isWriteable = permissionStatus.matched();
- boolean isLocked = !isWriteable || artifact.isReadOnly();
- String reason = permissionStatus.getReason();
+ boolean isWriteable = rd.isSuccess();
+ String reason = rd.toString();
Control control = xWidget.getControl();
if (Widgets.isAccessible(control)) {
- xWidget.setEditable(!isLocked);
+ xWidget.setEditable(isWriteable);
}
Label label = xWidget.getLabelWidget();
if (Widgets.isAccessible(label)) {
- label.setEnabled(!isLocked);
+ label.setEnabled(isWriteable);
+ label.addMouseListener(new MouseAdapter() {
+
+ @Override
+ public void mouseUp(MouseEvent e) {
+ if (e.button == 3) {
+ XResultDataUI.report(rd, "Access Control Details");
+ }
+ }
+
+ });
}
- decorator.setImage(isLocked ? LOCK_IMAGE : null);
- decorator.setDescription(isLocked ? reason : null);
- decorator.setVisible(isLocked);
+ decorator.setImage(isWriteable ? UNLOCK_IMAGE : LOCK_IMAGE);
+ decorator.setDescription(reason);
+ decorator.setVisible(!isWriteable);
}
}
};
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/XResultDataDialog.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/XResultDataDialog.java
index 6bad95a079..6d152fe3d0 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/XResultDataDialog.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/XResultDataDialog.java
@@ -45,12 +45,15 @@ public class XResultDataDialog extends MessageDialog {
private final List<IShellCloseEvent> closeEventListeners = new ArrayList<>();
private final String dialogTitle;
- private XResultData rd;
+ private XResultData detailsResultsData;
- public XResultDataDialog(String dialogTitle, String dialogMessage, XResultData rd) {
+ /**
+ * @param detailsResultsData - Will open if Show Details is selected
+ */
+ public XResultDataDialog(String dialogTitle, String dialogMessage, XResultData detailsResultsData) {
this(Displays.getActiveShell(), dialogTitle, null, dialogMessage, MessageDialog.QUESTION,
new String[] {"OK", "Cancel"}, 0);
- this.rd = rd;
+ this.detailsResultsData = detailsResultsData;
}
public XResultDataDialog(Shell parentShell, String dialogTitle, Image dialogTitleImage, String dialogMessage, int dialogImageType, String[] dialogButtonLabels, int defaultIndex) {
@@ -84,7 +87,7 @@ public class XResultDataDialog extends MessageDialog {
@Override
public void handleEvent(Event event) {
- XResultDataUI.report(rd, dialogTitle);
+ XResultDataUI.report(detailsResultsData, dialogTitle);
close();
}
});
@@ -113,4 +116,9 @@ public class XResultDataDialog extends MessageDialog {
closeEventListeners.add(event);
}
+ public static void open(XResultData rd, String title, String format, Object... data) {
+ XResultDataDialog diag = new XResultDataDialog(title, String.format(format, data), rd);
+ diag.open();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/DefaultAttributeXWidgetProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/DefaultAttributeXWidgetProvider.java
index 906cae4cf7..60f8bd67f9 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/DefaultAttributeXWidgetProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/DefaultAttributeXWidgetProvider.java
@@ -26,7 +26,6 @@ import org.eclipse.osee.framework.skynet.core.utility.AttributeTypeToXWidgetName
import org.eclipse.osee.framework.ui.skynet.widgets.XBranchSelectWidget;
import org.eclipse.osee.framework.ui.skynet.widgets.XIntegerDam;
import org.eclipse.osee.framework.ui.skynet.widgets.XOption;
-import org.eclipse.osee.framework.ui.skynet.widgets.XStackedDam;
import org.eclipse.osee.framework.ui.skynet.widgets.XTextDam;
import org.eclipse.osee.framework.ui.skynet.widgets.XTextFlatDam;
@@ -72,8 +71,9 @@ public class DefaultAttributeXWidgetProvider implements IAttributeXWidgetProvide
defaultData.getXOptionHandler().add(XOption.FILL_VERTICALLY);
xWidgetName = XTextDam.WIDGET_ID;
} else if (useMultiLineWidget(attributeType)) {
- xWidgetName = XStackedDam.WIDGET_ID;
+ xWidgetName = XTextDam.WIDGET_ID;
defaultData.getXOptionHandler().add(XOption.NOT_EDITABLE);
+ defaultData.getXOptionHandler().add(XOption.FILL_VERTICALLY);
} else if (attributeType.isBranchId()) {
xWidgetName = XBranchSelectWidget.WIDGET_ID;
} else if (attributeType.isArtifactId()) {
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/BranchXViewer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/BranchXViewer.java
index 332ed8c224..ab0065a61f 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/BranchXViewer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/BranchXViewer.java
@@ -18,7 +18,6 @@ import java.util.Collection;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.nebula.widgets.xviewer.XViewer;
import org.eclipse.nebula.widgets.xviewer.XViewerTextFilter;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.CoreBranches;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
@@ -30,10 +29,11 @@ import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.util.HelpUtil;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.explorer.ArtifactExplorer;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
-import org.eclipse.osee.framework.ui.skynet.results.XResultDataUI;
import org.eclipse.osee.framework.ui.skynet.util.PromptChangeUtil;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.XResultDataDialog;
import org.eclipse.osee.framework.ui.skynet.widgets.xBranch.XBranchWidget.IBranchWidgetMenuListener;
import org.eclipse.osee.framework.ui.skynet.widgets.xmerge.MergeView;
import org.eclipse.swt.widgets.Composite;
@@ -58,8 +58,8 @@ public class BranchXViewer extends XViewer {
ArrayList<BranchToken> branches = xBranchViewer.getSelectedBranches();
if (branches != null && !branches.isEmpty()) {
for (BranchToken branch : branches) {
- boolean hasPermission = AccessControlManager.hasPermission(branch, PermissionEnum.READ);
- if (hasPermission) {
+ OseeApiService.get().getAccessControlService().hasBranchPermission(branch, PermissionEnum.READ, rd);
+ if (rd.isSuccess()) {
if (branch.notEqual(CoreBranches.SYSTEM_ROOT)) {
if (!BranchManager.getType(branch).isMergeBranch()) {
ArtifactExplorer.exploreBranch(branch);
@@ -79,7 +79,7 @@ public class BranchXViewer extends XViewer {
}
}
if (rd.isErrors()) {
- XResultDataUI.report(rd, "Branch Access Denied");
+ XResultDataDialog.open(rd, "Branch Access Denied", "Branch Access Denied");
}
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchContentProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchContentProvider.java
index 7176e28d89..64f0f7d91b 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchContentProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchContentProvider.java
@@ -23,7 +23,6 @@ import java.util.Set;
import java.util.logging.Level;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.enums.BranchArchivedState;
@@ -32,6 +31,7 @@ import org.eclipse.osee.framework.core.model.cache.BranchFilter;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.change.ChangeUiUtil;
/**
@@ -99,7 +99,7 @@ public class XBranchContentProvider implements ITreeContentProvider {
List<BranchType> branchTypes = new ArrayList<>(4);
try {
- boolean isAdmin = AccessControlManager.isOseeAdmin();
+ boolean isAdmin = OseeApiService.get().getAccessControlService().isOseeAdmin();
if (isAdmin) {
branchTypes.add(BranchType.SYSTEM_ROOT);
}
@@ -119,7 +119,7 @@ public class XBranchContentProvider implements ITreeContentProvider {
branchesToReturn.addAll(BranchManager.getBranches(BranchArchivedState.UNARCHIVED, BranchType.WORKING));
}
if (!showChildBranchesAtMainLevel) {
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
branchesToReturn.add(SYSTEM_ROOT);
}
branchTypes.add(BranchType.BASELINE);
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchLabelProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchLabelProvider.java
index 6cb6f0deb9..f9340eb3be 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchLabelProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchLabelProvider.java
@@ -23,14 +23,11 @@ import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.nebula.widgets.xviewer.XViewerCells;
import org.eclipse.nebula.widgets.xviewer.XViewerLabelProvider;
import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn;
-import org.eclipse.osee.framework.core.data.AccessContextToken;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.enums.CoreBranches;
import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.core.model.TransactionRecord;
-import org.eclipse.osee.framework.core.services.CmAccessControl;
-import org.eclipse.osee.framework.core.util.OsgiUtil;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.UserManager;
@@ -162,24 +159,10 @@ public class XBranchLabelProvider extends XViewerLabelProvider {
}
} else if (cCol.equals(BranchXViewerFactory.inheritAccessControl)) {
return String.valueOf(branch.isInheritAccessControl());
- } else if (cCol.equals(BranchXViewerFactory.branchAccessContextId)) {
- return getBranchAccessContextId(branch);
}
return "";
}
- private String getBranchAccessContextId(Branch branch) {
- String accessContextId = "";
- try {
- CmAccessControl cmAccessControl = OsgiUtil.getService(getClass(), CmAccessControl.class);
- Collection<? extends AccessContextToken> ids = cmAccessControl.getContextId(UserManager.getUser(), branch);
- accessContextId = ids.toString();
- } catch (Exception ex) {
- return String.format("Exception %s", ex.getLocalizedMessage());
- }
- return accessContextId;
- }
-
protected String getTransactionText(TransactionRecord transaction, XViewerColumn cCol, int columnIndex) {
String columnText = "";
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchWidget.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchWidget.java
index e7012bf6cc..11eb302fa3 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchWidget.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchWidget.java
@@ -25,7 +25,6 @@ import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.TransactionId;
@@ -38,6 +37,7 @@ import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.PluginUiImage;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.change.BranchTransactionUiData;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
import org.eclipse.osee.framework.ui.skynet.widgets.GenericXWidget;
@@ -262,7 +262,7 @@ public class XBranchWidget extends GenericXWidget implements IOseeTreeReportProv
}
});
- if (AccessControlManager.isOseeAdmin()) {
+ if (OseeApiService.get().getAccessControlService().isOseeAdmin()) {
allButton = new ToolItem(toolBar, SWT.CHECK);
allButton.setImage(ImageManager.getImage(FrameworkImage.ADD_GREEN));
allButton.setToolTipText("Show All Branches (Admin)");
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/HistoryView.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/HistoryView.java
index a42aee09b2..a7abb3c6d4 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/HistoryView.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/HistoryView.java
@@ -33,7 +33,6 @@ import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.nebula.widgets.xviewer.customize.XViewerCustomMenu;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.TransactionId;
@@ -65,6 +64,7 @@ import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.skynet.OpenContributionItem;
import org.eclipse.osee.framework.ui.skynet.OseeStatusContributionItemFactory;
import org.eclipse.osee.framework.ui.skynet.action.CompareArtifactAction;
+import org.eclipse.osee.framework.ui.skynet.access.internal.OseeApiService;
import org.eclipse.osee.framework.ui.skynet.action.EditTransactionComment;
import org.eclipse.osee.framework.ui.skynet.action.ITransactionRecordSelectionProvider;
import org.eclipse.osee.framework.ui.skynet.action.WasIsCompareEditorAction;
@@ -243,7 +243,7 @@ public class HistoryView extends GenericViewPart implements IBranchEventListener
final MenuItem replaceWithMenu = new MenuItem(popupMenu, SWT.CASCADE);
replaceWithMenu.setText("&Replace Attribute with Version");
try {
- replaceWithMenu.setEnabled(AccessControlManager.isOseeAdmin());
+ replaceWithMenu.setEnabled(OseeApiService.get().getAccessControlService().isOseeAdmin());
} catch (Exception ex) {
replaceWithMenu.setEnabled(false);
}
diff --git a/plugins/org.eclipse.osee.framework.ui.swt/src/org/eclipse/osee/framework/ui/swt/FontManager.java b/plugins/org.eclipse.osee.framework.ui.swt/src/org/eclipse/osee/framework/ui/swt/FontManager.java
index 49e3282b9f..537f648fc4 100644
--- a/plugins/org.eclipse.osee.framework.ui.swt/src/org/eclipse/osee/framework/ui/swt/FontManager.java
+++ b/plugins/org.eclipse.osee.framework.ui.swt/src/org/eclipse/osee/framework/ui/swt/FontManager.java
@@ -22,7 +22,7 @@ import org.eclipse.swt.graphics.FontData;
/**
* Share font resources among OSEE applications
- *
+ *
* @author Donald G. Dunne
*/
public final class FontManager {
diff --git a/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/orcs.account.ds.xml b/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/orcs.account.ds.xml
deleted file mode 100644
index 0549830ef3..0000000000
--- a/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/orcs.account.ds.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.orcs.account.admin.internal.OrcsAccountStorage"/>
- <service>
- <provide interface="org.eclipse.osee.account.admin.ds.AccountStorage"/>
- </service>
- <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/>
- <reference bind="setOrcsApi" cardinality="1..1" interface="org.eclipse.osee.orcs.OrcsApi" name="OrcsApi" policy="static"/>
- <reference bind="setAccountFactory" cardinality="1..1" interface="org.eclipse.osee.orcs.account.admin.internal.AccountFactory" name="AccountFactory" policy="static"/>
- <reference bind="setJdbcService" cardinality="1..1" interface="org.eclipse.osee.jdbc.JdbcService" name="JdbcService" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/orcs.subscription.ds.xml b/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/orcs.subscription.ds.xml
deleted file mode 100644
index 2ccb565de5..0000000000
--- a/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/orcs.subscription.ds.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="start" deactivate="stop">
- <implementation class="org.eclipse.osee.orcs.account.admin.internal.OrcsSubscriptionStorage"/>
- <service>
- <provide interface="org.eclipse.osee.account.admin.ds.SubscriptionStorage"/>
- </service>
- <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/>
- <reference bind="setOrcsApi" cardinality="1..1" interface="org.eclipse.osee.orcs.OrcsApi" name="OrcsApi" policy="static"/>
- <reference bind="setAccountFactory" cardinality="1..1" interface="org.eclipse.osee.orcs.account.admin.internal.AccountFactory" name="AccountFactory" policy="static"/>
-</scr:component>
diff --git a/plugins/org.eclipse.osee.orcs.core.test/src/org/eclipse/osee/orcs/core/internal/transaction/TxDataManagerTest.java b/plugins/org.eclipse.osee.orcs.core.test/src/org/eclipse/osee/orcs/core/internal/transaction/TxDataManagerTest.java
index 3c4b8c06ec..5332f8b7d5 100644
--- a/plugins/org.eclipse.osee.orcs.core.test/src/org/eclipse/osee/orcs/core/internal/transaction/TxDataManagerTest.java
+++ b/plugins/org.eclipse.osee.orcs.core.test/src/org/eclipse/osee/orcs/core/internal/transaction/TxDataManagerTest.java
@@ -133,9 +133,9 @@ public class TxDataManagerTest {
r2Guid = GUID.create();
r3Guid = GUID.create();
- Long id1 = Lib.generateUuid();
- Long id2 = Lib.generateUuid();
- Long id3 = Lib.generateUuid();
+ Long id1 = Lib.generateArtifactIdAsInt();
+ Long id2 = Lib.generateArtifactIdAsInt();
+ Long id3 = Lib.generateArtifactIdAsInt();
artifactId1 = ArtifactToken.valueOf(id1, r1Guid, "", COMMON, null);
artifactId2 = ArtifactToken.valueOf(id2, r2Guid, "", COMMON, null);
diff --git a/plugins/org.eclipse.osee.orcs.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.orcs.core/META-INF/MANIFEST.MF
index d1f3517cac..dc309f9325 100644
--- a/plugins/org.eclipse.osee.orcs.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.orcs.core/META-INF/MANIFEST.MF
@@ -27,11 +27,11 @@ Import-Package: com.fasterxml.jackson.annotation,
org.eclipse.osee.console.admin,
org.eclipse.osee.framework.core,
org.eclipse.osee.framework.core.access,
+ org.eclipse.osee.framework.core.access.event,
+ org.eclipse.osee.framework.core.access.object,
+ org.eclipse.osee.framework.core.access.operation,
org.eclipse.osee.framework.core.applicability,
org.eclipse.osee.framework.core.data,
- org.eclipse.osee.framework.core.dsl,
- org.eclipse.osee.framework.core.dsl.oseeDsl,
- org.eclipse.osee.framework.core.dsl.oseeDsl.util,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.enums.token,
org.eclipse.osee.framework.core.exception,
diff --git a/plugins/org.eclipse.osee.orcs.core/OSGI-INF/access.control.service.xml b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/access.control.service.xml
index c161084841..242ca2ff31 100644
--- a/plugins/org.eclipse.osee.orcs.core/OSGI-INF/access.control.service.xml
+++ b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/access.control.service.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
<implementation class="org.eclipse.osee.orcs.core.internal.access.AccessControlServiceImpl"/>
- <reference bind="addArtifactCheck" cardinality="0..n" interface="org.eclipse.osee.framework.core.access.ArtifactCheck" name="IArtifactCheck" policy="dynamic"/>
+ <reference bind="addArtifactCheck" cardinality="0..n" interface="org.eclipse.osee.framework.core.access.ArtifactCheck" name="ArtifactCheck" policy="dynamic"/>
+ <reference bind="addOseeAccessProvider" cardinality="1..1" interface="org.eclipse.osee.framework.core.access.IOseeAccessProvider" name="IOseeAccessProvider" policy="static"/>
</scr:component>
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/CreateDemoBranches.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/CreateDemoBranches.java
index f02856dd6a..3ad5f423f5 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/CreateDemoBranches.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/CreateDemoBranches.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
import org.eclipse.osee.framework.core.applicability.FeatureDefinition;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
+import org.eclipse.osee.framework.core.data.Branch;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.BranchToken;
import org.eclipse.osee.framework.core.data.ConfigurationGroupDefinition;
@@ -72,8 +73,10 @@ public class CreateDemoBranches {
createDemoProgramBranch(CIS_Bld_1, account);
branchOps.createBaselineBranch(DemoBranches.SAW_PL, DemoUsers.Joe_Smith, SAW_Bld_1, ArtifactId.SENTINEL);
- branchOps.createBaselineBranch(DemoBranches.SAW_PL_Hardening_Branch, DemoUsers.Joe_Smith, SAW_PL,
- ArtifactId.SENTINEL);
+
+ Branch hardeningBranch = branchOps.createBaselineBranch(DemoBranches.SAW_PL_Hardening_Branch, DemoUsers.Joe_Smith,
+ SAW_PL, ArtifactId.SENTINEL);
+ orcsApi.getAccessControlService().removePermissions(hardeningBranch);
createProductLineConfig(DemoBranches.SAW_PL, account);
branchOps.createWorkingBranch(DemoBranches.SAW_PL_Working_Branch, DemoUsers.Joe_Smith, SAW_PL,
@@ -88,7 +91,7 @@ public class CreateDemoBranches {
CoreArtifactTokens.DefaultHierarchyRoot, tx, orcsApi);
Artifacts.getOrCreate(CoreArtifactTokens.ProductsFolder, plFolder, tx, orcsApi);
ArtifactToken featuresFolder = Artifacts.getOrCreate(CoreArtifactTokens.FeaturesFolder, plFolder, tx, orcsApi);
- ArtifactToken cfgFolder = Artifacts.getOrCreate(CoreArtifactTokens.PlCfgGroupsFolder, plFolder, tx, orcsApi);
+ Artifacts.getOrCreate(CoreArtifactTokens.PlCfgGroupsFolder, plFolder, tx, orcsApi);
ArtifactToken productA = tx.createView(branch, "Product A");
ArtifactToken productB = tx.createView(branch, "Product B");
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/OrcsApiImpl.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/OrcsApiImpl.java
index f1c3bae265..0e03b574f8 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/OrcsApiImpl.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/OrcsApiImpl.java
@@ -84,9 +84,9 @@ public class OrcsApiImpl extends OseeApiBase implements OrcsApi {
private TxCallableFactory txCallableFactory;
private OrcsApplicabilityOps applicability;
private UserGroupService userGroupService;
- private IAccessControlService accessControlService;
private ActivityLog activityLog;
private OrcsTypes orcsTypes;
+ IAccessControlService accessControlService;
ExternalArtifactManager proxyManager;
@@ -173,7 +173,6 @@ public class OrcsApiImpl extends OseeApiBase implements OrcsApi {
indexerModule.start(getSystemSession(), tokenService());
applicability = new OrcsApplicabilityOps(this, logger);
- accessControlService = new AccessControlServiceImpl();
}
public void stop() {
@@ -269,11 +268,6 @@ public class OrcsApiImpl extends OseeApiBase implements OrcsApi {
return userGroupService;
}
- @Override
- public IAccessControlService getAccessControlService() {
- return accessControlService;
- }
-
@Override
public JdbcService getJdbcService() {
return dataStore.getJdbcService();
@@ -283,4 +277,14 @@ public class OrcsApiImpl extends OseeApiBase implements OrcsApi {
public ActivityLog getActivityLog() {
return activityLog;
}
+
+ @Override
+ public IAccessControlService getAccessControlService() {
+ if (accessControlService == null) {
+ accessControlService =
+ new AccessControlServiceImpl(this, dataStore.getJdbcService().getClient(), tokenService());
+ }
+ return accessControlService;
+ }
+
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/AccessControlServiceImpl.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/AccessControlServiceImpl.java
index d5c8d6e29f..5b06b1cc38 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/AccessControlServiceImpl.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/AccessControlServiceImpl.java
@@ -10,87 +10,180 @@
* Contributors:
* Boeing - initial API and implementation
**********************************************************************/
-
package org.eclipse.osee.orcs.core.internal.access;
import java.util.Collection;
-import java.util.LinkedList;
-import org.eclipse.osee.framework.core.access.AccessDataQuery;
-import org.eclipse.osee.framework.core.access.ArtifactCheck;
-import org.eclipse.osee.framework.core.access.IAccessControlService;
+import java.util.function.Consumer;
+import org.eclipse.osee.framework.core.OrcsTokenService;
+import org.eclipse.osee.framework.core.access.AbstractAccessControlService;
+import org.eclipse.osee.framework.core.access.AccessQueries;
+import org.eclipse.osee.framework.core.access.event.AccessTopicEventPayload;
+import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
+import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
+import org.eclipse.osee.framework.core.data.Branch;
import org.eclipse.osee.framework.core.data.BranchId;
-import org.eclipse.osee.framework.core.data.RelationTypeToken;
+import org.eclipse.osee.framework.core.data.BranchToken;
+import org.eclipse.osee.framework.core.data.IUserGroupService;
+import org.eclipse.osee.framework.core.data.TransactionId;
+import org.eclipse.osee.framework.core.data.UserId;
+import org.eclipse.osee.framework.core.enums.CoreBranches;
+import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
+import org.eclipse.osee.framework.core.enums.CoreUserGroups;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
-import org.eclipse.osee.framework.jdk.core.result.XResultData;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.type.ResultSet;
+import org.eclipse.osee.framework.jdk.core.util.OseeProperties;
+import org.eclipse.osee.jdbc.JdbcClient;
+import org.eclipse.osee.jdbc.JdbcStatement;
+import org.eclipse.osee.orcs.OrcsApi;
+import org.eclipse.osee.orcs.data.ArtifactReadable;
/**
* @author Donald G. Dunne
*/
-public class AccessControlServiceImpl implements IAccessControlService {
+public class AccessControlServiceImpl extends AbstractAccessControlService {
- private final static Collection<ArtifactCheck> artifactChecks = new LinkedList<ArtifactCheck>();
+ // for ReviewOsgiXml public void addOseeAccessProvider(IOseeAccessProvider provider)
+ // for ReviewOsgiXml public void addArtifactCheck(ArtifactCheck artifactCheck)
- public void addArtifactCheck(ArtifactCheck artifactCheck) {
- artifactChecks.add(artifactCheck);
- }
+ protected JdbcClient jdbcClient;
+ private OrcsApi orcsApi;
public AccessControlServiceImpl() {
- // for osgi instantiation
+ super(null, null);
+ // for jax-rs
}
+ public AccessControlServiceImpl(OrcsApi orcsApi, JdbcClient jdbcClient, OrcsTokenService tokenService) {
+ super(tokenService, new AccessStoreOperations(orcsApi, jdbcClient));
+ this.orcsApi = orcsApi;
+ this.jdbcClient = jdbcClient;
+ }
+
+ // Caches not needed on server, load as needed
@Override
- public boolean hasPermission(Object object, PermissionEnum permission) {
- throw new UnsupportedOperationException("Not available on server yet");
+ public synchronized void ensurePopulated() {
+ cache.initializeCaches();
+ populateArtifactAccessControlList();
+ populateBranchAccessControlList();
}
@Override
public void removePermissions(BranchId branch) {
- throw new UnsupportedOperationException("Not available on server yet");
+ jdbcClient.runPreparedUpdate(AccessQueries.DELETE_ARTIFACT_ACL_FROM_BRANCH, branch);
+ jdbcClient.runPreparedUpdate(AccessQueries.DELETE_BRANCH_ACL_FROM_BRANCH, branch);
+ // NOTE: No events are produced, so the IDE clients will not be notified. Fix this when servers talk to clients.
}
@Override
- public AccessDataQuery getAccessData(ArtifactToken userArtifact, Collection<?> itemsToCheck) {
- throw new UnsupportedOperationException("Not available on server yet");
+ public boolean isReadOnly(ArtifactToken artifact) {
+ try {
+ if (artifact instanceof ArtifactReadable) {
+ boolean deleted = ((ArtifactReadable) artifact).isDeleted();
+ boolean historical = ((ArtifactReadable) artifact).isHistorical();
+ boolean hasPermission = hasArtifactPermission(artifact, PermissionEnum.WRITE, null).isSuccess();
+ return deleted || historical || !hasPermission;
+ }
+ return true;
+ } catch (OseeCoreException ex) {
+ return true;
+ }
}
@Override
- public XResultData isDeleteable(Collection<? extends ArtifactToken> artifacts, XResultData results) {
- for (ArtifactCheck check : artifactChecks) {
- check.isDeleteable(artifacts, results);
- }
- return results;
+ public boolean isOseeAdmin() {
+ return orcsApi.getUserGroupService().getUserGroup(CoreUserGroups.OseeAdmin).isCurrentUserMember();
}
@Override
- public XResultData isRenamable(Collection<? extends ArtifactToken> artifacts, XResultData results) {
- for (ArtifactCheck check : artifactChecks) {
- check.isRenamable(artifacts, results);
- }
- return results;
+ public ArtifactToken getUserByArtId(ArtifactId subjectArtId) {
+ return orcsApi.getQueryFactory().fromBranch(CoreBranches.COMMON).andId(subjectArtId).getArtifactOrNull();
}
@Override
- public XResultData isDeleteableRelation(ArtifactToken artifact, RelationTypeToken relationType, XResultData results) {
- for (ArtifactCheck check : artifactChecks) {
- check.isDeleteableRelation(artifact, relationType, results);
- }
- return results;
+ public void kickAccessTopicEvent(AccessTopicEventPayload event) {
+ // do nothing
}
@Override
- public void ensurePopulated() {
- throw new UnsupportedOperationException("Not available on server yet");
+ public IUserGroupService getUserGroupService() {
+ return orcsApi.getUserGroupService();
}
@Override
- public void clearCache() {
- // No server caches to clear
+ public Collection<ArtifactToken> getArtifactListFromType(ArtifactTypeToken artType, BranchToken branch) {
+ return orcsApi.getQueryFactory().fromBranch(branch).andIsOfType(artType).asArtifactTokens();
}
@Override
- public boolean isOseeAdmin() {
+ public boolean isBaselineBranch(BranchToken branch) {
+ ResultSet<Branch> branches = orcsApi.getQueryFactory().branchQuery().andId(branch).getResults();
+ if (branches.size() == 1) {
+ return branches.iterator().next().getBranchType().isBaselineBranch();
+ }
return false;
}
+ @Override
+ protected boolean isInDbInit() {
+ return OseeProperties.isInDbInit();
+ }
+
+ @Override
+ public boolean isInDb(ArtifactToken artifact) {
+ return ((ArtifactReadable) artifact).getTransaction().equals(TransactionId.SENTINEL);
+ }
+
+ @Override
+ public ArtifactToken getUser() {
+ return null;
+ }
+
+ @Override
+ public ArtifactToken getArtifactFromId(ArtifactId subjectId, BranchToken branch) {
+ return orcsApi.getQueryFactory().fromBranch(branch).andId(subjectId).asArtifactTokenOrSentinel();
+ }
+
+ @Override
+ public void populateBranchAccessControlList() {
+ Consumer<JdbcStatement> consumer = stmt -> {
+ ArtifactId subjectId = ArtifactId.valueOf(stmt.getLong("privilege_entity_id"));
+ BranchId branchId = BranchId.valueOf(stmt.getLong("branch_id"));
+ BranchToken branch = orcsApi.getQueryFactory().branchQuery().andId(branchId).getOneOrSentinel();
+ if (branch.isValid()) {
+ PermissionEnum permission = PermissionEnum.getPermission(stmt.getInt("permission_id"));
+ ArtifactTypeToken subjectArtifactType = tokenService.getArtifactType(stmt.getLong("art_type_id"));
+ brchAclOps.populateBranchAccessControlListEntry(subjectId, subjectArtifactType, branch, permission);
+ }
+ };
+ jdbcClient.runQuery(consumer, AccessQueries.GET_ALL_BRANCH_ACCESS_CONTROL_LIST);
+ }
+
+ @Override
+ public void populateArtifactAccessControlList() {
+ Consumer<JdbcStatement> consumer = stmt -> {
+ ArtifactId subjectId = UserId.valueOf(stmt.getLong("privilege_entity_id"));
+ ArtifactId artifactId = ArtifactId.valueOf(stmt.getLong("art_id"));
+ BranchId branchId = BranchId.valueOf(stmt.getLong("branch_id"));
+ PermissionEnum permission = PermissionEnum.getPermission(stmt.getInt("permission_id"));
+ ArtifactTypeToken subjectArtifactType = tokenService.getArtifactType(stmt.getLong("art_type_id"));
+
+ artAclOps.populateArtifactAccessControlListEntry(subjectId, artifactId, branchId, permission,
+ subjectArtifactType);
+ };
+
+ jdbcClient.runQuery(consumer, AccessQueries.GET_ALL_ARTIFACT_ACCESS_CONTROL_LIST);
+ }
+
+ @Override
+ public void populateGroupMembers(ArtifactId groupId) {
+ if (!cache.groupToSubjectsCache.containsKey(groupId.getId())) {
+ jdbcClient.runQuery(stmt -> {
+ ArtifactId groupMember = ArtifactId.valueOf(stmt.getLong("b_art_id"));
+ userGrpOps.populateGroupMembersEntry(groupId, groupMember);
+ }, AccessQueries.USER_GROUP_MEMBERS, groupId, CoreRelationTypes.Users_User);
+ }
+ }
+
}
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserGroupImpl.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserGroupImpl.java
index c4403901eb..6c0c63874c 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserGroupImpl.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserGroupImpl.java
@@ -55,7 +55,7 @@ public class UserGroupImpl extends AbstractUserGroupImpl {
}
@Override
- public boolean addMember(UserId user) {
+ public boolean addMember(UserId user, boolean persist) {
throw new UnsupportedOperationException();
}
@@ -88,7 +88,7 @@ public class UserGroupImpl extends AbstractUserGroupImpl {
}
@Override
- public boolean removeMember(UserId user) {
+ public boolean removeMember(UserId user, boolean persist) {
throw new UnsupportedOperationException();
}
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserGroupService.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserGroupService.java
index 48af029d5f..00003b70d5 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserGroupService.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserGroupService.java
@@ -81,6 +81,11 @@ public class UserGroupService implements IUserGroupService {
}
}
+ @Override
+ public IUserGroup getUserGroup(ArtifactToken userGroupArt) {
+ return new UserGroupImpl(userGroupArt);
+ }
+
@Override
public Collection<IUserGroupArtifactToken> getMyUserGroups() {
return UserGroupService.getUserGroupService().getMyUserGroups();
@@ -112,4 +117,9 @@ public class UserGroupService implements IUserGroupService {
throw new UnsupportedOperationException();
}
+ @Override
+ public boolean isUserMember(IUserGroupArtifactToken userGroup, ArtifactId user) {
+ return isUserMember(userGroup, user.getId());
+ }
+
}
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/BranchQueryImpl.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/BranchQueryImpl.java
index 0dd9c217ad..b057a02555 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/BranchQueryImpl.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/BranchQueryImpl.java
@@ -71,4 +71,13 @@ public class BranchQueryImpl extends BranchQueryBuilderImpl<BranchQuery> impleme
public boolean isArchived(BranchId branchId) {
return queryEngine.isArchived(branchId);
}
+
+ @Override
+ public BranchToken getOneOrSentinel() {
+ ResultSet<Branch> branches = getResults();
+ if (branches.size() == 1) {
+ return branches.iterator().next();
+ }
+ return BranchToken.SENTINEL;
+ }
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.orcs.parent/pom.xml b/plugins/org.eclipse.osee.orcs.parent/pom.xml
index 18d3b21418..151525a388 100644
--- a/plugins/org.eclipse.osee.orcs.parent/pom.xml
+++ b/plugins/org.eclipse.osee.orcs.parent/pom.xml
@@ -28,9 +28,6 @@
<modules>
<module>../../plugins/org.eclipse.osee.framework.core</module>
<module>../../plugins/org.eclipse.osee.framework.core.test</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.integration</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.integration.test</module>
<module>../../plugins/org.eclipse.osee.framework.core.model</module>
<module>../../plugins/org.eclipse.osee.framework.core.model.test</module>
<module>../../plugins/org.eclipse.osee.framework.resource.management</module>
@@ -68,9 +65,6 @@
<modules>
<module>../../plugins/org.eclipse.osee.framework.core</module>
<module>../../plugins/org.eclipse.osee.framework.core.test</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.integration</module>
- <module>../../plugins/org.eclipse.osee.framework.core.dsl.integration.test</module>
<module>../../plugins/org.eclipse.osee.framework.core.model</module>
<module>../../plugins/org.eclipse.osee.framework.core.model.test</module>
<module>../../plugins/org.eclipse.osee.framework.resource.management</module>
diff --git a/plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/OseeClientImpl.java b/plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/OseeClientImpl.java
index 2d1700dfa5..74080ed848 100644
--- a/plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/OseeClientImpl.java
+++ b/plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/OseeClientImpl.java
@@ -25,6 +25,7 @@ import org.eclipse.osee.define.api.DefineBranchEndpointApi;
import org.eclipse.osee.define.api.ImportEndpoint;
import org.eclipse.osee.define.api.RenderEndpoint;
import org.eclipse.osee.framework.core.OseeApiBase;
+import org.eclipse.osee.framework.core.access.IAccessControlService;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.framework.core.data.TransactionId;
@@ -61,6 +62,9 @@ import org.eclipse.osee.orcs.rest.model.search.artifact.SearchResult;
*/
public class OseeClientImpl extends OseeApiBase implements OseeClient, QueryExecutor {
+ // for ReviewOsgiXml public void setJaxRsApi(JaxRsApi jaxRsApi)
+ // for ReviewOsgiXml public void setOrcsTokenService(OrcsTokenService tokenService)
+
private PredicateFactory predicateFactory;
public void start(Map<String, Object> properties) {
@@ -218,4 +222,8 @@ public class OseeClientImpl extends OseeApiBase implements OseeClient, QueryExec
return target.request(MediaType.TEXT_PLAIN).get(String.class);
}
-}
\ No newline at end of file
+ @Override
+ public IAccessControlService getAccessControlService() {
+ throw new UnsupportedOperationException("Not supported yet");
+ }
+}
diff --git a/plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF
index 98a58e93b3..2c0fae7899 100644
--- a/plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF
@@ -23,6 +23,7 @@ Import-Package: com.fasterxml.jackson.core,
org.eclipse.jdt.core.dom,
org.eclipse.osee.activity.api,
org.eclipse.osee.framework.core,
+ org.eclipse.osee.framework.core.access,
org.eclipse.osee.framework.core.applicability,
org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.core.enums,
diff --git a/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/OrcsApi.java b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/OrcsApi.java
index 146a975e12..c674453850 100644
--- a/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/OrcsApi.java
+++ b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/OrcsApi.java
@@ -15,7 +15,6 @@ package org.eclipse.osee.orcs;
import org.eclipse.osee.activity.api.ActivityLog;
import org.eclipse.osee.framework.core.OseeApi;
-import org.eclipse.osee.framework.core.access.IAccessControlService;
import org.eclipse.osee.framework.core.data.IUserGroupService;
import org.eclipse.osee.jdbc.JdbcService;
import org.eclipse.osee.orcs.search.QueryFactory;
@@ -50,8 +49,6 @@ public interface OrcsApi extends OseeApi {
IUserGroupService getUserGroupService();
- IAccessControlService getAccessControlService();
-
JdbcService getJdbcService();
ActivityLog getActivityLog();
diff --git a/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/search/BranchQuery.java b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/search/BranchQuery.java
index d59247844d..4ec780aedc 100644
--- a/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/search/BranchQuery.java
+++ b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/search/BranchQuery.java
@@ -36,6 +36,8 @@ public interface BranchQuery extends BranchQueryBuilder<BranchQuery>, Query {
boolean isArchived(BranchId branchId);
+ BranchToken getOneOrSentinel();
+
public static BranchQuery createSentinel() {
final class BranchQuerySentinel extends NamedIdBase implements BranchQuery {
@@ -158,7 +160,13 @@ public interface BranchQuery extends BranchQueryBuilder<BranchQuery>, Query {
public boolean isArchived(BranchId branchId) {
return false;
}
+
+ @Override
+ public BranchToken getOneOrSentinel() {
+ return null;
+ }
}
return new BranchQuerySentinel();
}
+
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.ote.ui.define/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ote.ui.define/META-INF/MANIFEST.MF
index 355b0c591c..6b30ebfc8c 100644
--- a/plugins/org.eclipse.osee.ote.ui.define/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.ote.ui.define/META-INF/MANIFEST.MF
@@ -36,8 +36,8 @@ Import-Package: com.lowagie.text,
org.apache.commons.lang,
org.eclipse.nebula.widgets.xviewer.core.model,
org.eclipse.osee.ats.api.data,
- org.eclipse.osee.framework.access,
org.eclipse.osee.framework.core,
+ org.eclipse.osee.framework.core.access,
org.eclipse.osee.framework.core.client,
org.eclipse.osee.framework.core.client.server,
org.eclipse.osee.framework.core.data,
@@ -48,9 +48,11 @@ Import-Package: com.lowagie.text,
org.eclipse.osee.framework.core.model.type,
org.eclipse.osee.framework.core.util,
org.eclipse.osee.framework.help.ui,
+ org.eclipse.osee.framework.jdk.core.result,
org.eclipse.osee.framework.jdk.core.type,
org.eclipse.osee.framework.jdk.core.util,
org.eclipse.osee.framework.jdk.core.util.io.xml,
org.eclipse.osee.framework.logging,
org.eclipse.ui.forms.widgets,
org.osgi.service.event
+Service-Component: OSGI-INF/*.xml
diff --git a/plugins/org.eclipse.osee.ote.ui.define/OSGI/access.user.authenticated.topic.handler.xml b/plugins/org.eclipse.osee.ote.ui.define/OSGI/access.user.authenticated.topic.handler.xml
deleted file mode 100644
index 3ae3bd05a7..0000000000
--- a/plugins/org.eclipse.osee.ote.ui.define/OSGI/access.user.authenticated.topic.handler.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
-<implementation class="org.eclipse.osee.ote.ui.define.panels.GrayableBranchSelectionComposite"/>
-<service>
- <provide interface="org.osgi.service.event.EventHandler"/>
-</service>
- <property name="event.topics" value="framework/access/user/authenticated" />
-</scr:component>
diff --git a/plugins/org.eclipse.osee.ote.ui.define/build.properties b/plugins/org.eclipse.osee.ote.ui.define/build.properties
index b39251a31e..ee8a84f8cc 100644
--- a/plugins/org.eclipse.osee.ote.ui.define/build.properties
+++ b/plugins/org.eclipse.osee.ote.ui.define/build.properties
@@ -4,5 +4,5 @@ bin.includes = META-INF/,\
.,\
plugin.xml,\
OSEE-INF/images/,\
- OSGI/,\
+ OSGI-INF/,\
OSEE-INF/
diff --git a/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/viewers/actions/EditDispositionAction.java b/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/viewers/actions/EditDispositionAction.java
index 8bca47f025..0bba60a2c3 100644
--- a/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/viewers/actions/EditDispositionAction.java
+++ b/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/viewers/actions/EditDispositionAction.java
@@ -16,7 +16,6 @@ package org.eclipse.osee.ote.ui.define.viewers.actions;
import java.util.logging.Level;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
@@ -26,6 +25,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.ote.define.artifacts.ArtifactTestRunOperator;
import org.eclipse.osee.ote.ui.define.internal.Activator;
+import org.eclipse.osee.ote.ui.define.internal.OseeApiService;
import org.eclipse.osee.ote.ui.define.utilities.SelectionHelper;
/**
@@ -66,7 +66,8 @@ public class EditDispositionAction extends AbstractActionHandler {
}
private void checkPermissions(Artifact artifact) {
- if (true != AccessControlManager.hasPermission(artifact, PermissionEnum.READ)) {
+ if (OseeApiService.get().getAccessControlService().hasArtifactPermission(artifact, PermissionEnum.READ,
+ null).isErrors()) {
throw new OseeArgumentException("The user %s does not have read access to %s", UserManager.getUser(),
artifact);
}
diff --git a/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/viewers/actions/OpenInArtifactEditor.java b/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/viewers/actions/OpenInArtifactEditor.java
index d920401746..8a6417f67e 100644
--- a/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/viewers/actions/OpenInArtifactEditor.java
+++ b/plugins/org.eclipse.osee.ote.ui.define/src/org/eclipse/osee/ote/ui/define/viewers/actions/OpenInArtifactEditor.java
@@ -16,7 +16,6 @@ package org.eclipse.osee.ote.ui.define.viewers.actions;
import java.util.logging.Level;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.enums.PresentationType;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
@@ -26,6 +25,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.ote.define.artifacts.ArtifactTestRunOperator;
import org.eclipse.osee.ote.ui.define.internal.Activator;
+import org.eclipse.osee.ote.ui.define.internal.OseeApiService;
import org.eclipse.osee.ote.ui.define.utilities.SelectionHelper;
/**
@@ -66,7 +66,8 @@ public class OpenInArtifactEditor extends AbstractActionHandler {
}
private void checkPermissions(Artifact artifact) {
- if (true != AccessControlManager.hasPermission(artifact, PermissionEnum.READ)) {
+ if (true != OseeApiService.get().getAccessControlService().hasArtifactPermission(artifact, PermissionEnum.READ,
+ null).isSuccess()) {
throw new OseeArgumentException("The user %s does not have read access to %s", UserManager.getUser(),
artifact);
}
diff --git a/plugins/org.eclipse.osee.support.config/launchConfig/OSEE_IDE_[localhost].launch b/plugins/org.eclipse.osee.support.config/launchConfig/OSEE_IDE_[localhost].launch
index 26392035f2..abb13b17e4 100644
--- a/plugins/org.eclipse.osee.support.config/launchConfig/OSEE_IDE_[localhost].launch
+++ b/plugins/org.eclipse.osee.support.config/launchConfig/OSEE_IDE_[localhost].launch
@@ -29,7 +29,7 @@
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -debug -perspective org.eclipse.osee.OseePerspective -console"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M&#13;&#10;-Dosee.log.default=INFO&#13;&#10;-Dosee.application.server=http://localhost:8089&#13;&#10;-Dlogback.configurationFile=${project_loc:org.eclipse.osee.server.p2}\logback-dev.xml&#13;&#10;-Duser.name=3333"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M&#13;&#10;-Dosee.log.default=INFO&#13;&#10;-Dosee.application.server=http://localhost:8089&#13;&#10;-Dlogback.configurationFile=${project_loc:org.eclipse.osee.server.p2}\logback-dev.xml&#13;&#10;-Duser.name=3333&#13;&#10;-Daccess.debug=true"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${env_var:UserProfile}\Documents\"/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.osee.framework.ui.product.osee"/>