private DataAccessGroupInfoCollection LoadDataAccessGroupInfo() { using (AuthorityManagement service = new AuthorityManagement()) { var dataGroups = service.ListDataAccessAuthorityGroupDetails(); // Include those that are not data access groups but have access to all partitions var accessToAllPartitionGroups = CollectionUtils.Select(service.ListAllAuthorityGroupDetails(), g => HasToken(g.AuthorityTokens, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllPartitions)); var combinedGroups = new List <AuthorityGroupDetail>(); combinedGroups.AddRange(dataGroups); foreach (var g in accessToAllPartitionGroups) { if (combinedGroups.Find(item => item.AuthorityGroupRef.Equals(g.AuthorityGroupRef, true)) == null) { combinedGroups.Add(g); } } //convert to DataAccessGroupInfo for sorting var list = new DataAccessGroupInfoCollection(CollectionUtils.Map <AuthorityGroupDetail, DataAccessGroupInfo>(combinedGroups, (group) => { var authorityRecordRef = group.AuthorityGroupRef.ToString(false, false); var fullServerPartitionAccess = HasToken(group.AuthorityTokens, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllPartitions); var allStudiesAccess = HasToken(group.AuthorityTokens, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllStudies); return(new DataAccessGroupInfo(authorityRecordRef, group.Name) { Description = group.Description, HasAccessToCurrentPartition = fullServerPartitionAccess || (Partition != null && Partition.Key != null && Partition.IsAuthorityGroupAllowed(authorityRecordRef)), CanAccessAllPartitions = fullServerPartitionAccess, CanAccessAllStudies = allStudiesAccess }); })); list.Sort(new DatagroupComparer()); return(list); } }
private DataAccessGroupInfoCollection LoadDataAccessGroupInfo() { using (AuthorityManagement service = new AuthorityManagement()) { var dataGroups = service.ListDataAccessAuthorityGroupDetails(); // Include those that are not data access groups but have access to all partitions var accessToAllPartitionGroups = CollectionUtils.Select(service.ListAllAuthorityGroupDetails(), g => HasToken(g.AuthorityTokens, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllPartitions)); var combinedGroups = new List<AuthorityGroupDetail>(); combinedGroups.AddRange(dataGroups); foreach(var g in accessToAllPartitionGroups){ if (combinedGroups.Find(item=>item.AuthorityGroupRef.Equals(g.AuthorityGroupRef, true))==null) { combinedGroups.Add(g); } } //convert to DataAccessGroupInfo for sorting var list = new DataAccessGroupInfoCollection(CollectionUtils.Map<AuthorityGroupDetail, DataAccessGroupInfo>(combinedGroups, (group) => { var authorityRecordRef = group.AuthorityGroupRef.ToString(false, false); var fullServerPartitionAccess = HasToken(group.AuthorityTokens, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllPartitions); var allStudiesAccess = HasToken(group.AuthorityTokens, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllStudies); return new DataAccessGroupInfo(authorityRecordRef, group.Name) { Description = group.Description, HasAccessToCurrentPartition = fullServerPartitionAccess || (Partition != null && Partition.Key != null && Partition.IsAuthorityGroupAllowed(authorityRecordRef)), CanAccessAllPartitions = fullServerPartitionAccess, CanAccessAllStudies = allStudiesAccess }; })); list.Sort(new DatagroupComparer()); return list; } }