Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/BranchXViewer.java')
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/BranchXViewer.java33
1 files changed, 23 insertions, 10 deletions
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 99fe96ba8fd..675102d6a59 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
@@ -15,10 +15,13 @@ 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.BranchId;
import org.eclipse.osee.framework.core.data.IOseeBranch;
import org.eclipse.osee.framework.core.enums.CoreBranches;
+import org.eclipse.osee.framework.core.enums.PermissionEnum;
import org.eclipse.osee.framework.core.model.MergeBranch;
+import org.eclipse.osee.framework.core.util.XResultData;
import org.eclipse.osee.framework.help.ui.OseeHelpContext;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
@@ -27,6 +30,7 @@ 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.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.xBranch.XBranchWidget.IBranchWidgetMenuListener;
import org.eclipse.osee.framework.ui.skynet.widgets.xmerge.MergeView;
@@ -48,24 +52,33 @@ public class BranchXViewer extends XViewer {
@Override
public void handleDoubleClick() {
+ XResultData rd = new XResultData();
ArrayList<BranchId> branches = xBranchViewer.getSelectedBranches();
if (branches != null && !branches.isEmpty()) {
for (BranchId branch : branches) {
- if (!branch.equals(CoreBranches.SYSTEM_ROOT)) {
- if (!BranchManager.getType(branch).isMergeBranch()) {
- ArtifactExplorer.exploreBranch(branch);
- BranchManager.setLastBranch(branch);
- } else {
- if (branch instanceof MergeBranch) {
- MergeBranch mergeBranch = (MergeBranch) branch;
- IOseeBranch source = mergeBranch.getSourceBranch();
- IOseeBranch destination = mergeBranch.getDestinationBranch();
- MergeView.openView(source, destination, BranchManager.getBaseTransaction(source));
+ boolean hasPermission = AccessControlManager.hasPermission(branch, PermissionEnum.READ);
+ if (hasPermission) {
+ if (!branch.equals(CoreBranches.SYSTEM_ROOT)) {
+ if (!BranchManager.getType(branch).isMergeBranch()) {
+ ArtifactExplorer.exploreBranch(branch);
+ BranchManager.setLastBranch(branch);
+ } else {
+ if (branch instanceof MergeBranch) {
+ MergeBranch mergeBranch = (MergeBranch) branch;
+ IOseeBranch source = mergeBranch.getSourceBranch();
+ IOseeBranch destination = mergeBranch.getDestinationBranch();
+ MergeView.openView(source, destination, BranchManager.getBaseTransaction(source));
+ }
}
}
+ } else {
+ rd.errorf("Access Restricted on branch %s\n", BranchManager.toStringWithId(branch));
}
}
}
+ if (rd.isErrors()) {
+ XResultDataUI.report(rd, "Branch Access Denied");
+ }
}
@Override

Back to the top