瀏覽代碼

refactor: add type safety and error handling to filterPagesByViewer method

Shun Miyazawa 9 月之前
父節點
當前提交
d1138f8f22
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      apps/app/src/server/service/search-delegator/elasticsearch.ts

+ 5 - 1
apps/app/src/server/service/search-delegator/elasticsearch.ts

@@ -756,12 +756,16 @@ class ElasticsearchDelegator implements SearchDelegator<Data, ESTermsKey, ESQuer
     }
   }
 
-  async filterPagesByViewer(query, user, userGroups): Promise<void> {
+  async filterPagesByViewer(query: SearchQuery, user, userGroups): Promise<void> {
     const showPagesRestrictedByOwner = !configManager.getConfig('security:list-policy:hideRestrictedByOwner');
     const showPagesRestrictedByGroup = !configManager.getConfig('security:list-policy:hideRestrictedByGroup');
 
     query = this.initializeBoolQuery(query); // eslint-disable-line no-param-reassign
 
+    if (query.body?.query?.bool?.filter == null || !Array.isArray(query.body?.query?.bool?.filter)) {
+      throw new Error('query.body.query.bool is not initialized');
+    }
+
     const Page = mongoose.model('Page') as unknown as PageModel;
     const {
       GRANT_PUBLIC, GRANT_SPECIFIED, GRANT_OWNER, GRANT_USER_GROUP,