Yuki Takei 2 лет назад
Родитель
Сommit
dced173cee

+ 3 - 3
apps/app/src/server/service/page-grant.ts

@@ -10,12 +10,12 @@ import mongoose from 'mongoose';
 
 import ExternalUserGroup from '~/features/external-user-group/server/models/external-user-group';
 import ExternalUserGroupRelation from '~/features/external-user-group/server/models/external-user-group-relation';
-import { IRecordApplicableGrant, PopulatedGrantedGroup } from '~/interfaces/page-grant';
-import { PageDocument, PageModel } from '~/server/models/page';
+import type { IRecordApplicableGrant, PopulatedGrantedGroup } from '~/interfaces/page-grant';
+import type { PageDocument, PageModel } from '~/server/models/page';
 import UserGroup from '~/server/models/user-group';
 import { includesObjectIds, excludeTestIdsFromTargetIds, hasIntersection } from '~/server/util/compare-objectId';
 
-import { ObjectIdLike } from '../interfaces/mongoose-utils';
+import type { ObjectIdLike } from '../interfaces/mongoose-utils';
 import UserGroupRelation from '../models/user-group-relation';
 import { divideByType } from '../util/granted-group';
 

+ 6 - 2
apps/app/src/server/service/page/index.ts

@@ -3751,7 +3751,7 @@ class PageService implements IPageService {
     }
 
     // Values
-    const path = this.crowi.xss.process(_path); // sanitize path
+    const path: string = this.crowi.xss.process(_path); // sanitize path
 
     // Retrieve closest ancestor document
     const Page = mongoose.model<PageDocument, PageModel>('Page');
@@ -3761,7 +3761,11 @@ class PageService implements IPageService {
     const grant = options.grant ?? closestAncestor?.grant ?? PageGrant.GRANT_PUBLIC;
     const grantedUserIds = grant === PageGrant.GRANT_OWNER ? [user._id] : undefined;
     const grantUserGroupIds = options.grantUserGroupIds
-      ?? await this.pageGrantService.getUserRelatedGrantedGroups(closestAncestor, user);
+      ?? (
+        closestAncestor != null
+          ? await this.pageGrantService.getUserRelatedGrantedGroups(closestAncestor, user)
+          : undefined
+      );
     const grantData = {
       grant,
       grantedUserIds,