Added code fixes based on comments during demonstrations of 11/25/2013

This commit is contained in:
Rich
2013-11-27 03:02:52 +00:00
parent 196111b836
commit eee8ac291f
3 changed files with 311 additions and 292 deletions

View File

@@ -16,38 +16,14 @@ namespace VEPROMS
#region Log4Net
private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
#endregion
private User myUser;
private GroupInfoList myGroupInfoList;
private UserInfoList myUserInfoList;
private List<MembershipInfo> myMembershipInfoList;
//private FolderInfo myFolderInfo;
private Folder myFolder;
public dlgManageSecurity()
{
InitializeComponent();
}
//private void btnApplyPassword_Click(object sender, EventArgs e)
//{
// string pw = txtVolianPassword.Text;
// if (pw == "V3Pr0m5")
// {
// MessageBox.Show("You have entered the correct password. You will now be defined as the Administrator for VEPROMS", "Correct Password");
// User user = User.MakeUser(VlnSettings.UserID, "", "", "", "", "", "", "", "", "", "", DateTime.Now, VlnSettings.UserID);
// Group group = Group.GetByGroupName("Administrators");
// Membership m = Membership.MakeMembership(user, group, null, "");
// tcSecurity.TabPages.Add(tpGroupUsers);
// tcSecurity.TabPages.Remove(tpDefault);
// SetupSecurity();
// }
// else
// {
// MessageBox.Show("You have entered an incorrect password", "Incorrect Password");
// this.Close();
// }
//}
private void dlgManageSecurity_Load(object sender, EventArgs e)
{
myFolder = Folder.Get(1);
@@ -57,7 +33,6 @@ namespace VEPROMS
private void SetupGroups()
{
pnlGroups.Controls.Clear();
//GroupInfoList gil = GroupInfoList.Get();
foreach (GroupInfo gi in myGroupInfoList)
{
RadioButton rb = new RadioButton();
@@ -80,8 +55,7 @@ namespace VEPROMS
}
}
}
void rb_CheckedChanged(object sender, EventArgs e)
private void rb_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb = sender as RadioButton;
GroupInfo gi = rb.Tag as GroupInfo;
@@ -96,7 +70,7 @@ namespace VEPROMS
FolderInfo fi = FolderInfo.Get(1);
LoadChildFolders(fi, null);
}
lstGroupUsers.Items.Clear();
lstMembers.Items.Clear();
lstUsers.Items.Clear();
lstGroups.Items.Clear();
GroupInfoList.Reset();
@@ -111,7 +85,6 @@ namespace VEPROMS
lstGroups.SelectedIndex = -1;
lstUsers.SelectedIndex = -1;
}
private void LoadChildFolders(FolderInfo fi, TreeNode tn)
{
if (tn == null)
@@ -132,12 +105,11 @@ namespace VEPROMS
}
}
}
private void lstGroups_SelectedIndexChanged(object sender, EventArgs e)
{
pnlCGU.BringToFront();
lblMembers.Text = "Selected Group Users";
myMembershipInfoList = new List<MembershipInfo>();
lstGroupUsers.Items.Clear();
lstMembers.Items.Clear();
if (lstGroups.SelectedIndex > -1)
{
GroupInfo gi = myGroupInfoList[lstGroups.SelectedIndex];
@@ -147,101 +119,84 @@ namespace VEPROMS
if (mi.EndDate == null || mi.EndDate == string.Empty)
{
myMembershipInfoList.Add(mi);
lstGroupUsers.Items.Add(mi.MyUser.UserID);
lstMembers.Items.Add(mi.MyUser.UserID);
}
}
}
}
private void addMemberToolStripMenuItem_Click(object sender, EventArgs e)
{
if (lstGroups.SelectedIndices.Count < 1)
{
MessageBox.Show(this, "You must select at least one Group to proceed", "Missing Group");
return;
}
if (lstUsers.SelectedIndices.Count < 1)
{
MessageBox.Show(this, "You must select at least one User to proceed", "Missing User");
return;
}
int groupIndex = lstGroups.SelectedIndex;
int userIndex = lstUsers.SelectedIndex;
foreach (int gg in lstGroups.SelectedIndices)
{
foreach (int uu in lstUsers.SelectedIndices)
{
GroupInfo gi = myGroupInfoList[gg];
UserInfo ui = myUserInfoList[uu];
bool addOK = true;
if (gi.GroupMembershipCount > 0)
{
foreach (MembershipInfo mi in gi.GroupMemberships)
if (mi.MyUser.UID == ui.UID && (mi.EndDate == null || mi.EndDate == string.Empty))
{
addOK = false;
break;
}
}
if (addOK)
{
Membership.MakeMembership(User.Get(ui.UID), Group.Get(gi.GID), null, "");
}
else
MessageBox.Show(this, string.Format("User {0} is already a member of group {1}", ui.UserID, gi.GroupName), "User In Group");
}
}
GroupInfo gi = myGroupInfoList[groupIndex];
UserInfo ui = myUserInfoList[userIndex];
Membership.MakeMembership(User.Get(ui.UID), Group.Get(gi.GID), null, "");
SetupSecurity();
lstGroups.SelectedIndex = groupIndex;
lstUsers.SelectedIndex = userIndex;
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)
{
if (lstGroups.SelectedIndices.Count < 1)
{
MessageBox.Show(this, "You must select at least one Group to proceed", "Missing Group");
return;
}
if (lstGroupUsers.SelectedIndices.Count < 1)
{
MessageBox.Show(this, "You must select at least one Group Member to proceed", "Missing Group Member");
return;
}
string msg = lstGroupUsers.SelectedIndices.Count > 1 ? "Are you sure you want to remove these Group Members?" : "Are you sure you want to remove this Group Member?";
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)
{
foreach (int gg in lstGroups.SelectedIndices)
int groupIndex = lstGroups.SelectedIndex;
int userIndex = lstUsers.SelectedIndex;
if (mi.MyGroup.GroupName == "Administrators")
{
GroupInfo gi = myGroupInfoList[gg];
foreach (MembershipInfo mi in gi.GroupMemberships)
int k = 0;
foreach(MembershipInfo mm in mi.MyGroup.GroupMemberships)
if(mm.EndDate == null || mm.EndDate == string.Empty)
k++;
if (k == 1)
{
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();
}
}
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)
{
//to do add user manually
/*
* create new input form
* get userid
* create user
* add to default group
*
*/
User u = User.MakeUser("[Enter New UserID]","", "", "", "", "", "", "", "", "", "",DateTime.Now,"");
frmManageUser frm = new frmManageUser();
frm.MyUser = u;
@@ -257,7 +212,6 @@ namespace VEPROMS
u.Delete();
}
}
private void editUserToolStripMenuItem_Click(object sender, EventArgs e)
{
if (lstUsers.SelectedIndex == -1)
@@ -276,7 +230,6 @@ namespace VEPROMS
}
}
}
private void deleteUserToolStripMenuItem_Click(object sender, EventArgs e)
{
if (lstUsers.SelectedIndex == -1)
@@ -317,7 +270,6 @@ namespace VEPROMS
//end date user memberships
//delete user
}
private void createGroupMenuItem(object sender, EventArgs e)
{
try
@@ -333,7 +285,6 @@ namespace VEPROMS
_MyLog.Warn("createGroupMenuItem", ex);
}
}
private void AddNewGroup(string txt, FolderInfo fi)
{
txt = txt.Replace("Create", "").Replace(" a ", "").Replace("Group", "").Trim();
@@ -363,47 +314,38 @@ namespace VEPROMS
myGroupInfoList = GroupInfoList.Get();
SetupGroups();
}
private void lstUsers_SelectedIndexChanged(object sender, EventArgs e)
{
/*
myMembershipInfoList = new List<MembershipInfo>();
lstGroupUsers.Items.Clear();
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);
lstGroupUsers.Items.Add(mi.MyUser.UserID);
}
}
*/
pnlCUG.BringToFront();
lstUserGroups.Items.Clear();
if(lstUsers.SelectedIndex > -1){
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
if (ui.UserMembershipCount > 0)
lblMembers.Text = "Selected User Groups";
myMembershipInfoList = new List<MembershipInfo>();
lstMembers.Items.Clear();
if (lstUsers.SelectedIndex > -1)
{
foreach (MembershipInfo mi in ui.UserMemberships)
UserInfo ui = myUserInfoList[lstUsers.SelectedIndex];
if (ui.UserMembershipCount > 0)
{
if (mi.EndDate == null || mi.EndDate == string.Empty)
foreach (MembershipInfo mi in ui.UserMemberships)
{
lstUserGroups.Items.Add(mi.MyGroup.GroupName);
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];
bool deleteOK = true;
if(gi.GroupMembershipCount > 0)
@@ -428,5 +370,122 @@ namespace VEPROMS
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;
}
}
}
}
}