Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorddunne2008-01-16 16:45:49 +0000
committerddunne2008-01-16 16:45:49 +0000
commit907cab77af1dd0cd724e93cf3835553a2243e996 (patch)
treeb9324e9e1065e7ae9f6e84a11f6c623eef98a6a7
parentd659195cea92c37da0e85a7cce31f2645170e16d (diff)
downloadorg.eclipse.osee-907cab77af1dd0cd724e93cf3835553a2243e996.tar.gz
org.eclipse.osee-907cab77af1dd0cd724e93cf3835553a2243e996.tar.xz
org.eclipse.osee-907cab77af1dd0cd724e93cf3835553a2243e996.zip
"Team Workflow" - TQZ5E - "Access Control dialog allows modification even if don't have access to do so."
-rw-r--r--org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java16
-rw-r--r--org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java19
-rw-r--r--org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java9
3 files changed, 38 insertions, 6 deletions
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java
index a17d6f12f2a..52a2a8e44b7 100644
--- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java
+++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyDialog.java
@@ -38,6 +38,7 @@ import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
@@ -52,7 +53,7 @@ public class PolicyDialog extends Dialog {
private static final ArtifactPersistenceManager artifactManager = ArtifactPersistenceManager.getInstance();
private static final BranchPersistenceManager branchManager = BranchPersistenceManager.getInstance();
private static final SkynetAuthentication skynetAuthentication = SkynetAuthentication.getInstance();
- private PolicyTableViewer tableViewer;
+ private PolicyTableViewer policyTableViewer;
private Button radEnabled;
private Button radDisabled;
private Button btnAdd;
@@ -60,6 +61,7 @@ public class PolicyDialog extends Dialog {
private Combo cmbUsers;
private Combo cmbPermissionLevel;
private Object object;
+ private Label accessLabel;
public PolicyDialog(Shell parentShell, Object object) {
super(parentShell);
@@ -145,13 +147,16 @@ public class PolicyDialog extends Dialog {
PermissionEnum permission = (PermissionEnum) cmbPermissionLevel.getData(cmbPermissionLevel.getText());
if (subject != null && permission != null) {
- tableViewer.addItem(subject, object, permission);
+ policyTableViewer.addItem(subject, object, permission);
}
}
});
}
private void addDialogContols(Composite mainComposite) {
+
+ accessLabel = new Label(mainComposite, SWT.NONE);
+
radDisabled = new Button(mainComposite, SWT.RADIO);
radDisabled.setText("Disabled");
radDisabled.setEnabled(false);
@@ -164,7 +169,7 @@ public class PolicyDialog extends Dialog {
group.setLayout(new GridLayout(1, false));
Table table = new Table(group, SWT.BORDER | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION);
- tableViewer = new PolicyTableViewer(table, object);
+ policyTableViewer = new PolicyTableViewer(table, object);
GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
gridData.heightHint = 100;
gridData.widthHint = 500;
@@ -187,6 +192,7 @@ public class PolicyDialog extends Dialog {
// get information from db
boolean accessEnabled = AccessControlManager.getInstance().checkObjectPermission(object, PermissionEnum.WRITE);
+ accessLabel.setText(accessEnabled ? "" : "You do not have permissions to modify access.");
radEnabled.setSelection(true);
boolean enable = radEnabled.getSelection() && accessEnabled;
@@ -195,14 +201,14 @@ public class PolicyDialog extends Dialog {
cmbUsers.setEnabled(enable);
cmbPermissionLevel.setEnabled(enable);
btnAdd.setEnabled(enable);
- tableViewer.getTable().setEnabled(enable);
+ policyTableViewer.setEnabled(enable);
chkChildrenPermission.setEnabled(isArtifact);
}
@Override
protected void okPressed() {
- for (AccessControlData data : tableViewer.getAccessControlList().values()) {
+ for (AccessControlData data : policyTableViewer.getAccessControlList().values()) {
if (data.isDirty()) data.persist(chkChildrenPermission.getSelection());
}
super.okPressed();
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java
index ff31e8ec3e7..9502f64dc7f 100644
--- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java
+++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableCellModifier.java
@@ -22,6 +22,7 @@ import org.eclipse.swt.widgets.TableItem;
public class PolicyTableCellModifier implements ICellModifier {
private PolicyTableViewer policyTableViewer;
+ private boolean enabled = true;
public PolicyTableCellModifier(PolicyTableViewer policyTableViewer) {
super();
@@ -34,7 +35,7 @@ public class PolicyTableCellModifier implements ICellModifier {
public boolean canModify(Object element, String property) {
// Find the index of the column
int columnIndex = Columns.valueOf(property).ordinal();
- if (columnIndex == Columns.Delete.ordinal()) return true;
+ if (columnIndex == Columns.Delete.ordinal() && isEnabled()) return true;
return false;
}
@@ -71,4 +72,20 @@ public class PolicyTableCellModifier implements ICellModifier {
}
policyTableViewer.refresh();
}
+
+ /**
+ * @return the enabled
+ */
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ /**
+ * Don't disable entire viewer, just delete button
+ *
+ * @param enabled the enabled to set
+ */
+ public void setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ }
}
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java
index 5b043493358..8e7af6e7bf5 100644
--- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java
+++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/access/PolicyTableViewer.java
@@ -61,6 +61,15 @@ public class PolicyTableViewer {
tableViewer.setInput(accessControlList.values());
}
+ /**
+ * Disables the cell modifiers, not the entire table so user can still scroll
+ *
+ * @param enabled
+ */
+ public void setEnabled(boolean enabled) {
+ ((PolicyTableCellModifier) tableViewer.getCellModifier()).setEnabled(enabled);
+ }
+
public void addItem(Artifact subject, Object object, PermissionEnum permission) {
AccessObject accessObject = accessManager.getAccessObject(object);
AccessControlData data = new AccessControlData(subject, accessObject, permission, true);

Back to the top