搜索查询生成器根据SharePoint Online中的权限获取列表项

时间:2018-12-12 13:05:17

标签: reactjs typescript sharepoint sharepoint-online

我有一个搜索功能,可以根据列表项的内容类型ID对其进行搜索。它返回所有项目,包括来自用户无权访问的站点的项目。这就是我要的。但是我想根据这些数据(列表项)是否来自当前用户具有查看权限的站点进行排序。示例:

清单1:“具有访问权限”: -列出来自当前用户可以访问的站点的项目-

清单2:“没有访问权限” -列出来自当前用户无法访问的站点的项目-

我的搜索如下:

       public GetSiteItemsByContentId(contentTypeId: string,selectProperties: 
         string[]): Promise<SearchResult[]> {

        const _searchQuerySettings: SearchQuery = {
        TrimDuplicates: false,
        RowLimit: 500, 
        SelectProperties: selectProperties.concat(["ParentLink"])
    };

    let q = SearchQueryBuilder(`ContentTypeId:${contentTypeId}*`, _searchQuerySettings).rowLimit(500);

    const srPromise = new Promise<SearchResult[]>((resolve, reject) => {
        pnp.sp.search(q).then((response: SearchResults) => {

            resolve(response.PrimarySearchResults);
        });
    });
    return srPromise;
}

还有上面搜索的我的GET

     private getProjectItems() {

this.provider.GetSiteItemsByContentId(this.props.publicContentTypeId, this.props.projectSearchFieldStrings).then((items: Project[]) => {
  const i: Project[] = [];
  items.map((result: any) => {
    i.push(this.mapResultToProject(result, ProjectType.Public));
  });
  this.setState({
    listItems: this.state.listItems.concat(i)
  });
});

是否有可能,以及如何基于其父站点上的用户权限对列表项进行排序?

0 个答案:

没有答案