diff options
author | ddunne | 2008-01-16 16:45:49 +0000 |
---|---|---|
committer | ddunne | 2008-01-16 16:45:49 +0000 |
commit | 907cab77af1dd0cd724e93cf3835553a2243e996 (patch) | |
tree | b9324e9e1065e7ae9f6e84a11f6c623eef98a6a7 | |
parent | d659195cea92c37da0e85a7cce31f2645170e16d (diff) | |
download | org.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."
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); |