mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-09-02 14:49:44 +08:00
feat(server): entitlement based model (#14996)
#### PR Dependency Tree * **PR #14996** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Admin mutations to grant/revoke commercial entitlements. * New Doc comment-update permission. * Realtime user/workspace quota-state endpoints and live-update rooms. * **Bug Fixes** * More accurate readable-doc filtering and permission evaluation. * **Refactor** * Workspace feature management moved to entitlement-based model; permission and quota pipelines redesigned. * Admin workspace UI now edits flags only (feature toggles removed). * **Tests** * Extensive new and updated tests for permissions, entitlements, quota, projection, and backfills. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/toeverything/AFFiNE/pull/14996?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -497,8 +497,13 @@ export class IndexerService {
|
||||
keyword: string,
|
||||
options?: {
|
||||
limit?: number;
|
||||
docIds?: string[];
|
||||
}
|
||||
): Promise<SearchDoc[]> {
|
||||
if (options?.docIds?.length === 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const limit = options?.limit ?? 20;
|
||||
const result = await this.aggregate({
|
||||
table: SearchTable.block,
|
||||
@@ -512,6 +517,19 @@ export class IndexerService {
|
||||
field: 'workspaceId',
|
||||
match: workspaceId,
|
||||
},
|
||||
...(options?.docIds
|
||||
? [
|
||||
{
|
||||
type: SearchQueryType.boolean,
|
||||
occur: SearchQueryOccur.should,
|
||||
queries: options.docIds.map(docId => ({
|
||||
type: SearchQueryType.match,
|
||||
field: 'docId',
|
||||
match: docId,
|
||||
})),
|
||||
},
|
||||
]
|
||||
: []),
|
||||
{
|
||||
type: SearchQueryType.boolean,
|
||||
occur: SearchQueryOccur.must,
|
||||
|
||||
Reference in New Issue
Block a user