我有一个搜索功能,可以根据列表项的内容类型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)
});
});
是否有可能,以及如何基于其父站点上的用户权限对列表项进行排序?