TransactionalNodeService.SharePoint.SecurityModel.GlymaSecurityTrimmer.TrimResponse C# (CSharp) Method

TrimResponse() public method

public TrimResponse ( QueryResponse>.Dictionary response ) : QueryResponse>.Dictionary
response QueryResponse>.Dictionary
return QueryResponse>.Dictionary
        public Dictionary<Guid, QueryResponse> TrimResponse(Dictionary<Guid, QueryResponse> response, params IRight[] requiredRights)
        {
            IEnumerable<Guid> authorisedDomainUids = GlymaUser.IsAuthorised(response.Keys, requiredRights);
            Dictionary<Guid, QueryResponse> securityTrimmedDomains = new Dictionary<Guid, QueryResponse>();

            foreach (Guid authorisedDomainUid in authorisedDomainUids)
            {
                if (response.ContainsKey(authorisedDomainUid))
                {
                    securityTrimmedDomains[authorisedDomainUid] = response[authorisedDomainUid];
                }
            }

            return securityTrimmedDomains;
        }
    }

Same methods

GlymaSecurityTrimmer::TrimResponse ( QueryResponse response ) : QueryResponse

Usage Example

コード例 #1
0
        public QueryResponse QueryMapByDomain(string callingUrl, Guid domainId, int maxDepth, EdgeConditions edgeConditions, FilterConditions filterConditions)
        {
            using (GlymaNSApp.NodeServiceClient nodeServiceClient = new GlymaNSApp.NodeServiceClient(callingUrl))
            {
                /// This method requires security trimming so there is no need to check authentication here.
                using (WebAppSPGlymaSession glymaSession = new WebAppSPGlymaSession(callingUrl))
                {
                    GlymaSessionConfiguration configuration = glymaSession.ExportGlymaSession();

                    QueryResponse allRootMaps = nodeServiceClient.QueryMapByDomain(configuration, domainId, maxDepth, edgeConditions, filterConditions);

                    /// This method DOES traverse rootmap boundaries.
                    GlymaSecurityTrimmer securityTrimmer = new GlymaSecurityTrimmer(glymaSession.Web, glymaSession);

                    QueryResponse trimmedRootMaps = securityTrimmer.TrimResponse(allRootMaps, SPGlymaRightFactory.Instance.RootMapReadRight);
                    trimmedRootMaps.CompressResponse();

                    return trimmedRootMaps;
                }
            }
        }
All Usage Examples Of TransactionalNodeService.SharePoint.SecurityModel.GlymaSecurityTrimmer::TrimResponse