diff --git a/server/middleware/src/spaceSecurity.ts b/server/middleware/src/spaceSecurity.ts index b0e30744f4..7eb0a17580 100644 --- a/server/middleware/src/spaceSecurity.ts +++ b/server/middleware/src/spaceSecurity.ts @@ -106,19 +106,13 @@ export class SpaceSecurityMiddleware extends BaseMiddleware implements Middlewar private async initDomains (ctx: MeasureContext): Promise { const classesPerDomain: Record>[]> = {} - const skip = new Set>>() const classes = this.storage.hierarchy.getDescendants(core.class.Doc) for (const _class of classes) { - if (skip.has(_class)) continue - try { - const parent = this.storage.hierarchy.getParentClass(_class) - skip.add(parent) - const domain = this.storage.hierarchy.findDomain(parent) - if (domain === undefined) continue - classesPerDomain[domain] = classesPerDomain[domain] ?? [] - classesPerDomain[domain].push(parent) - this.storage.hierarchy.getDescendants(parent).forEach((p) => skip.add(p)) - } catch {} + const clazz = this.storage.hierarchy.getClass(_class) + if (clazz.domain === undefined) continue + const domain = clazz.domain + classesPerDomain[domain] = classesPerDomain[domain] ?? [] + classesPerDomain[domain].push(_class) } for (const domain in classesPerDomain) { for (const _class of classesPerDomain[domain]) {