diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index 8fcf2c69..b5a1a1d6 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -1039,6 +1039,8 @@ namespace VEPROMS ui = UserInfo.Get(u.UID); } ctrlAnnotationDetails.MyUserInfo = ui; + DisplayRO.MyUserInfo = ui; // set the user's security information in the properties RO panel + StepTabRibbon.MyUserInfo = ui; // set the user's security information in the ribbon bool isVisible = ui.IsAdministrator(); btnManageSecurity.Visible = isVisible; btnUpdateFormats.Visible = isVisible; diff --git a/PROMS/Volian.Controls.Library/DisplayRO.cs b/PROMS/Volian.Controls.Library/DisplayRO.cs index bd8121e1..c8cd8585 100644 --- a/PROMS/Volian.Controls.Library/DisplayRO.cs +++ b/PROMS/Volian.Controls.Library/DisplayRO.cs @@ -186,6 +186,14 @@ namespace Volian.Controls.Library // } //} + private static UserInfo _MyUserInfo = null; + + public static UserInfo MyUserInfo + { + get { return _MyUserInfo; } + set { _MyUserInfo = value; } + } + #endregion #region Constructors public DisplayRO() @@ -224,7 +232,7 @@ namespace Volian.Controls.Library childroid = childroid.Substring(0, 16); btnSaveRO.Enabled = ((_SavCurROLink == null) || !(childroid.Equals(SavROLink.ROID.ToLower()))); btnCancelRO.Enabled = ((_SavCurROLink != null) && childroid != SavROLink.ROID.ToLower()); - btnGoToRO.Enabled = true; + btnGoToRO.Enabled = CanEditROs(); // Writers and Reviewers cannot edit ROs (run the RO Editor) switch (chld.type) { case 1: // standard (regular) text RO type @@ -843,10 +851,18 @@ namespace Volian.Controls.Library #endregion // utils + private bool CanEditROs() + { + // Test to see if the user is allowed to run the RO Edior + // writers and reviewers are not allowed to run the RO Editor + return MyUserInfo.IsAdministrator() || MyUserInfo.IsSetAdministrator(Mydvi) || MyUserInfo.IsROEditor(Mydvi); + } + private string _SelectedRoidBeforeRoEditor = null; private void lbROId_DoubleClick(object sender, EventArgs e) { if (tvROFST.SelectedNode == null) return; + if (!CanEditROs()) return; // do not allow writers and reviews to run the RO Editor if (VlnSettings.ReleaseMode.Equals("DEMO")) { MessageBox.Show("Referenced Object Editor not available in the Demo version.", "PROMS Demo Version"); diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs index a93b4696..efa6f6ce 100644 --- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs +++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs @@ -101,6 +101,14 @@ namespace Volian.Controls.Library return null; } } + private static UserInfo _MyUserInfo = null; + + public static UserInfo MyUserInfo + { + get { return _MyUserInfo; } + set { _MyUserInfo = value; } + } + private DevComponents.DotNetBar.ButtonItem _DefaultContextMenu; public void ClearContextMenu() @@ -659,17 +667,24 @@ namespace Volian.Controls.Library btnCMEditRO.Enabled = false; } } + private bool CanEditROs() + { + // Test to see if the user is allowed to run the RO Edior + // writers and reviewers are not allowed to run the RO Editor + return MyUserInfo.IsAdministrator() || MyUserInfo.IsSetAdministrator(MyDVI) || MyUserInfo.IsROEditor(MyDVI); + } private void SetupGoToButton() { if (MyEditItem is GridItem && (MyEditItem as GridItem).MyFlexGrid.IsRoTable) - btnCMGoTo.Enabled = btnGoTo.Enabled = true; + btnCMGoTo.Enabled = btnGoTo.Enabled = CanEditROs();//Don't allow Writers and Reviews run the RO Editor else { if (_MyStepRTB == null) return; if (_MyStepRTB.IsSelectionLinked(_MyStepRTB.SelectionStart, _MyStepRTB.SelectionLength)) { // if selected text = ?, i.e. a missing/undefined destination, don't allow go to - btnCMGoTo.Enabled = btnGoTo.Enabled = !_MyStepRTB.SelectedText.StartsWith("?"); + // if the selected link is an RO then check to see if the user is allowed to run the RO Editor (writers and reviewers cannot run the RO Editor) + btnCMGoTo.Enabled = btnGoTo.Enabled = !_MyStepRTB.SelectedText.StartsWith("?") && (_MyStepRTB.SelectedText.Contains("Transition") || (_MyStepRTB.SelectedText.Contains("ReferencedObject") && CanEditROs())); } else btnCMGoTo.Enabled = btnGoTo.Enabled = false;