/// <summary> /// Displays the add/edit device dialog box. /// </summary> public void Show() { //If the validation failed, keep everything as is, and //make sure the dialog stays visible. if (!Page.IsValid) { ModalDialog.Show(); return; } if (Thread.CurrentPrincipal.IsInRole(ClearCanvas.ImageServer.Enterprise.Authentication.AuthorityTokens.Study.EditDataAccess) && Study != null) { AuthorityGroupCheckBoxList.Items.Clear(); var controller = new StudyDataAccessController(); var list = controller.ListDataAccessGroupsForStudy(Study.TheStudyStorage.Key); var adapter = new ServerPartitionDataAdapter(); IList<AuthorityGroupDetail> accessAllStudiesList; var groups = adapter.GetAuthorityGroupsForPartition(Study.ThePartition.Key, true, out accessAllStudiesList); IList<ListItem> items = CollectionUtils.Map( accessAllStudiesList, delegate(AuthorityGroupDetail group) { var item = new ListItem(@group.Name, @group.AuthorityGroupRef.ToString(false, false)) { Enabled = false, Selected = true }; item.Attributes["title"] = @group.Description; return item; }); foreach (var group in groups) { var item = new ListItem(@group.Name, @group.AuthorityGroupRef.ToString(false, false)); item.Attributes["title"] = @group.Description; foreach (AuthorityGroupStudyAccessInfo s in list) { if (s.AuthorityOID.Equals(group.AuthorityGroupRef.ToString(false, false))) item.Selected = true; } items.Add(item); } AuthorityGroupCheckBoxList.Items.AddRange(CollectionUtils.ToArray(items)); } CancelButton.Visible = true; UpdateButton.Visible = true; ModalDialog.Show(); }
public override void DataBind() { if (Study != null) { if (Thread.CurrentPrincipal.IsInRole(ClearCanvas.ImageServer.Enterprise.Authentication.AuthorityTokens.Study.EditDataAccess)) { StudyDataAccessController controller = new StudyDataAccessController(); var dataAccessGroupList = CollectionUtils.Sort(controller.ListDataAccessGroupsForStudy(Study.TheStudyStorage.Key), Compare); UpdatableDataAccessGroupsGridView.DataSource = dataAccessGroupList; var tokenAccessGroupList = CollectionUtils.Sort(controller.ListAuthorityGroupsForStudyViaToken(Study.TheStudyStorage), Compare); OtherGroupsWithAccessGridView.DataSource = tokenAccessGroupList; OtherGroupsListing.Visible = tokenAccessGroupList.Count > 0; LinkToOtherGroupListing.Visible = dataAccessGroupList.Count > 10; } } base.DataBind(); }
protected void UpdateButton_Click(object sender, ImageClickEventArgs e) { if (Page.IsValid) { var assignedGroups = new List<string>(); foreach (ListItem item in AuthorityGroupCheckBoxList.Items) { if (item.Selected && item.Enabled) assignedGroups.Add(item.Value); } var controller = new StudyDataAccessController(); controller.UpdateStudyAuthorityGroups(Study.StudyInstanceUid, Study.AccessionNumber, Study.TheStudyStorage.Key, assignedGroups); OnAuthorityGroupsUpdated(); Close(); } else { Show(); } }
protected void AddButton_Clicked(object sender, ImageClickEventArgs e) { if (Page.IsValid) { try { var assignedGroups = new List<string>(); foreach (ListItem item in AuthorityGroupCheckBoxList.Items) { if (item.Selected && item.Enabled) assignedGroups.Add(item.Value); item.Selected = false; } foreach (StudySummary study in AuthorityGroupStudies) { try { StudyDataAccessController controller = new StudyDataAccessController(); controller.AddStudyAuthorityGroups(study.StudyInstanceUid, study.AccessionNumber, study.TheStudyStorage.Key, assignedGroups); } catch (Exception ex) { Platform.Log(LogLevel.Error, ex, "AddClicked failed: Unable to add authority groups to studies"); throw; } } } finally { Close(); } } else { EnsureDialogVisible(); } }
private void SaveData() { if (_rule == null) { _rule = new ServerRule { ServerRuleApplyTimeEnum = ServerRuleApplyTimeEnum.StudyProcessed }; } if (RuleXmlTextBox.Text.Length > 0) { StudyDataAccessController controller = new StudyDataAccessController(); _rule.RuleXml = new XmlDocument(); StringBuilder sb = new StringBuilder(); sb.Append("<rule>"); sb.Append(RuleXmlTextBox.Text); sb.Append("<action>"); foreach (ListItem item in AuthorityGroupCheckBoxList.Items) { if (item.Selected) { sb.AppendFormat("<grant-access authorityGroupOid=\"{0}\"/>", item.Value); // Add if it doesn't exist to the DataAccessGroup table controller.AddDataAccessIfNotExists(item.Value); } } sb.Append("</action>"); sb.Append("</rule>"); _rule.RuleXml.Load(new StringReader(sb.ToString())); } _rule.RuleName = RuleNameTextBox.Text; _rule.ServerRuleTypeEnum = ServerRuleTypeEnum.DataAccess; _rule.Enabled = EnabledCheckBox.Checked; _rule.DefaultRule = DefaultCheckBox.Checked; _rule.ServerPartitionKey = Partition.GetKey(); _rule.ExemptRule = ExemptRuleCheckBox.Checked; }