Search Query Builder получает список элементов на основе разрешений в SharePoint Online - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть функция поиска, которая выполняет поиск элементов списка на основе их идентификатора типа контента.Возвращает ВСЕ элементы, в том числе с сайта, к которому у пользователя НЕТ доступа.Это то, что я хочу.НО я хочу отсортировать эти данные (элементы списка), основываясь на том, пришли ли они с сайта, где текущий пользователь имеет разрешение на просмотр или нет.Пример:

Список 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)
  });
});

Возможно ли и как сортировать элементы списка, основываясь на разрешениях пользователя на их родительском сайте?

...