From ff3daff15a1b1bb0ca76f8631c68a4a24d354683 Mon Sep 17 00:00:00 2001 From: mschill Date: Mon, 20 Oct 2025 13:48:02 -0400 Subject: [PATCH] C2024-047 Redesign PROMS Security Dialog --- .../dlgManageSecurity.Designer.cs | 759 ++++++++------- .../dlgManageSecurity.cs | 909 +++++++++--------- .../dlgManageSecurity.resx | 22 +- .../Generated/MembershipInfo.cs | 18 + .../ToolStripMenuItemwithValue.cs | 16 + .../Volian.Controls.Library.csproj | 3 + 6 files changed, 944 insertions(+), 783 deletions(-) create mode 100644 PROMS/Volian.Controls.Library/ToolStripMenuItemwithValue.cs diff --git a/PROMS/VEPROMS User Interface/dlgManageSecurity.Designer.cs b/PROMS/VEPROMS User Interface/dlgManageSecurity.Designer.cs index 73cb37bc..3ad446f4 100644 --- a/PROMS/VEPROMS User Interface/dlgManageSecurity.Designer.cs +++ b/PROMS/VEPROMS User Interface/dlgManageSecurity.Designer.cs @@ -28,328 +28,416 @@ namespace VEPROMS /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.tcSecurity = new System.Windows.Forms.TabControl(); - this.tpGroupUsers = new System.Windows.Forms.TabPage(); - this.pnlMembers = new System.Windows.Forms.Panel(); - this.lstMembers = new System.Windows.Forms.ListBox(); - this.lblMembers = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.tvFolders = new System.Windows.Forms.TreeView(); - this.cmFolders = new System.Windows.Forms.ContextMenuStrip(this.components); - this.createSetAdministratorGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.createWriterGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.createROEToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.createReviewerGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.lstUsers = new System.Windows.Forms.ListBox(); - this.label5 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.lstGroups = new System.Windows.Forms.ListBox(); - this.tpDefault = new System.Windows.Forms.TabPage(); - this.label8 = new System.Windows.Forms.Label(); - this.pnlGroups = new System.Windows.Forms.Panel(); - this.cmMembers = new System.Windows.Forms.ContextMenuStrip(this.components); - this.removeMemberToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.cmUsers = new System.Windows.Forms.ContextMenuStrip(this.components); - this.addUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addMemberToolStripMenuItemUser = new System.Windows.Forms.ToolStripMenuItem(); - this.cmGroups = new System.Windows.Forms.ContextMenuStrip(this.components); - this.deleteGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addMemberToolStripMenuItemGroup = new System.Windows.Forms.ToolStripMenuItem(); - this.tcSecurity.SuspendLayout(); - this.tpGroupUsers.SuspendLayout(); - this.pnlMembers.SuspendLayout(); - this.cmFolders.SuspendLayout(); - this.tpDefault.SuspendLayout(); - this.cmMembers.SuspendLayout(); - this.cmUsers.SuspendLayout(); - this.cmGroups.SuspendLayout(); - this.SuspendLayout(); - // - // tcSecurity - // - this.tcSecurity.Controls.Add(this.tpGroupUsers); - this.tcSecurity.Controls.Add(this.tpDefault); - this.tcSecurity.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcSecurity.Location = new System.Drawing.Point(0, 0); - this.tcSecurity.Name = "tcSecurity"; - this.tcSecurity.SelectedIndex = 0; - this.tcSecurity.Size = new System.Drawing.Size(784, 564); - this.tcSecurity.TabIndex = 0; - // - // tpGroupUsers - // - this.tpGroupUsers.BackColor = System.Drawing.SystemColors.ButtonFace; - this.tpGroupUsers.Controls.Add(this.pnlMembers); - this.tpGroupUsers.Controls.Add(this.label6); - this.tpGroupUsers.Controls.Add(this.tvFolders); - this.tpGroupUsers.Controls.Add(this.lstUsers); - this.tpGroupUsers.Controls.Add(this.label5); - this.tpGroupUsers.Controls.Add(this.label3); - this.tpGroupUsers.Controls.Add(this.lstGroups); - this.tpGroupUsers.Location = new System.Drawing.Point(4, 22); - this.tpGroupUsers.Name = "tpGroupUsers"; - this.tpGroupUsers.Padding = new System.Windows.Forms.Padding(3); - this.tpGroupUsers.Size = new System.Drawing.Size(776, 538); - this.tpGroupUsers.TabIndex = 2; - this.tpGroupUsers.Text = "Folders, Groups and Users"; - // - // pnlMembers - // - this.pnlMembers.Controls.Add(this.lstMembers); - this.pnlMembers.Controls.Add(this.lblMembers); - this.pnlMembers.Location = new System.Drawing.Point(384, 304); - this.pnlMembers.Name = "pnlMembers"; - this.pnlMembers.Size = new System.Drawing.Size(386, 232); - this.pnlMembers.TabIndex = 12; - // - // lstMembers - // - this.lstMembers.Dock = System.Windows.Forms.DockStyle.Fill; - this.lstMembers.FormattingEnabled = true; - this.lstMembers.Location = new System.Drawing.Point(0, 19); - this.lstMembers.Name = "lstMembers"; - this.lstMembers.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; - this.lstMembers.Size = new System.Drawing.Size(386, 212); - this.lstMembers.TabIndex = 10; - this.lstMembers.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstMembers_MouseUp); - // - // lblMembers - // - this.lblMembers.Dock = System.Windows.Forms.DockStyle.Top; - this.lblMembers.Location = new System.Drawing.Point(0, 0); - this.lblMembers.Name = "lblMembers"; - this.lblMembers.Size = new System.Drawing.Size(386, 19); - this.lblMembers.TabIndex = 2; - this.lblMembers.Text = "Members"; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(8, 5); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(41, 13); - this.label6.TabIndex = 7; - this.label6.Text = "Folders"; - // - // tvFolders - // - this.tvFolders.ContextMenuStrip = this.cmFolders; - this.tvFolders.HideSelection = false; - this.tvFolders.Location = new System.Drawing.Point(8, 21); - this.tvFolders.Name = "tvFolders"; - this.tvFolders.Size = new System.Drawing.Size(370, 511); - this.tvFolders.TabIndex = 6; - this.tvFolders.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvFolders_NodeMouseClick); - // - // cmFolders - // - this.cmFolders.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + this.tcSecurity = new System.Windows.Forms.TabControl(); + this.tpManageFolders = new System.Windows.Forms.TabPage(); + this.label6 = new System.Windows.Forms.Label(); + this.tvFolders = new System.Windows.Forms.TreeView(); + this.cmFolders = new System.Windows.Forms.ContextMenuStrip(this.components); + this.createSetAdministratorGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.createWriterGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.createROEToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.createReviewerGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tpManageGroups = new System.Windows.Forms.TabPage(); + this.btnAddMember = new System.Windows.Forms.Button(); + this.btnRemoveMember = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.lbNonMembers = new System.Windows.Forms.Label(); + this.btnDeleteGroup = new System.Windows.Forms.Button(); + this.cbGroupSelection = new System.Windows.Forms.ComboBox(); + this.lstNonMembers = new System.Windows.Forms.ListBox(); + this.pnlMembers = new System.Windows.Forms.Panel(); + this.lstMembers = new System.Windows.Forms.ListBox(); + this.lblMembers = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.tpManageUsers = new System.Windows.Forms.TabPage(); + this.lblUserGroups = new System.Windows.Forms.Label(); + this.lstGroups = new System.Windows.Forms.ListBox(); + this.lstUsers = new System.Windows.Forms.ListBox(); + this.lblUsers = new System.Windows.Forms.Label(); + this.tpDefault = new System.Windows.Forms.TabPage(); + this.label8 = new System.Windows.Forms.Label(); + this.pnlGroups = new System.Windows.Forms.Panel(); + this.cmMembers = new System.Windows.Forms.ContextMenuStrip(this.components); + this.removeMemberToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.cmUsers = new System.Windows.Forms.ContextMenuStrip(this.components); + this.addUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tt = new System.Windows.Forms.ToolTip(this.components); + this.tcSecurity.SuspendLayout(); + this.tpManageFolders.SuspendLayout(); + this.cmFolders.SuspendLayout(); + this.tpManageGroups.SuspendLayout(); + this.pnlMembers.SuspendLayout(); + this.tpManageUsers.SuspendLayout(); + this.tpDefault.SuspendLayout(); + this.cmUsers.SuspendLayout(); + this.SuspendLayout(); + // + // tcSecurity + // + this.tcSecurity.Controls.Add(this.tpManageFolders); + this.tcSecurity.Controls.Add(this.tpManageGroups); + this.tcSecurity.Controls.Add(this.tpManageUsers); + this.tcSecurity.Controls.Add(this.tpDefault); + this.tcSecurity.Dock = System.Windows.Forms.DockStyle.Fill; + this.tcSecurity.Location = new System.Drawing.Point(0, 0); + this.tcSecurity.Name = "tcSecurity"; + this.tcSecurity.SelectedIndex = 0; + this.tcSecurity.Size = new System.Drawing.Size(784, 564); + this.tcSecurity.TabIndex = 0; + this.tcSecurity.SelectedIndexChanged += new System.EventHandler(this.changedTab); + // + // tpManageFolders + // + this.tpManageFolders.BackColor = System.Drawing.SystemColors.ButtonFace; + this.tpManageFolders.Controls.Add(this.label6); + this.tpManageFolders.Controls.Add(this.tvFolders); + this.tpManageFolders.Location = new System.Drawing.Point(4, 22); + this.tpManageFolders.Name = "tpManageFolders"; + this.tpManageFolders.Padding = new System.Windows.Forms.Padding(3); + this.tpManageFolders.Size = new System.Drawing.Size(776, 538); + this.tpManageFolders.TabIndex = 2; + this.tpManageFolders.Text = "Manage Folders / Add Groups"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.Location = new System.Drawing.Point(8, 5); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(55, 15); + this.label6.TabIndex = 7; + this.label6.Text = "Folders"; + // + // tvFolders + // + this.tvFolders.ContextMenuStrip = this.cmFolders; + this.tvFolders.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tvFolders.HideSelection = false; + this.tvFolders.Location = new System.Drawing.Point(3, 32); + this.tvFolders.Name = "tvFolders"; + this.tvFolders.Size = new System.Drawing.Size(770, 503); + this.tvFolders.TabIndex = 6; + this.tvFolders.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tvFolders_NodeMouseClick); + // + // cmFolders + // + this.cmFolders.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.createSetAdministratorGroupToolStripMenuItem, this.createWriterGroupToolStripMenuItem, this.createROEToolStripMenuItem, this.createReviewerGroupToolStripMenuItem}); - this.cmFolders.Name = "cmFolders"; - this.cmFolders.Size = new System.Drawing.Size(249, 92); - // - // createSetAdministratorGroupToolStripMenuItem - // - this.createSetAdministratorGroupToolStripMenuItem.Name = "createSetAdministratorGroupToolStripMenuItem"; - this.createSetAdministratorGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22); - this.createSetAdministratorGroupToolStripMenuItem.Text = "Create a Set Administrator Group"; - this.createSetAdministratorGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem); - // - // createWriterGroupToolStripMenuItem - // - this.createWriterGroupToolStripMenuItem.Name = "createWriterGroupToolStripMenuItem"; - this.createWriterGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22); - this.createWriterGroupToolStripMenuItem.Text = "Create a Writer Group"; - this.createWriterGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem); - // - // createROEToolStripMenuItem - // - this.createROEToolStripMenuItem.Name = "createROEToolStripMenuItem"; - this.createROEToolStripMenuItem.Size = new System.Drawing.Size(248, 22); - this.createROEToolStripMenuItem.Text = "Create a RO Editor Group"; - this.createROEToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem); - // - // createReviewerGroupToolStripMenuItem - // - this.createReviewerGroupToolStripMenuItem.Name = "createReviewerGroupToolStripMenuItem"; - this.createReviewerGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22); - this.createReviewerGroupToolStripMenuItem.Text = "Create a Reviewer Group"; - this.createReviewerGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem); - // - // lstUsers - // - this.lstUsers.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.lstUsers.FormattingEnabled = true; - this.lstUsers.Location = new System.Drawing.Point(630, 21); - this.lstUsers.Name = "lstUsers"; - this.lstUsers.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; - this.lstUsers.Size = new System.Drawing.Size(140, 277); - this.lstUsers.TabIndex = 5; - this.lstUsers.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstUsers_MouseUp); - this.lstUsers.SelectedIndexChanged += new System.EventHandler(this.lstUsers_SelectedIndexChanged); - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(630, 6); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(34, 13); - this.label5.TabIndex = 4; - this.label5.Text = "Users"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(381, 6); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(41, 13); - this.label3.TabIndex = 1; - this.label3.Text = "Groups"; - // - // lstGroups - // - this.lstGroups.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.lstGroups.FormattingEnabled = true; - this.lstGroups.Location = new System.Drawing.Point(384, 21); - this.lstGroups.Name = "lstGroups"; - this.lstGroups.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; - this.lstGroups.Size = new System.Drawing.Size(240, 277); - this.lstGroups.TabIndex = 0; - this.lstGroups.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstGroups_MouseUp); - this.lstGroups.SelectedIndexChanged += new System.EventHandler(this.lstGroups_SelectedIndexChanged); - // - // tpDefault - // - this.tpDefault.BackColor = System.Drawing.SystemColors.ButtonFace; - this.tpDefault.Controls.Add(this.label8); - this.tpDefault.Controls.Add(this.pnlGroups); - this.tpDefault.Location = new System.Drawing.Point(4, 22); - this.tpDefault.Name = "tpDefault"; - this.tpDefault.Padding = new System.Windows.Forms.Padding(3); - this.tpDefault.Size = new System.Drawing.Size(776, 538); - this.tpDefault.TabIndex = 0; - this.tpDefault.Text = "Default Group"; - // - // label8 - // - this.label8.Location = new System.Drawing.Point(308, 6); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(460, 172); - this.label8.TabIndex = 5; - this.label8.Text = "label8"; - // - // pnlGroups - // - this.pnlGroups.AutoScroll = true; - this.pnlGroups.Location = new System.Drawing.Point(3, 6); - this.pnlGroups.Name = "pnlGroups"; - this.pnlGroups.Size = new System.Drawing.Size(299, 526); - this.pnlGroups.TabIndex = 4; - // - // cmMembers - // - this.cmMembers.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.removeMemberToolStripMenuItem}); - this.cmMembers.Name = "cmGroupMembers"; - this.cmMembers.Size = new System.Drawing.Size(166, 26); - // - // removeMemberToolStripMenuItem - // - this.removeMemberToolStripMenuItem.Name = "removeMemberToolStripMenuItem"; - this.removeMemberToolStripMenuItem.Size = new System.Drawing.Size(165, 22); - this.removeMemberToolStripMenuItem.Text = "Remove Member"; - this.removeMemberToolStripMenuItem.Click += new System.EventHandler(this.removeMemberToolStripMenuItem_Click); - // - // cmUsers - // - this.cmUsers.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.cmFolders.Name = "cmFolders"; + this.cmFolders.Size = new System.Drawing.Size(249, 92); + // + // createSetAdministratorGroupToolStripMenuItem + // + this.createSetAdministratorGroupToolStripMenuItem.Name = "createSetAdministratorGroupToolStripMenuItem"; + this.createSetAdministratorGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22); + this.createSetAdministratorGroupToolStripMenuItem.Text = "Create a Set Administrator Group"; + this.createSetAdministratorGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem); + // + // createWriterGroupToolStripMenuItem + // + this.createWriterGroupToolStripMenuItem.Name = "createWriterGroupToolStripMenuItem"; + this.createWriterGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22); + this.createWriterGroupToolStripMenuItem.Text = "Create a Writer Group"; + this.createWriterGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem); + // + // createROEToolStripMenuItem + // + this.createROEToolStripMenuItem.Name = "createROEToolStripMenuItem"; + this.createROEToolStripMenuItem.Size = new System.Drawing.Size(248, 22); + this.createROEToolStripMenuItem.Text = "Create a RO Editor Group"; + this.createROEToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem); + // + // createReviewerGroupToolStripMenuItem + // + this.createReviewerGroupToolStripMenuItem.Name = "createReviewerGroupToolStripMenuItem"; + this.createReviewerGroupToolStripMenuItem.Size = new System.Drawing.Size(248, 22); + this.createReviewerGroupToolStripMenuItem.Text = "Create a Reviewer Group"; + this.createReviewerGroupToolStripMenuItem.Click += new System.EventHandler(this.createGroupMenuItem); + // + // tpManageGroups + // + this.tpManageGroups.Controls.Add(this.btnAddMember); + this.tpManageGroups.Controls.Add(this.btnRemoveMember); + this.tpManageGroups.Controls.Add(this.label1); + this.tpManageGroups.Controls.Add(this.lbNonMembers); + this.tpManageGroups.Controls.Add(this.btnDeleteGroup); + this.tpManageGroups.Controls.Add(this.cbGroupSelection); + this.tpManageGroups.Controls.Add(this.lstNonMembers); + this.tpManageGroups.Controls.Add(this.pnlMembers); + this.tpManageGroups.Controls.Add(this.label3); + this.tpManageGroups.Location = new System.Drawing.Point(4, 22); + this.tpManageGroups.Name = "tpManageGroups"; + this.tpManageGroups.Padding = new System.Windows.Forms.Padding(3); + this.tpManageGroups.Size = new System.Drawing.Size(776, 538); + this.tpManageGroups.TabIndex = 3; + this.tpManageGroups.Text = "Manage Groups"; + this.tpManageGroups.UseVisualStyleBackColor = true; + // + // btnAddMember + // + this.btnAddMember.Location = new System.Drawing.Point(337, 190); + this.btnAddMember.Name = "btnAddMember"; + this.btnAddMember.Size = new System.Drawing.Size(36, 29); + this.btnAddMember.TabIndex = 19; + this.btnAddMember.Text = "<<"; + this.tt.SetToolTip(this.btnAddMember, "Add User as Members of Group"); + this.btnAddMember.UseVisualStyleBackColor = true; + this.btnAddMember.Click += new System.EventHandler(this.addMember_Click); + // + // btnRemoveMember + // + this.btnRemoveMember.Location = new System.Drawing.Point(337, 254); + this.btnRemoveMember.Name = "btnRemoveMember"; + this.btnRemoveMember.Size = new System.Drawing.Size(36, 29); + this.btnRemoveMember.TabIndex = 18; + this.btnRemoveMember.Text = ">>"; + this.tt.SetToolTip(this.btnRemoveMember, "Remove User From Group"); + this.btnRemoveMember.UseVisualStyleBackColor = true; + this.btnRemoveMember.Click += new System.EventHandler(this.removeMember_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(386, 42); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(97, 15); + this.label1.TabIndex = 17; + this.label1.Text = "Non Members"; + // + // lbNonMembers + // + this.lbNonMembers.AutoSize = true; + this.lbNonMembers.Location = new System.Drawing.Point(386, 42); + this.lbNonMembers.Name = "lbNonMembers"; + this.lbNonMembers.Size = new System.Drawing.Size(73, 13); + this.lbNonMembers.TabIndex = 17; + this.lbNonMembers.Text = "Non Members"; + // + // btnDeleteGroup + // + this.btnDeleteGroup.ForeColor = System.Drawing.Color.Red; + this.btnDeleteGroup.Location = new System.Drawing.Point(668, 12); + this.btnDeleteGroup.Name = "btnDeleteGroup"; + this.btnDeleteGroup.Size = new System.Drawing.Size(89, 23); + this.btnDeleteGroup.TabIndex = 16; + this.btnDeleteGroup.Text = "Delete Group"; + this.btnDeleteGroup.UseVisualStyleBackColor = true; + this.btnDeleteGroup.Click += new System.EventHandler(this.deleteGroup_Click); + // + // cbGroupSelection + // + this.cbGroupSelection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbGroupSelection.FormattingEnabled = true; + this.cbGroupSelection.Location = new System.Drawing.Point(50, 9); + this.cbGroupSelection.Name = "cbGroupSelection"; + this.cbGroupSelection.Size = new System.Drawing.Size(272, 21); + this.cbGroupSelection.TabIndex = 15; + this.cbGroupSelection.SelectedIndexChanged += new System.EventHandler(this.cbGroupSelection_SelectedIndexChanged); + // + // lstNonMembers + // + this.lstNonMembers.FormattingEnabled = true; + this.lstNonMembers.Location = new System.Drawing.Point(389, 61); + this.lstNonMembers.Name = "lstNonMembers"; + this.lstNonMembers.Size = new System.Drawing.Size(316, 472); + this.lstNonMembers.TabIndex = 14; + // + // pnlMembers + // + this.pnlMembers.Controls.Add(this.lstMembers); + this.pnlMembers.Controls.Add(this.lblMembers); + this.pnlMembers.Location = new System.Drawing.Point(6, 42); + this.pnlMembers.Name = "pnlMembers"; + this.pnlMembers.Size = new System.Drawing.Size(316, 493); + this.pnlMembers.TabIndex = 13; + // + // lstMembers + // + this.lstMembers.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstMembers.FormattingEnabled = true; + this.lstMembers.Location = new System.Drawing.Point(0, 19); + this.lstMembers.Name = "lstMembers"; + this.lstMembers.Size = new System.Drawing.Size(316, 474); + this.lstMembers.TabIndex = 10; + // + // lblMembers + // + this.lblMembers.Dock = System.Windows.Forms.DockStyle.Top; + this.lblMembers.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblMembers.Location = new System.Drawing.Point(0, 0); + this.lblMembers.Name = "lblMembers"; + this.lblMembers.Size = new System.Drawing.Size(316, 19); + this.lblMembers.TabIndex = 2; + this.lblMembers.Text = "Selected Group Users"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(3, 12); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(39, 13); + this.label3.TabIndex = 3; + this.label3.Text = "Group:"; + // + // tpManageUsers + // + this.tpManageUsers.Controls.Add(this.lblUserGroups); + this.tpManageUsers.Controls.Add(this.lstGroups); + this.tpManageUsers.Controls.Add(this.lstUsers); + this.tpManageUsers.Controls.Add(this.lblUsers); + this.tpManageUsers.Location = new System.Drawing.Point(4, 22); + this.tpManageUsers.Name = "tpManageUsers"; + this.tpManageUsers.Size = new System.Drawing.Size(776, 538); + this.tpManageUsers.TabIndex = 4; + this.tpManageUsers.Text = "Manage Users"; + this.tpManageUsers.UseVisualStyleBackColor = true; + // + // lblUserGroups + // + this.lblUserGroups.AutoSize = true; + this.lblUserGroups.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblUserGroups.Location = new System.Drawing.Point(268, 11); + this.lblUserGroups.Name = "lblUserGroups"; + this.lblUserGroups.Size = new System.Drawing.Size(225, 15); + this.lblUserGroups.TabIndex = 9; + this.lblUserGroups.Text = "Groups That User Is a Member Of:"; + // + // lstGroups + // + this.lstGroups.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.lstGroups.FormattingEnabled = true; + this.lstGroups.Location = new System.Drawing.Point(271, 36); + this.lstGroups.Name = "lstGroups"; + this.lstGroups.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; + this.lstGroups.Size = new System.Drawing.Size(502, 498); + this.lstGroups.TabIndex = 8; + this.lstGroups.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstGroups_MouseUp); + // + // lstUsers + // + this.lstUsers.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.lstUsers.FormattingEnabled = true; + this.lstUsers.Location = new System.Drawing.Point(8, 36); + this.lstUsers.Name = "lstUsers"; + this.lstUsers.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; + this.lstUsers.Size = new System.Drawing.Size(217, 498); + this.lstUsers.TabIndex = 7; + this.lstUsers.SelectedIndexChanged += new System.EventHandler(this.lstUsers_SelectedIndexChanged); + this.lstUsers.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstUsers_MouseUp); + // + // lblUsers + // + this.lblUsers.AutoSize = true; + this.lblUsers.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblUsers.Location = new System.Drawing.Point(8, 11); + this.lblUsers.Name = "lblUsers"; + this.lblUsers.Size = new System.Drawing.Size(44, 15); + this.lblUsers.TabIndex = 6; + this.lblUsers.Text = "Users"; + // + // tpDefault + // + this.tpDefault.BackColor = System.Drawing.SystemColors.ButtonFace; + this.tpDefault.Controls.Add(this.label8); + this.tpDefault.Controls.Add(this.pnlGroups); + this.tpDefault.Location = new System.Drawing.Point(4, 22); + this.tpDefault.Name = "tpDefault"; + this.tpDefault.Padding = new System.Windows.Forms.Padding(3); + this.tpDefault.Size = new System.Drawing.Size(776, 538); + this.tpDefault.TabIndex = 0; + this.tpDefault.Text = "Default Group"; + // + // label8 + // + this.label8.Location = new System.Drawing.Point(308, 6); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(460, 172); + this.label8.TabIndex = 5; + this.label8.Text = "label8"; + // + // pnlGroups + // + this.pnlGroups.AutoScroll = true; + this.pnlGroups.Location = new System.Drawing.Point(3, 6); + this.pnlGroups.Name = "pnlGroups"; + this.pnlGroups.Size = new System.Drawing.Size(299, 526); + this.pnlGroups.TabIndex = 4; + // + // cmMembers + // + this.cmMembers.Name = "cmGroupMembers"; + this.cmMembers.Size = new System.Drawing.Size(61, 4); + // + // removeMemberToolStripMenuItem + // + this.removeMemberToolStripMenuItem.Name = "removeMemberToolStripMenuItem"; + this.removeMemberToolStripMenuItem.Size = new System.Drawing.Size(165, 22); + this.removeMemberToolStripMenuItem.Text = "Remove Member"; + this.removeMemberToolStripMenuItem.Click += new System.EventHandler(this.removeMemberToolStripMenuItem_Click); + // + // cmUsers + // + this.cmUsers.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addUserToolStripMenuItem, this.editUserToolStripMenuItem, - this.deleteUserToolStripMenuItem, - this.addMemberToolStripMenuItemUser}); - this.cmUsers.Name = "cmUsers"; - this.cmUsers.Size = new System.Drawing.Size(153, 114); - // - // addUserToolStripMenuItem - // - this.addUserToolStripMenuItem.Name = "addUserToolStripMenuItem"; - this.addUserToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.addUserToolStripMenuItem.Text = "Add User"; - this.addUserToolStripMenuItem.Click += new System.EventHandler(this.addUserToolStripMenuItem_Click); - // - // editUserToolStripMenuItem - // - this.editUserToolStripMenuItem.Name = "editUserToolStripMenuItem"; - this.editUserToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.editUserToolStripMenuItem.Text = "Edit User"; - this.editUserToolStripMenuItem.Click += new System.EventHandler(this.editUserToolStripMenuItem_Click); - // - // deleteUserToolStripMenuItem - // - this.deleteUserToolStripMenuItem.Name = "deleteUserToolStripMenuItem"; - this.deleteUserToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.deleteUserToolStripMenuItem.Text = "Delete User"; - this.deleteUserToolStripMenuItem.Click += new System.EventHandler(this.deleteUserToolStripMenuItem_Click); - // - // addMemberToolStripMenuItemUser - // - this.addMemberToolStripMenuItemUser.Name = "addMemberToolStripMenuItemUser"; - this.addMemberToolStripMenuItemUser.Size = new System.Drawing.Size(152, 22); - this.addMemberToolStripMenuItemUser.Text = "Add Member"; - this.addMemberToolStripMenuItemUser.Click += new System.EventHandler(this.addMemberToolStripMenuItem_Click); - // - // cmGroups - // - this.cmGroups.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.deleteGroupToolStripMenuItem, - this.addMemberToolStripMenuItemGroup}); - this.cmGroups.Name = "cmGroups"; - this.cmGroups.Size = new System.Drawing.Size(145, 48); - // - // deleteGroupToolStripMenuItem - // - this.deleteGroupToolStripMenuItem.Name = "deleteGroupToolStripMenuItem"; - this.deleteGroupToolStripMenuItem.Size = new System.Drawing.Size(144, 22); - this.deleteGroupToolStripMenuItem.Text = "Delete Group"; - this.deleteGroupToolStripMenuItem.Click += new System.EventHandler(this.deleteGroupToolStripMenuItem_Click); - // - // addMemberToolStripMenuItemGroup - // - this.addMemberToolStripMenuItemGroup.Name = "addMemberToolStripMenuItemGroup"; - this.addMemberToolStripMenuItemGroup.Size = new System.Drawing.Size(144, 22); - this.addMemberToolStripMenuItemGroup.Text = "Add Member"; - this.addMemberToolStripMenuItemGroup.Click += new System.EventHandler(this.addMemberToolStripMenuItem_Click); - // - // dlgManageSecurity - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.ClientSize = new System.Drawing.Size(784, 564); - this.Controls.Add(this.tcSecurity); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "dlgManageSecurity"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Manage Security"; - this.Load += new System.EventHandler(this.dlgManageSecurity_Load); - this.tcSecurity.ResumeLayout(false); - this.tpGroupUsers.ResumeLayout(false); - this.tpGroupUsers.PerformLayout(); - this.pnlMembers.ResumeLayout(false); - this.cmFolders.ResumeLayout(false); - this.tpDefault.ResumeLayout(false); - this.cmMembers.ResumeLayout(false); - this.cmUsers.ResumeLayout(false); - this.cmGroups.ResumeLayout(false); - this.ResumeLayout(false); + this.deleteUserToolStripMenuItem}); + this.cmUsers.Name = "cmUsers"; + this.cmUsers.Size = new System.Drawing.Size(145, 92); + // + // addUserToolStripMenuItem + // + this.addUserToolStripMenuItem.Name = "addUserToolStripMenuItem"; + this.addUserToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.addUserToolStripMenuItem.Text = "Add User"; + this.addUserToolStripMenuItem.Click += new System.EventHandler(this.addUserToolStripMenuItem_Click); + // + // editUserToolStripMenuItem + // + this.editUserToolStripMenuItem.Name = "editUserToolStripMenuItem"; + this.editUserToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.editUserToolStripMenuItem.Text = "Edit User"; + this.editUserToolStripMenuItem.Click += new System.EventHandler(this.editUserToolStripMenuItem_Click); + // + // deleteUserToolStripMenuItem + // + this.deleteUserToolStripMenuItem.Name = "deleteUserToolStripMenuItem"; + this.deleteUserToolStripMenuItem.Size = new System.Drawing.Size(144, 22); + this.deleteUserToolStripMenuItem.Text = "Delete User"; + this.deleteUserToolStripMenuItem.Click += new System.EventHandler(this.deleteUserToolStripMenuItem_Click); + // + // dlgManageSecurity + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(784, 564); + this.Controls.Add(this.tcSecurity); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "dlgManageSecurity"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Manage Security"; + this.Load += new System.EventHandler(this.dlgManageSecurity_Load); + this.tcSecurity.ResumeLayout(false); + this.tpManageFolders.ResumeLayout(false); + this.tpManageFolders.PerformLayout(); + this.cmFolders.ResumeLayout(false); + this.tpManageGroups.ResumeLayout(false); + this.tpManageGroups.PerformLayout(); + this.pnlMembers.ResumeLayout(false); + this.tpManageUsers.ResumeLayout(false); + this.tpManageUsers.PerformLayout(); + this.tpDefault.ResumeLayout(false); + this.cmUsers.ResumeLayout(false); + this.ResumeLayout(false); } @@ -357,20 +445,14 @@ namespace VEPROMS private System.Windows.Forms.TabControl tcSecurity; private System.Windows.Forms.TabPage tpDefault; - private System.Windows.Forms.TabPage tpGroupUsers; - private System.Windows.Forms.ListBox lstGroups; - private System.Windows.Forms.Label lblMembers; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ContextMenuStrip cmGroups; - private System.Windows.Forms.ListBox lstUsers; - private System.Windows.Forms.Label label5; + private System.Windows.Forms.TabPage tpManageFolders; private System.Windows.Forms.ContextMenuStrip cmUsers; private System.Windows.Forms.ToolStripMenuItem addUserToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editUserToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem deleteUserToolStripMenuItem; - private System.Windows.Forms.ContextMenuStrip cmMembers; - private System.Windows.Forms.ToolStripMenuItem removeMemberToolStripMenuItem; - private System.Windows.Forms.Label label6; + private System.Windows.Forms.ContextMenuStrip cmMembers; + private System.Windows.Forms.ToolStripMenuItem removeMemberToolStripMenuItem; + private System.Windows.Forms.Label label6; private System.Windows.Forms.TreeView tvFolders; private System.Windows.Forms.ContextMenuStrip cmFolders; private System.Windows.Forms.ToolStripMenuItem createSetAdministratorGroupToolStripMenuItem; @@ -379,10 +461,23 @@ namespace VEPROMS private System.Windows.Forms.ToolStripMenuItem createReviewerGroupToolStripMenuItem; private System.Windows.Forms.Panel pnlGroups; private System.Windows.Forms.Label label8; - private System.Windows.Forms.ToolStripMenuItem deleteGroupToolStripMenuItem; - private System.Windows.Forms.Panel pnlMembers; - private System.Windows.Forms.ListBox lstMembers; - private System.Windows.Forms.ToolStripMenuItem addMemberToolStripMenuItemUser; - private System.Windows.Forms.ToolStripMenuItem addMemberToolStripMenuItemGroup; - } + private System.Windows.Forms.TabPage tpManageGroups; + private System.Windows.Forms.TabPage tpManageUsers; + private System.Windows.Forms.Panel pnlMembers; + private System.Windows.Forms.ListBox lstMembers; + private System.Windows.Forms.Label lblMembers; + private System.Windows.Forms.ListBox lstUsers; + private System.Windows.Forms.Label lblUsers; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox cbGroupSelection; + private System.Windows.Forms.ListBox lstNonMembers; + private System.Windows.Forms.Button btnDeleteGroup; + private System.Windows.Forms.Label lbNonMembers; + private System.Windows.Forms.ListBox lstGroups; + private System.Windows.Forms.Button btnAddMember; + private System.Windows.Forms.Button btnRemoveMember; + private System.Windows.Forms.ToolTip tt; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label lblUserGroups; + } } \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/dlgManageSecurity.cs b/PROMS/VEPROMS User Interface/dlgManageSecurity.cs index defb3a4d..e8fce203 100644 --- a/PROMS/VEPROMS User Interface/dlgManageSecurity.cs +++ b/PROMS/VEPROMS User Interface/dlgManageSecurity.cs @@ -7,30 +7,491 @@ using System.Text; using System.Windows.Forms; using VEPROMS.CSLA.Library; using Volian.Base.Library; +using Volian.Controls.Library; +using System.Linq; namespace VEPROMS { + //C2024-047 Redesign PROMS Security Dialog public partial class dlgManageSecurity : Form { #region Log4Net private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); #endregion + + #region Main Form / Shared Code private GroupInfoList myGroupInfoList; private UserInfoList myUserInfoList; private List myMembershipInfoList; private Folder myFolder; + public dlgManageSecurity() { InitializeComponent(); } private void dlgManageSecurity_Load(object sender, EventArgs e) { + //load all folders myFolder = Folder.Get(1); - SetupSecurity(); - SetupGroups(); + + //Default to Users Tab + tcSecurity.SelectedIndex = 2; } + + //This is called when the Index Changes for main tab Control + //it loads info for the current tab + private void changedTab(object sender, EventArgs e) + { + LoadRefreshGroupUsers(); + + switch (tcSecurity.SelectedIndex) + { + //Manage Folders + case 0: + SetupFolderOptions(); + break; + //Manage Groups + case 1: + SetupGroups(); + break; + //Manage Users (note that this is the default) + case 2: + SetupUserOptions(); + break; + //Default Options tab + case 3: + SetupDefaultGroupOptions(); + break; + } + } + //Loads a refreshed list of Groups and Users + private void LoadRefreshGroupUsers() + { + GroupInfoList.Reset(); + myGroupInfoList = GroupInfoList.Get(); + UserInfoList.Reset(); + myUserInfoList = UserInfoList.Get(); + } + #endregion + + #region Manage Folders + //Sets up Folders + private void SetupFolderOptions() + { + if (tvFolders.Nodes.Count == 0) + { + FolderInfo fi = FolderInfo.Get(1); + LoadChildFolders(fi, null); + } + } + //loads child folders in tree view + private void LoadChildFolders(FolderInfo fi, TreeNode tn) + { + if (tn == null) + { + tn = tvFolders.Nodes.Add(fi.Name); + tn.Tag = fi; + } + else + { + tn = tn.Nodes.Add(fi.Name); + tn.Tag = fi; + } + if (fi.ChildFolderCount > 0) + { + foreach (FolderInfo fic in fi.SortedChildFolders) + { + LoadChildFolders(fic, tn); + } + } + } + //Handles Creating a New Group + private void createGroupMenuItem(object sender, EventArgs e) + { + try + { + ToolStripDropDownItem tsddi = sender as ToolStripDropDownItem; + TreeNode tn = tvFolders.SelectedNode; + FolderInfo fi = tn.Tag as FolderInfo; + AddNewGroup(tsddi.Text, fi); + } + catch (Exception ex) + { + _MyLog.Warn("createGroupMenuItem", ex); + } + } + private void AddNewGroup(string txt, FolderInfo fi) + { + txt = txt.Replace("Create", "").Replace(" a ", "").Replace("Group", "").Trim(); + RoleInfoList ril = RoleInfoList.Get(); + // B2022-080: cannot add a new group in Proms security. if the sql database's 'Roles' table was not initialized with the default roles, such as Set Administrator, + // Writer, Reviewer, RO Editor, the Adding of new groups won't work. Databases should have this loaded by default. + // Promsfixes has queries that insert these, but only gets run if there are no assignments (see commands under --define Roles) + if (ril == null || ril.Count < 2) + { + MessageBox.Show("Roles table is missing entries.\r\nPlease contact Volian to create other groups.", "Cannot create groups", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + foreach (var ri in ril.Where(ri => ri.Name == txt)) + { + string gin = string.Format("{0}s - {1}", ri.Name, fi.Name); + if (!myGroupInfoList.Any(gi => gi.GroupName == gin)) + { + Group group = Group.MakeGroup(gin, null, null); + Assignment.MakeAssignment(group, Role.Get(ri.RID), Folder.Get(fi.FolderID), null); + } + } + + LoadRefreshGroupUsers(); + } + private void tvFolders_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) + { + tvFolders.SelectedNode = e.Node; + } + + #endregion + + #region Manage Groups + //Sets up Group Options private void SetupGroups() + { + cbGroupSelection.Items.Clear(); + foreach (GroupInfo gi in myGroupInfoList) + cbGroupSelection.Items.Add(gi.GroupName); + cbGroupSelection.SelectedIndex = 0; + } + + private void cbGroupSelection_SelectedIndexChanged(object sender, EventArgs e) => updateMembershipLists(); + + //Updates the lists of members / nonMembers + private void updateMembershipLists() + { + myMembershipInfoList = new List(); + if (cbGroupSelection.SelectedIndex > -1) + { + GroupInfo gi = myGroupInfoList[cbGroupSelection.SelectedIndex]; + gi.RefreshGroupMemberships(); + if (gi.GroupMembershipCount > 0) + myMembershipInfoList.AddRange(gi.GroupMemberships.Where(mi => mi.EndDate == null || mi.EndDate == string.Empty).OrderBy(x => x.MyUserUserID)); + } + lstMembers.DataSource = myMembershipInfoList; + lstMembers.ValueMember = "UID"; + lstMembers.DisplayMember = "MyUserUserID"; + + //set NonMembers to Users that are not in Members + lstNonMembers.DataSource = myUserInfoList.Select(x => x.UserID).Except(myMembershipInfoList.Select(x => x.MyUser.UserID)).ToList(); + } + + //Add a Member to a Group + private void addMember_Click(object sender, EventArgs e) + { + int groupIndex = cbGroupSelection.SelectedIndex; + string selectedUserID = lstNonMembers.SelectedValue.ToString(); + int selectedUID = UserInfo.GetByUserID(selectedUserID).UID; + GroupInfo gi = myGroupInfoList[groupIndex]; + User selectedUser = User.Get(selectedUID); + + Membership.MakeMembership(selectedUser, Group.Get(gi.GID), null, ""); + updateMembershipLists(); + lstNonMembers.SelectedIndex = -1; + + int index = lstMembers.FindString(selectedUserID); + lstMembers.SetSelected(index, true); + } + + //Remove a Member From a Group + private void removeMember_Click(object sender, EventArgs e) + { + if (lstMembers.SelectedIndex > -1) + { + MembershipInfo mi = (MembershipInfo)lstMembers.SelectedItem; + string selectedUserID = mi.MyUserUserID; + string msg = "Are you sure you want to remove this Group Member?"; + if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) + { + if (mi.MyGroup.GroupName == "Administrators" && mi.MyGroup.GroupMemberships.Count(mm => mm.EndDate == null || mm.EndDate == string.Empty) == 1) + { + MessageBox.Show("You must have at least 1 user assigned to the Administrators group", "One Administrator Required", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + Membership m = Membership.Get(mi.UGID); + m.EndDate = DateTime.Now.ToShortDateString(); + m.Save(); + updateMembershipLists(); + lstMembers.SelectedIndex = -1; + lstNonMembers.SelectedItem = selectedUserID; + } + } + } + + //Deletes the Currently Selected Group + private void deleteGroup_Click(object sender, EventArgs e) + { + if (cbGroupSelection.SelectedIndex < 0) + { + MessageBox.Show("You must select a group to delete", "No Group Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + GroupInfo gi = myGroupInfoList[cbGroupSelection.SelectedIndex]; + if(myFolder.FolderConfig.Security_Group == gi.GID) + { + MessageBox.Show("Cannot Delete Default Group", "Attempt to Delete Default", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + bool deleteOK = true; + if (gi.GroupMembershipCount > 0 && gi.GroupMemberships.Any(mi => mi.EndDate == null || mi.EndDate == string.Empty)) + deleteOK = false; + if (!deleteOK) + { + MessageBox.Show("There are still users who are members of this group. You need to delete all members in order to delete this group.", "Group Has Members", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + if (MessageBox.Show("Are you sure you want to delete this group?", "Confirm Deleting Group", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) + { + Group.Delete(gi.GID); + LoadRefreshGroupUsers(); + SetupGroups(); + } + } + + #endregion + + #region Manage Users + + //Sets up UserOptions + private void SetupUserOptions() + { + lstUsers.Items.Clear(); + foreach (UserInfo ui in myUserInfoList) + lstUsers.Items.Add(ui.UserID); + lstUsers.SelectedIndex = -1; + lstGroups.DataSource = null; + } + + #region Manage Users - User Options + + //Build Membership list based on selected user + private void lstUsers_SelectedIndexChanged(object sender, EventArgs e) + { + myMembershipInfoList = new List(); + if (lstUsers.SelectedIndex > -1) + { + UserInfo ui = myUserInfoList[lstUsers.SelectedIndex]; + if (ui.UserMembershipCount > 0) + { + myMembershipInfoList.AddRange(ui.UserMemberships.Where(mi => mi.EndDate == null || mi.EndDate == string.Empty)); + } + } + + lstGroups.DataSource = myMembershipInfoList; + lstGroups.ValueMember = "UGID"; + lstGroups.DisplayMember = "MyGroupName"; + } + + //Select User and set up Mouse Click Menus based on + //where click in User Box + private void lstUsers_MouseUp(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Right) + { + int k = lstUsers.IndexFromPoint(e.Location); + if (k >= 0) + { + lstUsers.SelectedIndex = k; + editUserToolStripMenuItem.Visible = deleteUserToolStripMenuItem.Visible = true; + } + else + { + addUserToolStripMenuItem.Visible = true; + editUserToolStripMenuItem.Visible = deleteUserToolStripMenuItem.Visible = false; + } + + cmUsers.Show(lstUsers, e.Location); + } + else if (e.Button == MouseButtons.Left) + { + int k = lstUsers.IndexFromPoint(e.Location); + if (k >= 0) + { + lstUsers.SelectedIndex = k; + } + } + } + + //Adds a new User + private void addUserToolStripMenuItem_Click(object sender, EventArgs e) + { + User u = User.MakeUser("[Enter New UserID]", "", "", "", "", "", "", "", "", "", "", DateTime.Now, ""); + frmManageUser frm = new frmManageUser("add"); + frm.MyUser = u; + if (frm.ShowDialog(this) == DialogResult.OK) + { + u = frm.MyUser; + u.Save(); + Membership.MakeMembership(u, Group.Get(myFolder.FolderConfig.Security_Group), "", ""); + + //Update the User list to reflect the added user + LoadRefreshGroupUsers(); + SetupUserOptions(); + lstUsers.SelectedItem = u.UserID; + } + else + { + u.Delete(); + } + } + + //Edit a User's details + private void editUserToolStripMenuItem_Click(object sender, EventArgs e) + { + if (lstUsers.SelectedIndex == -1) + { + MessageBox.Show("You must select a user to edit", "No User Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + UserInfo ui = myUserInfoList[lstUsers.SelectedIndex]; + using (User u = User.Get(ui.UID)) + { + frmManageUser frm = new frmManageUser("edit"); + frm.MyUser = u; + if (frm.ShowDialog(this) == DialogResult.OK) + { + frm.MyUser.Save(); + + //Update the User list to reflect the edited user + //this is done in case the UserID is updated so the list updates to reflect that + LoadRefreshGroupUsers(); + SetupUserOptions(); + lstUsers.SelectedItem = u.UserID; + } + } + } + + //Delete a User + private void deleteUserToolStripMenuItem_Click(object sender, EventArgs e) + { + if (lstUsers.SelectedIndex == -1) + { + MessageBox.Show("You must select a user to delete", "No User Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + UserInfo ui = myUserInfoList[lstUsers.SelectedIndex]; + SessionInfoList sil = SessionInfoList.Get(); + foreach (SessionInfo si in sil) + { + if (si.UserID == ui.UserID && (si.DTSEnd == null)) + { + MessageBox.Show("The user selected has an active session. You may not delete the user at this time.", "User Active Session", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + } + int nummemberships = ui.UserMemberships.Count(mi => mi.EndDate == null || mi.EndDate == string.Empty); + string mem_text = nummemberships > 0 ? "\r\nNote that this will remove all memberships that this user has." : ""; + if (MessageBox.Show($"Are you sure you want to delete this user?{mem_text}", "Confirm Deleting User", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) + { + foreach (MembershipInfo minfo in ui.UserMemberships.Where(mi => mi.EndDate == null || mi.EndDate == string.Empty)) + { + Membership m = Membership.Get(minfo.UGID); + m.EndDate = DateTime.Now.ToShortDateString(); + m.Save(); + } + + User.Delete(ui.UID); + + //Update the User list to reflect the deleted user + LoadRefreshGroupUsers(); + SetupUserOptions(); + lstUsers.SelectedIndex = -1; + lstGroups.DataSource = null; + } + } + + #endregion + + #region Manage Users - Member Options + + //Adds Context Menu for when a Group is selected + private void lstGroups_MouseUp(object sender, MouseEventArgs e) + { + cmMembers.Items.Clear(); + lstGroups.SelectedIndex = -1; + + if (e.Button == MouseButtons.Right) + { + int k = lstGroups.IndexFromPoint(e.Location); + if (k >= 0) + { + lstGroups.SelectedIndex = k; + cmMembers.Items.Add(this.removeMemberToolStripMenuItem); + + } + + var groupsCanAddTo = myGroupInfoList.Select(x => new { x.GroupName, x.GID }).Except(myMembershipInfoList.Select(x => new { x.MyGroup.GroupName, x.GID })); + foreach (var possiblegroup in groupsCanAddTo) + { + ToolStripMenuItemwithValue AddToMenuItem = new ToolStripMenuItemwithValue($"Add as Member to Group: {possiblegroup.GroupName}", possiblegroup.GID); + AddToMenuItem.Click += addMemberToolStripMenuItem_Click; + cmMembers.Items.Add(AddToMenuItem); + } + + cmMembers.Show(lstGroups, e.Location); + + } + else if (e.Button == MouseButtons.Left) + { + int k = lstGroups.IndexFromPoint(e.Location); + if (k >= 0) + { + lstGroups.SelectedIndex = k; + } + } + } + + //Adds a User to a Group + private void addMemberToolStripMenuItem_Click(object sender, EventArgs e) + { + ToolStripMenuItemwithValue item = (ToolStripMenuItemwithValue)sender; + int userIndex = lstUsers.SelectedIndex; + UserInfo ui = myUserInfoList[userIndex]; + + Membership.MakeMembership(User.Get(ui.UID), Group.Get((int) item.Value), null, ""); + + //Update the Group list to reflect the added group + LoadRefreshGroupUsers(); + lstUsers_SelectedIndexChanged(sender, e); + } + + //Removes a User from a Group + private void removeMemberToolStripMenuItem_Click(object sender, EventArgs e) + { + MembershipInfo mi = (MembershipInfo)lstGroups.SelectedItem; + string msg = "Are you sure you want to remove this Group Member?"; + if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) + { + if (mi.MyGroup.GroupName == "Administrators" && mi.MyGroup.GroupMemberships.Count(mm => mm.EndDate == null || mm.EndDate == string.Empty) == 1) + { + MessageBox.Show("You must have at least 1 user assigned to the Administrators group", "One Administrator Required", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + Membership m = Membership.Get(mi.UGID); + m.EndDate = DateTime.Now.ToShortDateString(); + m.Save(); + + //Update the Group list to reflect the removed group + LoadRefreshGroupUsers(); + lstUsers_SelectedIndexChanged(sender, e); + } + } + + #endregion + + #endregion + + #region Default Options + //Sets up Default Group options for Default Tab + private void SetupDefaultGroupOptions() { pnlGroups.Controls.Clear(); foreach (GroupInfo gi in myGroupInfoList) @@ -56,6 +517,7 @@ namespace VEPROMS } } } + //Handles changing the default group private void rb_CheckedChanged(object sender, EventArgs e) { RadioButton rb = sender as RadioButton; @@ -64,446 +526,7 @@ namespace VEPROMS myFolder.FolderConfig.Security_Group = gi.GID; myFolder.Save(); } - private void SetupSecurity() - { - if (tvFolders.Nodes.Count == 0) - { - FolderInfo fi = FolderInfo.Get(1); - LoadChildFolders(fi, null); - } - lstMembers.Items.Clear(); - lstUsers.Items.Clear(); - lstGroups.Items.Clear(); - GroupInfoList.Reset(); - UserInfoList.Reset(); - myGroupInfoList = GroupInfoList.Get(); - myUserInfoList = UserInfoList.Get(); - foreach (GroupInfo gi in myGroupInfoList) - lstGroups.Items.Add(gi.GroupName); - lstGroups.SelectedIndex = 0; - foreach (UserInfo ui in myUserInfoList) - lstUsers.Items.Add(ui.UserID); - lstGroups.SelectedIndex = -1; - lstUsers.SelectedIndex = -1; - } - private void LoadChildFolders(FolderInfo fi, TreeNode tn) - { - if (tn == null) - { - tn = tvFolders.Nodes.Add(fi.Name); - tn.Tag = fi; - } - else - { - tn = tn.Nodes.Add(fi.Name); - tn.Tag = fi; - } - if (fi.ChildFolderCount > 0) - { - foreach (FolderInfo fic in fi.SortedChildFolders) - { - LoadChildFolders(fic, tn); - } - } - } - private void lstGroups_SelectedIndexChanged(object sender, EventArgs e) - { - lblMembers.Text = "Selected Group Users"; - myMembershipInfoList = new List(); - lstMembers.Items.Clear(); - if (lstGroups.SelectedIndex > -1) - { - GroupInfo gi = myGroupInfoList[lstGroups.SelectedIndex]; - if (gi.GroupMembershipCount > 0) - foreach (MembershipInfo mi in gi.GroupMemberships) - { - if (mi.EndDate == null || mi.EndDate == string.Empty) - { - myMembershipInfoList.Add(mi); - lstMembers.Items.Add(mi.MyUser.UserID); - } - } - } - } - private void addMemberToolStripMenuItem_Click(object sender, EventArgs e) - { - int groupIndex = lstGroups.SelectedIndex; - int userIndex = lstUsers.SelectedIndex; - GroupInfo gi = myGroupInfoList[groupIndex]; - UserInfo ui = myUserInfoList[userIndex]; - Membership.MakeMembership(User.Get(ui.UID), Group.Get(gi.GID), null, ""); - SetupSecurity(); - if ((sender as ToolStripMenuItem).Name.EndsWith("Group")) - { - lstUsers.SelectedIndex = userIndex; - lstGroups.SelectedIndex = groupIndex; - } - else - { - lstGroups.SelectedIndex = groupIndex; - lstUsers.SelectedIndex = userIndex; - } - } - private void removeMemberToolStripMenuItem_Click(object sender, EventArgs e) - { - MembershipInfo mi = myMembershipInfoList[lstMembers.SelectedIndex]; - string msg = "Are you sure you want to remove this Group Member?"; - if (MessageBox.Show(this, msg, "Confirm Group Member Removal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) - { - int groupIndex = lstGroups.SelectedIndex; - int userIndex = lstUsers.SelectedIndex; - if (mi.MyGroup.GroupName == "Administrators") - { - int k = 0; - foreach(MembershipInfo mm in mi.MyGroup.GroupMemberships) - if(mm.EndDate == null || mm.EndDate == string.Empty) - k++; - if (k == 1) - { - MessageBox.Show("You must have at least 1 user assigned to the Adminstrators group", "One Administrator Required", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - } - Membership m = Membership.Get(mi.UGID); - m.EndDate = DateTime.Now.ToShortDateString(); - m.Save(); - SetupSecurity(); - lstGroups.SelectedIndex = groupIndex; - lstUsers.SelectedIndex = userIndex; - } - // foreach (int gg in lstGroups.SelectedIndices) - // { - // GroupInfo gi = myGroupInfoList[gg]; - // if (gi.GroupName == "Administrators" && gi.GroupMembershipCount == 1) - // { - // MessageBox.Show("You must have at least 1 user assigned to the Adminstrators group", "Can Not Delete User", MessageBoxButtons.OK, MessageBoxIcon.Warning); - // return; - // } - // foreach (MembershipInfo mi in gi.GroupMemberships) - // { - // foreach (int mm in lstGroupUsers.SelectedIndices) - // { - // MembershipInfo mig = myMembershipInfoList[mm]; - // if (mi.MyUser.UID == mig.MyUser.UID) - // { - // Membership m = Membership.Get(mi.UGID); - // m.EndDate = DateTime.Now.ToShortDateString(); - // m.Save(); - // } - // } - // } - // } - // SetupSecurity(); - //} - } - private void addUserToolStripMenuItem_Click(object sender, EventArgs e) - { - User u = User.MakeUser("[Enter New UserID]","", "", "", "", "", "", "", "", "", "",DateTime.Now,""); - frmManageUser frm = new frmManageUser("add"); - frm.MyUser = u; - if (frm.ShowDialog(this) == DialogResult.OK) - { - u = frm.MyUser; - u.Save(); - Membership.MakeMembership(u, Group.Get(myFolder.FolderConfig.Security_Group), "", ""); - SetupSecurity(); - } - else - { - u.Delete(); - } - } - private void editUserToolStripMenuItem_Click(object sender, EventArgs e) - { - if (lstUsers.SelectedIndex == -1) - { - MessageBox.Show("You must select a user to edit", "No User Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - UserInfo ui = myUserInfoList[lstUsers.SelectedIndex]; - using (User u = User.Get(ui.UID)) - { - frmManageUser frm = new frmManageUser("edit"); - frm.MyUser = u; - if (frm.ShowDialog(this) == DialogResult.OK) - { - frm.MyUser.Save(); - SetupSecurity(); - } - } - } - private void deleteUserToolStripMenuItem_Click(object sender, EventArgs e) - { - if (lstUsers.SelectedIndex == -1) - { - MessageBox.Show("You must select a user to delete", "No User Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - UserInfo ui = myUserInfoList[lstUsers.SelectedIndex]; - SessionInfoList sil = SessionInfoList.Get(); - foreach (SessionInfo si in sil) - { - if (si.UserID == ui.UserID && (si.DTSEnd == null)) - { - MessageBox.Show("The user selected has an active session. You may not delete the user at this time.", "User Active Session", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - } - int k = 0; - if (ui.UserMembershipCount > 0) - { - foreach (MembershipInfo mi in ui.UserMemberships) - { - if (mi.EndDate == null || mi.EndDate == string.Empty) - k++; - } - } - if (k > 0) - { - MessageBox.Show("You must remove user from all groups that user is a member of in order to delete user", "User Has Memberships", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - if (MessageBox.Show("Are you sure you want to delete this user?", "Confirm Deleting User", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) - { - User.Delete(ui.UID); - SetupSecurity(); - } - //to do delete user - //end date user memberships - //delete user - } - private void createGroupMenuItem(object sender, EventArgs e) - { - try - { - ToolStripDropDownItem tsddi = sender as ToolStripDropDownItem; - TreeNode tn = tvFolders.SelectedNode; - FolderInfo fi = tn.Tag as FolderInfo; - AddNewGroup(tsddi.Text, fi); - SetupSecurity(); - } - catch (Exception ex) - { - _MyLog.Warn("createGroupMenuItem", ex); - } - } - private void AddNewGroup(string txt, FolderInfo fi) - { - txt = txt.Replace("Create", "").Replace(" a ", "").Replace("Group", "").Trim(); - RoleInfoList ril = RoleInfoList.Get(); - // B2022-080: cannot add a new group in Proms security. if the sql database's 'Roles' table was not initialized with the default roles, such as Set Administrator, - // Writer, Reviewer, RO Editor, the Adding of new groups won't work. Databases should have this loaded by default. - // Promsfixes has queries that insert these, but only gets run if there are no assignments (see commands under --define Roles) - if (ril == null || ril.Count < 2) - { - MessageBox.Show("Roles table is missing entries.\r\nPlease contact Volian to create other groups.", "Cannot create groups", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - foreach(RoleInfo ri in ril) - { - if (ri.Name == txt) - { - string gin = string.Format("{0}s - {1}", ri.Name, fi.Name); - bool addOK = true; - foreach (GroupInfo gi in myGroupInfoList) - { - if (gin == gi.GroupName) - { - addOK = false; - break; - } - } - if (addOK) - { - Group group = Group.MakeGroup(gin, null, null); - Assignment.MakeAssignment(group, Role.Get(ri.RID), Folder.Get(fi.FolderID), null); - } - } - } - GroupInfoList.Reset(); - myGroupInfoList = GroupInfoList.Get(); - SetupGroups(); - } - private void lstUsers_SelectedIndexChanged(object sender, EventArgs e) - { - lblMembers.Text = "Selected User Groups"; - myMembershipInfoList = new List(); - lstMembers.Items.Clear(); - if (lstUsers.SelectedIndex > -1) - { - UserInfo ui = myUserInfoList[lstUsers.SelectedIndex]; - if (ui.UserMembershipCount > 0) - { - foreach (MembershipInfo mi in ui.UserMemberships) - { - if (mi.EndDate == null || mi.EndDate == string.Empty) - { - myMembershipInfoList.Add(mi); - lstMembers.Items.Add(mi.MyGroup.GroupName); - } - } - } - } - } - private void tvFolders_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) - { - tvFolders.SelectedNode = e.Node; - } - private void deleteGroupToolStripMenuItem_Click(object sender, EventArgs e) - { - if (lstGroups.SelectedIndex < 0) - { - MessageBox.Show("You must select a group to delete", "No Group Selected", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - GroupInfo gi = myGroupInfoList[lstGroups.SelectedIndex]; - if(myFolder.FolderConfig.Security_Group == gi.GID) - { - MessageBox.Show("Cannot Delete Default Group", "Attempt to Delete Default", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - bool deleteOK = true; - if(gi.GroupMembershipCount > 0) - { - foreach (MembershipInfo mi in gi.GroupMemberships) - { - if (mi.EndDate == null || mi.EndDate == string.Empty) - { - deleteOK = false; - break; - } - } - } - if (!deleteOK) - { - MessageBox.Show("There are still users who are members of this group. You need to delete all members in order to delete this group.", "Group Has Members", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - if (MessageBox.Show("Are you sure you want to delete this group?", "Confirm Deleting Group", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) - { - Group.Delete(gi.GID); - GroupInfoList.Reset(); - myGroupInfoList = GroupInfoList.Get(); - SetupGroups(); - SetupSecurity(); - } - } - private void lstGroups_MouseUp(object sender, MouseEventArgs e) - { - lstGroups.SelectedIndex = -1; - if (e.Button == MouseButtons.Right) - { - int k = lstGroups.IndexFromPoint(e.Location); - if (k >= 0) - { - lstGroups.SelectedIndex = k; - if (lstUsers.SelectedIndex >= 0) - { - GroupInfo gi = myGroupInfoList[k]; - if (gi.GroupMembershipCount > 0) - { - addMemberToolStripMenuItemGroup.Visible = true; - UserInfo ui = myUserInfoList[lstUsers.SelectedIndex]; - foreach (MembershipInfo mi in gi.GroupMemberships) - { - if (mi.MyUser.UserID == ui.UserID && (mi.EndDate == null || mi.EndDate == string.Empty)) - { - addMemberToolStripMenuItemGroup.Visible = false; - break; - } - } - } - } - else - addMemberToolStripMenuItemGroup.Visible = false; - cmGroups.Show(lstGroups, e.Location); - } - } - else if (e.Button == MouseButtons.Left) - { - int k = lstGroups.IndexFromPoint(e.Location); - if (k >= 0) - { - lstGroups.SelectedIndex = k; - } - } - } - private void lstUsers_MouseUp(object sender, MouseEventArgs e) - { - lstUsers.SelectedIndex = -1; - if (e.Button == MouseButtons.Right) - { - int k = lstUsers.IndexFromPoint(e.Location); - if (k >= 0) - { - lstUsers.SelectedIndex = k; - //addUserToolStripMenuItem.Visible = false; - editUserToolStripMenuItem.Visible = deleteUserToolStripMenuItem.Visible = true; - if (lstGroups.SelectedIndex >= 0) - { - UserInfo ui = myUserInfoList[k]; - if(ui.UserMembershipCount > 0) - { - addMemberToolStripMenuItemUser.Visible = true; - GroupInfo gi = myGroupInfoList[lstGroups.SelectedIndex]; - foreach(MembershipInfo mi in ui.UserMemberships) - { - if (mi.MyGroup.GroupName == gi.GroupName && (mi.EndDate == null || mi.EndDate == string.Empty)) - { - addMemberToolStripMenuItemUser.Visible = false; - break; - } - } - } - } - else - addMemberToolStripMenuItemUser.Visible = false; - cmUsers.Show(lstUsers, e.Location); - } - else - { - addUserToolStripMenuItem.Visible = true; - editUserToolStripMenuItem.Visible = deleteUserToolStripMenuItem.Visible = addMemberToolStripMenuItemUser.Visible = false; - cmUsers.Show(lstUsers, e.Location); - } - } - else if (e.Button == MouseButtons.Left) - { - int k = lstUsers.IndexFromPoint(e.Location); - if (k >= 0) - { - lstUsers.SelectedIndex = k; - } - } - } - private void lstMembers_MouseUp(object sender, MouseEventArgs e) - { - lstMembers.SelectedIndex = -1; - if (e.Button == MouseButtons.Right) - { - int k = lstMembers.IndexFromPoint(e.Location); - if (k >= 0) - { - lstMembers.SelectedIndex = k; - addMemberToolStripMenuItemUser.Visible = false; - removeMemberToolStripMenuItem.Visible = true; - cmMembers.Show(lstMembers, e.Location); - } - else - { - addMemberToolStripMenuItemUser.Visible = true; - removeMemberToolStripMenuItem.Visible = false; - cmMembers.Show(lstMembers, e.Location); - } - } - else if (e.Button == MouseButtons.Left) - { - int k = lstMembers.IndexFromPoint(e.Location); - if (k >= 0) - { - lstMembers.SelectedIndex = k; - } - } - } + #endregion + } } \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/dlgManageSecurity.resx b/PROMS/VEPROMS User Interface/dlgManageSecurity.resx index 8f093cb7..b66bee43 100644 --- a/PROMS/VEPROMS User Interface/dlgManageSecurity.resx +++ b/PROMS/VEPROMS User Interface/dlgManageSecurity.resx @@ -112,21 +112,27 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + 234, 17 + + 341, 17 - + 17, 17 - - 243, 17 - - + 136, 17 + + 341, 17 + + + 58 + \ No newline at end of file diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/MembershipInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/MembershipInfo.cs index afbc060c..c70b7b85 100644 --- a/PROMS/VEPROMS.CSLA.Library/Generated/MembershipInfo.cs +++ b/PROMS/VEPROMS.CSLA.Library/Generated/MembershipInfo.cs @@ -119,6 +119,15 @@ namespace VEPROMS.CSLA.Library return _MyUser; } } + public string MyUserUserID + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + if (_MyUser == null && _UID != 0) _MyUser = UserInfo.Get(_UID); + return _MyUser?.UserID; + } + } private int _GID; public int GID { @@ -139,6 +148,15 @@ namespace VEPROMS.CSLA.Library return _MyGroup; } } + public string MyGroupName + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + get + { + if (_MyGroup == null && _GID != 0) _MyGroup = GroupInfo.Get(_GID); + return _MyGroup?.GroupName; + } + } private string _StartDate = string.Empty; public string StartDate { diff --git a/PROMS/Volian.Controls.Library/ToolStripMenuItemwithValue.cs b/PROMS/Volian.Controls.Library/ToolStripMenuItemwithValue.cs new file mode 100644 index 00000000..16f35ab1 --- /dev/null +++ b/PROMS/Volian.Controls.Library/ToolStripMenuItemwithValue.cs @@ -0,0 +1,16 @@ +using System.Windows.Forms; + +namespace Volian.Controls.Library +{ + //ToolStripMenuItem with Added Value Property + public class ToolStripMenuItemwithValue : ToolStripMenuItem + { + public readonly object Value; + + public ToolStripMenuItemwithValue(string text, object value) + { + Value = value; + Text = text; + } + } +} diff --git a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj index 42a8db20..21fb8341 100644 --- a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj +++ b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj @@ -384,6 +384,9 @@ TablePropertiesControl.cs + + Component + Component