//------------------------------------------------------------------------------------- private void buttonAddCurrent_Click(object sender, EventArgs e) { try { OID sid = ((ComboBoxItem<Person>)comboBoxUsers.SelectedItem).Key.OID; if(sid == null) return; foreach(ACEitem i in ACL) if(i.ACE.SID == sid) return; object sd = null; if(treeMainMenu.HideSelection == false) sd = ((FormInfo)treeMainMenu.SelectedNodeItem.Object).SD; //else if(treeDivisions.HideSelection == false) // sd = ((ISimLinkedListItem)treeDivisions.SelectedNodeDataObject).Props["SD"]; else throw new Exception("Не определен защищаемый элемент!"); ACEitem ai = new ACEitem(); ai.ACE.SD = (OID)sd; ai.ACE.SID = sid; ai.Browse = true; ai.Image = global::Sim.AdminForms.Properties.Resources.User; ai.Name = ((ComboBoxItem<Person>)comboBoxUsers.SelectedItem).Key.FullName; ACL.Add(ai); if(btnSave.Enabled == false) { finistPanel1.Enabled = false; splitContainer1.Panel1.Enabled = false; btnSave.Enabled = true; btnCancel.Enabled = true; } } catch(Exception Err) { Sim.Controls.ModalErrorBox.Show(Err, PanelBack); } }
//------------------------------------------------------------------------------------- #region << Others Methods >> private void FillACLs(FormInfo fi) { try { OID sd = fi.SD; ACL.Clear(); ACL.EventsOff(); if(pSec.ACEs.ContainsKey(sd)) foreach(ACE ace in pSec.ACEs[sd]) { if(at != null && at.Contains(ace.SID) == false) continue; if(ace.SD == sd) { ACEitem i = new ACEitem(); i.ACE = ace.Clone(); IPersonSubject u = null; if(pSec.SecurityGroups.ContainsKey(ace.SID)) { i.Image = global::Sim.AdminForms.Properties.Resources.Group; i.Name = pSec.SecurityGroups[ace.SID].Name; } else if((u = users[ace.SID]) != null) { i.Image = global::Sim.AdminForms.Properties.Resources.User; i.Name = u.FullName; } else { i.Image = global::Sim.AdminForms.Properties.Resources.UnknownGroup; i.Name = ace.SID.ToString(); } ACL.Add(i); } } ACL.EventsOn(); fdgvACL.Tag = sd; } catch(Exception Err) { Sim.Controls.ModalErrorBox.Show(Err, PanelBack); } }
//------------------------------------------------------------------------------------- void SimModalMultiChoiceBox_DialogClosed(object sender, DialogResult result) { try { if(btnSave.Enabled) { finistPanel1.Enabled = false; splitContainer1.Panel1.Enabled = false; btnSave.Enabled = true; btnCancel.Enabled = true; } SimModalMultiChoiceBox frm = (SimModalMultiChoiceBox)sender; frm.DialogClosed -= new DialogClosedEventHandler(SimModalMultiChoiceBox_DialogClosed); if(result == DialogResult.Cancel) return; if(btnSave.Enabled == false) { finistPanel1.Enabled = false; splitContainer1.Panel1.Enabled = false; btnSave.Enabled = true; btnCancel.Enabled = true; } OID sd = (OID)fdgvACL.Tag; foreach(object i in frm.Choices) { ACEitem a = new ACEitem(); a.ACE = new ACE(); a.ACE.SID = ((SecurityItem)i).SID; a.ACE.SD = sd; a.Image = ((SecurityItem)i).Image; a.Name = ((SecurityItem)i).Name; a.Browse = true; ACL.Add(a); } } catch(Exception Err) { Sim.Controls.ModalErrorBox.Show(Err, PanelBack); } }