fix: authorized search engine to obey query page limit
Signed-off-by: Heikki Hellgren <heikki.hellgren@op.fi>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-search-backend': patch
|
||||
---
|
||||
|
||||
Authorized search engine now obeys query page limit
|
||||
@@ -18,12 +18,12 @@ import { compact, zipObject } from 'lodash';
|
||||
import qs from 'qs';
|
||||
import DataLoader from 'dataloader';
|
||||
import {
|
||||
EvaluatePermissionResponse,
|
||||
EvaluatePermissionRequest,
|
||||
AuthorizePermissionRequest,
|
||||
AuthorizeResult,
|
||||
EvaluatePermissionRequest,
|
||||
EvaluatePermissionResponse,
|
||||
isResourcePermission,
|
||||
PermissionEvaluator,
|
||||
AuthorizePermissionRequest,
|
||||
QueryPermissionRequest,
|
||||
} from '@backstage/plugin-permission-common';
|
||||
import {
|
||||
@@ -63,7 +63,6 @@ export function encodePageCursor({ page }: { page: number }): string {
|
||||
}
|
||||
|
||||
export class AuthorizedSearchEngine implements SearchEngine {
|
||||
private readonly pageSize = 25;
|
||||
private readonly queryLatencyBudgetMs: number;
|
||||
|
||||
constructor(
|
||||
@@ -162,8 +161,9 @@ export class AuthorizedSearchEngine implements SearchEngine {
|
||||
);
|
||||
}
|
||||
|
||||
const pageSize = query.pageLimit || 25;
|
||||
const { page } = decodePageCursor(query.pageCursor);
|
||||
const targetResults = (page + 1) * this.pageSize;
|
||||
const targetResults = (page + 1) * pageSize;
|
||||
|
||||
let filteredResults: IndexableResult[] = [];
|
||||
let nextPageCursor: string | undefined;
|
||||
@@ -190,12 +190,12 @@ export class AuthorizedSearchEngine implements SearchEngine {
|
||||
|
||||
return {
|
||||
results: filteredResults
|
||||
.slice(page * this.pageSize, (page + 1) * this.pageSize)
|
||||
.slice(page * pageSize, (page + 1) * pageSize)
|
||||
.map((result, index) => {
|
||||
// Overwrite any/all rank entries to avoid leaking knowledge of filtered results.
|
||||
return {
|
||||
...result,
|
||||
rank: page * this.pageSize + index + 1,
|
||||
rank: page * pageSize + index + 1,
|
||||
};
|
||||
}),
|
||||
previousPageCursor:
|
||||
|
||||
Reference in New Issue
Block a user