oak-domain 3.0.1 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/actions/action.d.ts +16 -16
- package/lib/actions/action.js +17 -17
- package/lib/actions/relation.d.ts +5 -5
- package/lib/actions/relation.js +38 -38
- package/lib/base-app-domain/ActionAuth/Schema.d.ts +160 -160
- package/lib/base-app-domain/ActionAuth/Schema.js +2 -2
- package/lib/base-app-domain/ActionAuth/Storage.d.ts +3 -3
- package/lib/base-app-domain/ActionAuth/Storage.js +42 -42
- package/lib/base-app-domain/ActionDefDict.d.ts +9 -9
- package/lib/base-app-domain/ActionDefDict.js +11 -11
- package/lib/base-app-domain/EntityDict.d.ts +24 -24
- package/lib/base-app-domain/EntityDict.js +2 -2
- package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
- package/lib/base-app-domain/I18n/Schema.js +2 -2
- package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
- package/lib/base-app-domain/I18n/Storage.js +59 -59
- package/lib/base-app-domain/Modi/Action.d.ts +10 -10
- package/lib/base-app-domain/Modi/Action.js +14 -14
- package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
- package/lib/base-app-domain/Modi/Schema.js +2 -2
- package/lib/base-app-domain/Modi/Storage.d.ts +3 -3
- package/lib/base-app-domain/Modi/Storage.js +63 -63
- package/lib/base-app-domain/ModiEntity/Schema.d.ts +311 -311
- package/lib/base-app-domain/ModiEntity/Schema.js +2 -2
- package/lib/base-app-domain/ModiEntity/Storage.d.ts +3 -3
- package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
- package/lib/base-app-domain/Oper/Schema.d.ts +152 -152
- package/lib/base-app-domain/Oper/Schema.js +2 -2
- package/lib/base-app-domain/Oper/Storage.d.ts +3 -3
- package/lib/base-app-domain/Oper/Storage.js +38 -38
- package/lib/base-app-domain/OperEntity/Schema.d.ts +300 -300
- package/lib/base-app-domain/OperEntity/Schema.js +2 -2
- package/lib/base-app-domain/OperEntity/Storage.d.ts +3 -3
- package/lib/base-app-domain/OperEntity/Storage.js +30 -30
- package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
- package/lib/base-app-domain/Relation/Schema.js +2 -2
- package/lib/base-app-domain/Relation/Storage.d.ts +3 -3
- package/lib/base-app-domain/Relation/Storage.js +54 -54
- package/lib/base-app-domain/Relation.d.ts +10 -10
- package/lib/base-app-domain/Relation.js +10 -10
- package/lib/base-app-domain/RelationAuth/Schema.d.ts +180 -180
- package/lib/base-app-domain/RelationAuth/Schema.js +2 -2
- package/lib/base-app-domain/RelationAuth/Storage.d.ts +3 -3
- package/lib/base-app-domain/RelationAuth/Storage.js +46 -46
- package/lib/base-app-domain/Storage.d.ts +3 -3
- package/lib/base-app-domain/Storage.js +27 -27
- package/lib/base-app-domain/User/Action.d.ts +10 -10
- package/lib/base-app-domain/User/Action.js +12 -12
- package/lib/base-app-domain/User/Schema.d.ts +197 -197
- package/lib/base-app-domain/User/Schema.js +2 -2
- package/lib/base-app-domain/User/Storage.d.ts +3 -3
- package/lib/base-app-domain/User/Storage.js +33 -33
- package/lib/base-app-domain/UserEntityGrant/Action.d.ts +5 -5
- package/lib/base-app-domain/UserEntityGrant/Action.js +5 -5
- package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +157 -157
- package/lib/base-app-domain/UserEntityGrant/Schema.js +2 -2
- package/lib/base-app-domain/UserEntityGrant/Storage.d.ts +3 -3
- package/lib/base-app-domain/UserEntityGrant/Storage.js +29 -29
- package/lib/base-app-domain/UserRelation/Schema.d.ts +194 -194
- package/lib/base-app-domain/UserRelation/Schema.js +2 -2
- package/lib/base-app-domain/UserRelation/Storage.d.ts +3 -3
- package/lib/base-app-domain/UserRelation/Storage.js +56 -56
- package/lib/base-app-domain/_SubQuery.d.ts +112 -112
- package/lib/base-app-domain/_SubQuery.js +2 -2
- package/lib/base-app-domain/index.d.ts +4 -4
- package/lib/base-app-domain/index.js +7 -7
- package/lib/checkers/index.d.ts +5 -5
- package/lib/checkers/index.js +14 -14
- package/lib/compiler/env.d.ts +14 -14
- package/lib/compiler/env.js +50 -50
- package/lib/compiler/localeBuilder.d.ts +22 -22
- package/lib/compiler/localeBuilder.js +169 -169
- package/lib/compiler/schemalBuilder.d.ts +11 -11
- package/lib/compiler/schemalBuilder.js +3787 -3787
- package/lib/compiler/uiBuilder.d.ts +1 -1
- package/lib/compiler/uiBuilder.js +3 -3
- package/lib/entities/ActionAuth.d.ts +12 -12
- package/lib/entities/ActionAuth.js +29 -29
- package/lib/entities/I18n.d.ts +9 -9
- package/lib/entities/I18n.js +37 -37
- package/lib/entities/Modi.d.ts +11 -11
- package/lib/entities/Modi.js +49 -49
- package/lib/entities/ModiEntity.d.ts +8 -8
- package/lib/entities/ModiEntity.js +18 -18
- package/lib/entities/Oper.d.ts +11 -11
- package/lib/entities/Oper.js +21 -21
- package/lib/entities/OperEntity.d.ts +8 -8
- package/lib/entities/OperEntity.js +18 -18
- package/lib/entities/Relation.d.ts +8 -8
- package/lib/entities/Relation.js +35 -35
- package/lib/entities/RelationAuth.d.ts +8 -8
- package/lib/entities/RelationAuth.js +34 -34
- package/lib/entities/User.d.ts +8 -8
- package/lib/entities/User.js +31 -31
- package/lib/entities/UserEntityGrant.d.ts +8 -8
- package/lib/entities/UserEntityGrant.js +18 -18
- package/lib/entities/UserRelation.d.ts +10 -10
- package/lib/entities/UserRelation.js +38 -38
- package/lib/store/AsyncRowStore.d.ts +58 -58
- package/lib/store/AsyncRowStore.js +190 -190
- package/lib/store/CascadeStore.d.ts +103 -103
- package/lib/store/CascadeStore.js +2036 -2035
- package/lib/store/RelationAuth.d.ts +103 -103
- package/lib/store/RelationAuth.js +1492 -1492
- package/lib/store/SyncRowStore.d.ts +29 -29
- package/lib/store/SyncRowStore.js +49 -48
- package/lib/store/TriggerExecutor.d.ts +31 -31
- package/lib/store/TriggerExecutor.js +532 -532
- package/lib/store/actionAuth.d.ts +4 -4
- package/lib/store/actionAuth.js +40 -40
- package/lib/store/actionDef.d.ts +10 -10
- package/lib/store/actionDef.js +353 -351
- package/lib/store/checker.d.ts +26 -26
- package/lib/store/checker.js +623 -623
- package/lib/store/filter.d.ts +123 -123
- package/lib/store/filter.js +1761 -1761
- package/lib/store/modi.d.ts +13 -13
- package/lib/store/modi.js +315 -315
- package/lib/store/relation.d.ts +12 -12
- package/lib/store/relation.js +67 -67
- package/lib/timers/oper.d.ts +18 -18
- package/lib/timers/oper.js +60 -60
- package/lib/timers/vaccum.d.ts +20 -20
- package/lib/timers/vaccum.js +176 -176
- package/lib/triggers/index.d.ts +5 -5
- package/lib/triggers/index.js +8 -8
- package/lib/types/Action.d.ts +20 -20
- package/lib/types/Action.js +2 -2
- package/lib/types/AppLoader.d.ts +11 -11
- package/lib/types/AppLoader.js +10 -10
- package/lib/types/Aspect.d.ts +15 -13
- package/lib/types/Aspect.js +4 -4
- package/lib/types/Auth.d.ts +74 -74
- package/lib/types/Auth.js +2 -2
- package/lib/types/Connector.d.ts +34 -33
- package/lib/types/Connector.js +9 -9
- package/lib/types/Context.d.ts +7 -7
- package/lib/types/Context.js +3 -3
- package/lib/types/DataType.d.ts +24 -24
- package/lib/types/DataType.js +6 -6
- package/lib/types/Demand.d.ts +88 -88
- package/lib/types/Demand.js +10 -10
- package/lib/types/Endpoint.d.ts +11 -11
- package/lib/types/Endpoint.js +3 -3
- package/lib/types/Entity.d.ts +198 -193
- package/lib/types/Entity.js +15 -14
- package/lib/types/EntityDesc.d.ts +8 -8
- package/lib/types/EntityDesc.js +2 -2
- package/lib/types/Environment.d.ts +57 -57
- package/lib/types/Environment.js +2 -2
- package/lib/types/Exception.d.ts +120 -115
- package/lib/types/Exception.js +406 -389
- package/lib/types/Expression.d.ts +163 -163
- package/lib/types/Expression.js +427 -427
- package/lib/types/Geo.d.ts +18 -18
- package/lib/types/Geo.js +2 -2
- package/lib/types/Locale.d.ts +25 -25
- package/lib/types/Locale.js +2 -2
- package/lib/types/Logger.d.ts +6 -6
- package/lib/types/Logger.js +3 -3
- package/lib/types/Polyfill.d.ts +24 -24
- package/lib/types/Polyfill.js +2 -2
- package/lib/types/Port.d.ts +18 -18
- package/lib/types/Port.js +2 -2
- package/lib/types/RowStore.d.ts +18 -18
- package/lib/types/RowStore.js +34 -34
- package/lib/types/Storage.d.ts +57 -57
- package/lib/types/Storage.js +2 -2
- package/lib/types/Style.d.ts +11 -11
- package/lib/types/Style.js +2 -2
- package/lib/types/Timer.d.ts +14 -14
- package/lib/types/Timer.js +2 -2
- package/lib/types/Trigger.d.ts +108 -108
- package/lib/types/Trigger.js +54 -54
- package/lib/types/Txn.d.ts +2 -2
- package/lib/types/Txn.js +3 -3
- package/lib/types/Watcher.d.ts +19 -19
- package/lib/types/Watcher.js +4 -4
- package/lib/types/index.d.ts +24 -24
- package/lib/types/index.js +27 -27
- package/lib/types/schema/DataTypes.d.ts +34 -34
- package/lib/types/schema/DataTypes.js +3 -3
- package/lib/utils/SimpleConnector.d.ts +50 -48
- package/lib/utils/SimpleConnector.js +184 -180
- package/lib/utils/assert.d.ts +5 -5
- package/lib/utils/assert.js +9 -9
- package/lib/utils/concurrent.d.ts +15 -15
- package/lib/utils/concurrent.js +89 -89
- package/lib/utils/date.d.ts +1 -1
- package/lib/utils/date.js +18 -18
- package/lib/utils/geo.d.ts +4 -4
- package/lib/utils/geo.js +24 -24
- package/lib/utils/lodash.d.ts +20 -20
- package/lib/utils/lodash.js +55 -55
- package/lib/utils/mask.d.ts +5 -5
- package/lib/utils/mask.js +35 -35
- package/lib/utils/money.d.ts +6 -6
- package/lib/utils/money.js +40 -40
- package/lib/utils/random/random.d.ts +1 -1
- package/lib/utils/random/random.js +24 -24
- package/lib/utils/random/random.mp.d.ts +1 -1
- package/lib/utils/random/random.mp.js +25 -25
- package/lib/utils/random/random.web.d.ts +1 -1
- package/lib/utils/random/random.web.js +17 -17
- package/lib/utils/string.d.ts +28 -28
- package/lib/utils/string.js +82 -82
- package/lib/utils/url.d.ts +1 -1
- package/lib/utils/url.js +12 -12
- package/lib/utils/uuid.d.ts +17 -17
- package/lib/utils/uuid.js +257 -257
- package/lib/utils/validator.d.ts +25 -25
- package/lib/utils/validator.js +128 -128
- package/lib/utils/version.d.ts +7 -7
- package/lib/utils/version.js +21 -21
- package/package.json +49 -49
- package/src/entities/ActionAuth.ts +41 -41
- package/src/entities/I18n.ts +46 -46
- package/src/entities/Modi.ts +69 -69
- package/src/entities/ModiEntity.ts +26 -26
- package/src/entities/Oper.ts +32 -32
- package/src/entities/OperEntity.ts +27 -27
- package/src/entities/Relation.ts +43 -43
- package/src/entities/RelationAuth.ts +43 -43
- package/src/entities/User.ts +48 -48
- package/src/entities/UserEntityGrant.ts +27 -27
- package/src/entities/UserRelation.ts +50 -50
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
import { EntityDict } from "../base-app-domain";
|
|
2
|
-
import { StorageSchema } from "../types";
|
|
3
|
-
import { AuthCascadePath, EntityDict as BaseEntityDict, AuthDeduceRelationMap } from "../types/Entity";
|
|
4
|
-
import { AsyncContext } from "./AsyncRowStore";
|
|
5
|
-
import { SyncContext } from "./SyncRowStore";
|
|
6
|
-
export declare class RelationAuth<ED extends EntityDict & BaseEntityDict> {
|
|
7
|
-
private actionCascadePathGraph;
|
|
8
|
-
private relationCascadePathGraph;
|
|
9
|
-
private authDeduceRelationMap;
|
|
10
|
-
private schema;
|
|
11
|
-
static SPECIAL_ENTITIES: string[];
|
|
12
|
-
private selectFreeEntities;
|
|
13
|
-
private createFreeEntities;
|
|
14
|
-
private updateFreeEntities;
|
|
15
|
-
constructor(schema: StorageSchema<ED>, actionCascadePathGraph: AuthCascadePath<ED>[], relationCascadePathGraph: AuthCascadePath<ED>[], authDeduceRelationMap: AuthDeduceRelationMap<ED>, selectFreeEntities?: (keyof ED)[], createFreeEntities?: (keyof ED)[], updateFreeEntities?: (keyof ED)[]);
|
|
16
|
-
checkRelationSync<T extends keyof ED, Cxt extends SyncContext<ED>>(entity: T, operation: Omit<ED[T]['Operation'] | ED[T]['Selection'], 'id'>, context: Cxt): void;
|
|
17
|
-
/**
|
|
18
|
-
* 查询当前用户在对应entity上可以操作的relationIds
|
|
19
|
-
* @param entity
|
|
20
|
-
* @param entityId
|
|
21
|
-
* @param context
|
|
22
|
-
* @returns
|
|
23
|
-
*/
|
|
24
|
-
private getGrantedRelationIds;
|
|
25
|
-
checkRelationAsync<T extends keyof ED, Cxt extends AsyncContext<ED>>(entity: T, operation: Omit<ED[T]['Operation'] | ED[T]['Selection'], 'id'>, context: Cxt): Promise<void>;
|
|
26
|
-
private checkOperateSpecialEntities2;
|
|
27
|
-
private getDeducedEntityFilters;
|
|
28
|
-
/**
|
|
29
|
-
* 对于selection,解构出最底层的对象,如果最底层的对象可以被访问,则父对象一定可以
|
|
30
|
-
* 但对于deduce的子对象,不必再向底层查看(假设deduce对象一般都位于树的最底层附近)
|
|
31
|
-
* @param entity
|
|
32
|
-
* @param operation
|
|
33
|
-
*/
|
|
34
|
-
private destructSelection;
|
|
35
|
-
/**
|
|
36
|
-
* 对于operation,解构出一个树形结构,以方便自顶向下的进行访问
|
|
37
|
-
* 但对于deduce的子对象,不必再向底层查看
|
|
38
|
-
* @param entity
|
|
39
|
-
* @param selection
|
|
40
|
-
*/
|
|
41
|
-
private destructOperation;
|
|
42
|
-
/**
|
|
43
|
-
* 对所有满足操作要求的actionAuth加以判断,找到可以满足当前用户身份的actionAuth
|
|
44
|
-
* @param entity
|
|
45
|
-
* @param filter
|
|
46
|
-
* @param actionAuths
|
|
47
|
-
* @param context
|
|
48
|
-
* @return
|
|
49
|
-
*/
|
|
50
|
-
private filterActionAuths;
|
|
51
|
-
/**
|
|
52
|
-
* 对于有些特殊的查询(带很多$or的查询,多发生在系统级别),单个actionAuth无法满足,需要共同加以判定
|
|
53
|
-
* @param entity
|
|
54
|
-
* @param filter
|
|
55
|
-
* @param actionAuths
|
|
56
|
-
* @param context
|
|
57
|
-
* @param actions
|
|
58
|
-
*/
|
|
59
|
-
private checkActionAuthInGroup;
|
|
60
|
-
private checkSelection;
|
|
61
|
-
/**
|
|
62
|
-
* 此函数判定一个结点是否能通过权限检测,同时寻找该结点本身对象上成立的actionAuth,用于本结点子孙结点的快速检测
|
|
63
|
-
* 如果结点因其deduce的对象通过了检测,其被推断对象的actionAuth无法用于更低对象的权限检测
|
|
64
|
-
* @param node
|
|
65
|
-
* @param context
|
|
66
|
-
* @returns
|
|
67
|
-
*/
|
|
68
|
-
private findActionAuthsOnNode;
|
|
69
|
-
private checkOperationTree2;
|
|
70
|
-
private checkOperation;
|
|
71
|
-
/**
|
|
72
|
-
* 检查一个operation是否能被通过权限测试
|
|
73
|
-
* 一个cascadeOperation是一棵树形结构:
|
|
74
|
-
* * 对于select,只要叶子通过其父结点必然通过;
|
|
75
|
-
* * 对于update,自顶向下进行检查,若父亲被权限S通过,则只需要检查子对于S有没有相对路径上的actionAuth
|
|
76
|
-
* 另外在update中,还需要考虑自建userRelation的case(例如在电子商务网站上购买商品,创建订单同时创建用户和订单的关系)
|
|
77
|
-
* @param entity
|
|
78
|
-
* @param operation
|
|
79
|
-
* @param context
|
|
80
|
-
* @param actions
|
|
81
|
-
* @returns
|
|
82
|
-
*/
|
|
83
|
-
private checkActions2;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* 获取有对entity进行actions操作权限的userRelation关系
|
|
87
|
-
* @param params
|
|
88
|
-
* @param context
|
|
89
|
-
* todo paths改成复数以后这里还未充分测试过
|
|
90
|
-
*/
|
|
91
|
-
export declare function getUserRelationsByActions<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>>(params: {
|
|
92
|
-
entity: T;
|
|
93
|
-
filter: ED[T]['Selection']['filter'];
|
|
94
|
-
actions: ED[T]['Action'][];
|
|
95
|
-
overlap?: boolean;
|
|
96
|
-
}, context: Cxt): Promise<{
|
|
97
|
-
userRelations: ED["userRelation"]["Schema"][];
|
|
98
|
-
userEntities: Promise<{
|
|
99
|
-
entity: keyof ED;
|
|
100
|
-
entityId: string;
|
|
101
|
-
userId: string;
|
|
102
|
-
}[]>[];
|
|
103
|
-
}>;
|
|
1
|
+
import { EntityDict } from "../base-app-domain";
|
|
2
|
+
import { StorageSchema } from "../types";
|
|
3
|
+
import { AuthCascadePath, EntityDict as BaseEntityDict, AuthDeduceRelationMap } from "../types/Entity";
|
|
4
|
+
import { AsyncContext } from "./AsyncRowStore";
|
|
5
|
+
import { SyncContext } from "./SyncRowStore";
|
|
6
|
+
export declare class RelationAuth<ED extends EntityDict & BaseEntityDict> {
|
|
7
|
+
private actionCascadePathGraph;
|
|
8
|
+
private relationCascadePathGraph;
|
|
9
|
+
private authDeduceRelationMap;
|
|
10
|
+
private schema;
|
|
11
|
+
static SPECIAL_ENTITIES: string[];
|
|
12
|
+
private selectFreeEntities;
|
|
13
|
+
private createFreeEntities;
|
|
14
|
+
private updateFreeEntities;
|
|
15
|
+
constructor(schema: StorageSchema<ED>, actionCascadePathGraph: AuthCascadePath<ED>[], relationCascadePathGraph: AuthCascadePath<ED>[], authDeduceRelationMap: AuthDeduceRelationMap<ED>, selectFreeEntities?: (keyof ED)[], createFreeEntities?: (keyof ED)[], updateFreeEntities?: (keyof ED)[]);
|
|
16
|
+
checkRelationSync<T extends keyof ED, Cxt extends SyncContext<ED>>(entity: T, operation: Omit<ED[T]['Operation'] | ED[T]['Selection'], 'id'>, context: Cxt): void;
|
|
17
|
+
/**
|
|
18
|
+
* 查询当前用户在对应entity上可以操作的relationIds
|
|
19
|
+
* @param entity
|
|
20
|
+
* @param entityId
|
|
21
|
+
* @param context
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
private getGrantedRelationIds;
|
|
25
|
+
checkRelationAsync<T extends keyof ED, Cxt extends AsyncContext<ED>>(entity: T, operation: Omit<ED[T]['Operation'] | ED[T]['Selection'], 'id'>, context: Cxt): Promise<void>;
|
|
26
|
+
private checkOperateSpecialEntities2;
|
|
27
|
+
private getDeducedEntityFilters;
|
|
28
|
+
/**
|
|
29
|
+
* 对于selection,解构出最底层的对象,如果最底层的对象可以被访问,则父对象一定可以
|
|
30
|
+
* 但对于deduce的子对象,不必再向底层查看(假设deduce对象一般都位于树的最底层附近)
|
|
31
|
+
* @param entity
|
|
32
|
+
* @param operation
|
|
33
|
+
*/
|
|
34
|
+
private destructSelection;
|
|
35
|
+
/**
|
|
36
|
+
* 对于operation,解构出一个树形结构,以方便自顶向下的进行访问
|
|
37
|
+
* 但对于deduce的子对象,不必再向底层查看
|
|
38
|
+
* @param entity
|
|
39
|
+
* @param selection
|
|
40
|
+
*/
|
|
41
|
+
private destructOperation;
|
|
42
|
+
/**
|
|
43
|
+
* 对所有满足操作要求的actionAuth加以判断,找到可以满足当前用户身份的actionAuth
|
|
44
|
+
* @param entity
|
|
45
|
+
* @param filter
|
|
46
|
+
* @param actionAuths
|
|
47
|
+
* @param context
|
|
48
|
+
* @return
|
|
49
|
+
*/
|
|
50
|
+
private filterActionAuths;
|
|
51
|
+
/**
|
|
52
|
+
* 对于有些特殊的查询(带很多$or的查询,多发生在系统级别),单个actionAuth无法满足,需要共同加以判定
|
|
53
|
+
* @param entity
|
|
54
|
+
* @param filter
|
|
55
|
+
* @param actionAuths
|
|
56
|
+
* @param context
|
|
57
|
+
* @param actions
|
|
58
|
+
*/
|
|
59
|
+
private checkActionAuthInGroup;
|
|
60
|
+
private checkSelection;
|
|
61
|
+
/**
|
|
62
|
+
* 此函数判定一个结点是否能通过权限检测,同时寻找该结点本身对象上成立的actionAuth,用于本结点子孙结点的快速检测
|
|
63
|
+
* 如果结点因其deduce的对象通过了检测,其被推断对象的actionAuth无法用于更低对象的权限检测
|
|
64
|
+
* @param node
|
|
65
|
+
* @param context
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
private findActionAuthsOnNode;
|
|
69
|
+
private checkOperationTree2;
|
|
70
|
+
private checkOperation;
|
|
71
|
+
/**
|
|
72
|
+
* 检查一个operation是否能被通过权限测试
|
|
73
|
+
* 一个cascadeOperation是一棵树形结构:
|
|
74
|
+
* * 对于select,只要叶子通过其父结点必然通过;
|
|
75
|
+
* * 对于update,自顶向下进行检查,若父亲被权限S通过,则只需要检查子对于S有没有相对路径上的actionAuth
|
|
76
|
+
* 另外在update中,还需要考虑自建userRelation的case(例如在电子商务网站上购买商品,创建订单同时创建用户和订单的关系)
|
|
77
|
+
* @param entity
|
|
78
|
+
* @param operation
|
|
79
|
+
* @param context
|
|
80
|
+
* @param actions
|
|
81
|
+
* @returns
|
|
82
|
+
*/
|
|
83
|
+
private checkActions2;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 获取有对entity进行actions操作权限的userRelation关系
|
|
87
|
+
* @param params
|
|
88
|
+
* @param context
|
|
89
|
+
* todo paths改成复数以后这里还未充分测试过
|
|
90
|
+
*/
|
|
91
|
+
export declare function getUserRelationsByActions<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>>(params: {
|
|
92
|
+
entity: T;
|
|
93
|
+
filter: ED[T]['Selection']['filter'];
|
|
94
|
+
actions: ED[T]['Action'][];
|
|
95
|
+
overlap?: boolean;
|
|
96
|
+
}, context: Cxt): Promise<{
|
|
97
|
+
userRelations: ED["userRelation"]["Schema"][];
|
|
98
|
+
userEntities: Promise<{
|
|
99
|
+
entity: keyof ED;
|
|
100
|
+
entityId: string;
|
|
101
|
+
userId: string;
|
|
102
|
+
}[]>[];
|
|
103
|
+
}>;
|