Shun Miyazawa 1 năm trước cách đây
mục cha
commit
f2ee61cdad
1 tập tin đã thay đổi với 33 bổ sung11 xóa
  1. 33 11
      apps/app/src/features/openai/server/services/openai.ts

+ 33 - 11
apps/app/src/features/openai/server/services/openai.ts

@@ -429,10 +429,22 @@ class OpenaiService implements IOpenaiService {
   ): Promise<mongoose.FilterQuery<PageDocument>> {
     const converterdPagePatgPatterns = convertPathPatternsToRegExp(pagePathPatterns);
 
+    // “Anyone with the link” If the page is specified directly, it is subject to learning
+    const nonGrabPagePathPatterns = pagePathPatterns.filter(pagePathPattern => !isGrobPatternPath(pagePathPattern));
+    const baseCondition: mongoose.FilterQuery<PageDocument> = {
+      grant: PageGrant.GRANT_RESTRICTED,
+      path: nonGrabPagePathPatterns,
+    };
+
     if (accessScope === AiAssistantAccessScope.PUBLIC_ONLY) {
       return {
-        grant: PageGrant.GRANT_PUBLIC,
-        path: { $in: converterdPagePatgPatterns },
+        $or: [
+          baseCondition,
+          {
+            grant: PageGrant.GRANT_PUBLIC,
+            path: { $in: converterdPagePatgPatterns },
+          },
+        ],
       };
     }
 
@@ -454,11 +466,16 @@ class OpenaiService implements IOpenaiService {
       }
 
       return {
-        grant: { $in: [PageGrant.GRANT_PUBLIC, PageGrant.GRANT_USER_GROUP] },
-        path: { $in: converterdPagePatgPatterns },
         $or: [
-          { 'grantedGroups.item': { $in: extractedGrantedGroupIds } },
-          { grant: PageGrant.GRANT_PUBLIC },
+          baseCondition,
+          {
+            grant: { $in: [PageGrant.GRANT_PUBLIC, PageGrant.GRANT_USER_GROUP] },
+            path: { $in: converterdPagePatgPatterns },
+            $or: [
+              { 'grantedGroups.item': { $in: extractedGrantedGroupIds } },
+              { grant: PageGrant.GRANT_PUBLIC },
+            ],
+          },
         ],
       };
     }
@@ -470,12 +487,17 @@ class OpenaiService implements IOpenaiService {
       ].map(group => group.toString());
 
       return {
-        grant: { $in: [PageGrant.GRANT_PUBLIC, PageGrant.GRANT_USER_GROUP, PageGrant.GRANT_OWNER] },
-        path: { $in: converterdPagePatgPatterns },
         $or: [
-          { 'grantedGroups.item': { $in: ownerUserGroup } },
-          { grantedUsers: { $in: [getIdForRef(owner)] } },
-          { grant: PageGrant.GRANT_PUBLIC },
+          baseCondition,
+          {
+            grant: { $in: [PageGrant.GRANT_PUBLIC, PageGrant.GRANT_USER_GROUP, PageGrant.GRANT_OWNER] },
+            path: { $in: converterdPagePatgPatterns },
+            $or: [
+              { 'grantedGroups.item': { $in: ownerUserGroup } },
+              { grantedUsers: { $in: [getIdForRef(owner)] } },
+              { grant: PageGrant.GRANT_PUBLIC },
+            ],
+          },
         ],
       };
     }