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();
            }
        }
        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;
        }
Пример #3
0
        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();
            }
        }
Пример #4
0
        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();
        }
        /// <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(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();
        }