SourceCode/PROMS/VEPROMS User Interface/dlgCheckedOutProcedure.cs
John d8f7b0619c Use static function to check user’s security level
Pass user security info to the panels, fix security related issues on the V button (B2015-188, B2015-193)
Added static functions to check the user’s security level
Use static function to check user’s security level in allowing applicability changes
Use static function to check user’s security level in enabling Inserting and RO and in Editing an RO
2015-12-09 21:01:13 +00:00

80 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using VEPROMS.CSLA.Library;
namespace VEPROMS
{
public partial class dlgCheckedOutProcedure : Form
{
public dlgCheckedOutProcedure(ProcedureInfo pi, SectionInfo si, UserInfo ui)
{
InitializeComponent();
_MyProcedureInfo = pi;
_MySectionInfo = si;
if (_MyProcedureInfo != null)
_MyOwnerInfo = OwnerInfo.GetByItemID(pi.ItemID, CheckOutType.Procedure);
else
_MyOwnerInfo = OwnerInfo.GetByItemID(si.MyContent.MyEntry.DocID, CheckOutType.Document);
_MySessionInfo = SessionInfo.Get(_MyOwnerInfo.SessionID);
_MyUserInfo = ui;
}
private ProcedureInfo _MyProcedureInfo;
public ProcedureInfo MyProcedureInfo
{
get { return _MyProcedureInfo; }
}
private SectionInfo _MySectionInfo;
public SectionInfo MySectionInfo
{
get { return _MySectionInfo; }
}
private OwnerInfo _MyOwnerInfo;
public OwnerInfo MyOwnerInfo
{
get { return _MyOwnerInfo; }
}
private SessionInfo _MySessionInfo;
public SessionInfo MySessionInfo
{
get { return _MySessionInfo; }
}
private UserInfo _MyUserInfo;
public UserInfo MyUserInfo
{
get { return _MyUserInfo; }
}
StringBuilder sb = new StringBuilder();
private void dlgCheckedOutProcedure_Load(object sender, EventArgs e)
{
if (MyProcedureInfo != null)
sb.AppendLine(string.Format("The procedure {0} - {1}", MyProcedureInfo.DisplayNumber, MyProcedureInfo.DisplayText));
else
sb.AppendLine(string.Format("The document {0}", MySectionInfo.DisplayText));
sb.AppendLine();
sb.AppendLine(string.Format("is currently checked out by {0} starting on {1}", MySessionInfo.UserID, MyOwnerInfo.DTSStart.ToString("MM/dd/yyyy @ HH:mm:ss")));
sb.AppendLine();
sb.AppendLine(string.Format("in a VEPROMS session on computer {0} that was started on {1}", MySessionInfo.MachineName, MySessionInfo.DTSDtart.ToString("MM/dd/yyyy @ HH:mm:ss")));
lblInfo.Text = sb.ToString();
if(MyProcedureInfo != null)
btnForce.Visible = UserInfo.CanEdit(MyUserInfo,MyProcedureInfo.MyDocVersion) && MyOwnerInfo.OwnerItemID == MyProcedureInfo.ItemID;
else
btnForce.Visible = MyUserInfo.IsAdministrator() || MyUserInfo.IsSetAdministrator(MySectionInfo.MyProcedure.MyDocVersion);
}
private void btnForce_Click(object sender, EventArgs e)
{
MySessionInfo.CheckInItem(MyOwnerInfo.OwnerID);
sb.AppendLine();
sb.AppendLine("Forced Check In has been completed");
lblInfo.Text = sb.ToString();
btnForce.Enabled = false;
}
}
}