@venizia/ignis 0.0.9-14 → 0.0.9-15
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/dist/base/repositories/core/readable.d.ts.map +1 -1
- package/dist/base/repositories/core/readable.js +16 -4
- package/dist/base/repositories/core/readable.js.map +1 -1
- package/dist/components/auth/authorize/adapters/base-filtered.d.ts +26 -56
- package/dist/components/auth/authorize/adapters/base-filtered.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/base-filtered.js +23 -70
- package/dist/components/auth/authorize/adapters/base-filtered.js.map +1 -1
- package/dist/components/auth/authorize/adapters/index.d.ts +2 -1
- package/dist/components/auth/authorize/adapters/index.d.ts.map +1 -1
- package/dist/components/auth/authorize/adapters/index.js +2 -1
- package/dist/components/auth/authorize/adapters/index.js.map +1 -1
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts +131 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js +293 -0
- package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js.map +1 -0
- package/dist/components/auth/authorize/adapters/types.d.ts +31 -0
- package/dist/components/auth/authorize/adapters/types.d.ts.map +1 -0
- package/dist/components/auth/authorize/adapters/types.js +3 -0
- package/dist/components/auth/authorize/adapters/types.js.map +1 -0
- package/dist/components/auth/authorize/common/constants.d.ts +127 -12
- package/dist/components/auth/authorize/common/constants.d.ts.map +1 -1
- package/dist/components/auth/authorize/common/constants.js +139 -16
- package/dist/components/auth/authorize/common/constants.js.map +1 -1
- package/dist/components/auth/authorize/common/index.d.ts +2 -0
- package/dist/components/auth/authorize/common/index.d.ts.map +1 -1
- package/dist/components/auth/authorize/common/index.js +2 -0
- package/dist/components/auth/authorize/common/index.js.map +1 -1
- package/dist/components/auth/authorize/common/object-match.d.ts +21 -0
- package/dist/components/auth/authorize/common/object-match.d.ts.map +1 -0
- package/dist/components/auth/authorize/common/object-match.js +33 -0
- package/dist/components/auth/authorize/common/object-match.js.map +1 -0
- package/dist/components/auth/authorize/common/resolve-request-domain.d.ts +20 -0
- package/dist/components/auth/authorize/common/resolve-request-domain.d.ts.map +1 -0
- package/dist/components/auth/authorize/common/resolve-request-domain.js +59 -0
- package/dist/components/auth/authorize/common/resolve-request-domain.js.map +1 -0
- package/dist/components/auth/authorize/common/types.d.ts +65 -22
- package/dist/components/auth/authorize/common/types.d.ts.map +1 -1
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts +119 -30
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts.map +1 -1
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.js +302 -168
- package/dist/components/auth/authorize/enforcers/casbin.enforcer.js.map +1 -1
- package/dist/components/auth/authorize/enforcers/enforcer-registry.d.ts +19 -1
- package/dist/components/auth/authorize/enforcers/enforcer-registry.d.ts.map +1 -1
- package/dist/components/auth/authorize/enforcers/enforcer-registry.js +23 -0
- package/dist/components/auth/authorize/enforcers/enforcer-registry.js.map +1 -1
- package/dist/components/auth/authorize/enforcers/index.d.ts +1 -0
- package/dist/components/auth/authorize/enforcers/index.d.ts.map +1 -1
- package/dist/components/auth/authorize/enforcers/index.js +1 -0
- package/dist/components/auth/authorize/enforcers/index.js.map +1 -1
- package/dist/components/auth/authorize/enforcers/models/index.d.ts +2 -0
- package/dist/components/auth/authorize/enforcers/models/index.d.ts.map +1 -0
- package/dist/components/auth/authorize/{models/abilities → enforcers/models}/index.js +1 -2
- package/dist/components/auth/authorize/enforcers/models/index.js.map +1 -0
- package/dist/components/auth/authorize/enforcers/models/rbac-domain.model.d.ts +32 -0
- package/dist/components/auth/authorize/enforcers/models/rbac-domain.model.d.ts.map +1 -0
- package/dist/components/auth/authorize/enforcers/models/rbac-domain.model.js +54 -0
- package/dist/components/auth/authorize/enforcers/models/rbac-domain.model.js.map +1 -0
- package/dist/components/auth/authorize/models/index.d.ts +0 -1
- package/dist/components/auth/authorize/models/index.d.ts.map +1 -1
- package/dist/components/auth/authorize/models/index.js +0 -1
- package/dist/components/auth/authorize/models/index.js.map +1 -1
- package/dist/components/auth/authorize/providers/authorization.provider.d.ts.map +1 -1
- package/dist/components/auth/authorize/providers/authorization.provider.js +12 -0
- package/dist/components/auth/authorize/providers/authorization.provider.js.map +1 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts.map +1 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js +1 -1
- package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js.map +1 -1
- package/package.json +3 -3
- package/dist/components/auth/authorize/adapters/drizzle-casbin.d.ts +0 -46
- package/dist/components/auth/authorize/adapters/drizzle-casbin.d.ts.map +0 -1
- package/dist/components/auth/authorize/adapters/drizzle-casbin.js +0 -104
- package/dist/components/auth/authorize/adapters/drizzle-casbin.js.map +0 -1
- package/dist/components/auth/authorize/models/abilities/index.d.ts +0 -3
- package/dist/components/auth/authorize/models/abilities/index.d.ts.map +0 -1
- package/dist/components/auth/authorize/models/abilities/index.js.map +0 -1
- package/dist/components/auth/authorize/models/abilities/string-action.model.d.ts +0 -14
- package/dist/components/auth/authorize/models/abilities/string-action.model.d.ts.map +0 -1
- package/dist/components/auth/authorize/models/abilities/string-action.model.js +0 -23
- package/dist/components/auth/authorize/models/abilities/string-action.model.js.map +0 -1
- package/dist/components/auth/authorize/models/abilities/string-resource.model.d.ts +0 -13
- package/dist/components/auth/authorize/models/abilities/string-resource.model.d.ts.map +0 -1
- package/dist/components/auth/authorize/models/abilities/string-resource.model.js +0 -19
- package/dist/components/auth/authorize/models/abilities/string-resource.model.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/core/readable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAY,MAAM,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAEL,aAAa,EAEb,MAAM,EACN,UAAU,EACV,OAAO,EACP,MAAM,EACP,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,2DAA2D;AAC3D,qBAAa,kBAAkB,CAC7B,YAAY,SAAS,kBAAkB,GAAG,kBAAkB,EAC5D,UAAU,SAAS,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,EAC1E,aAAa,SAAS,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,EAC7E,YAAY,SAAS,aAAa,GAAG,aAAa,CAClD,SAAQ,kBAAkB,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC;gBACrE,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;KAAE;IAMvF,mFAAmF;IACnF,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO;IAU7D,iFAAiF;cACjE,eAAe,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,EAAE;QACpD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,YAAY,CAAC;KACxB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA6DrB,yFAAyF;cACzE,gBAAgB,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,EAAE;QACrD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,YAAY,CAAC;KACxB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAKZ,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,EAAE;QAClC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,EAAE,YAAY,GAAG;YAAE,gBAAgB,EAAE,IAAI,CAAA;SAAE,CAAC;KACpD,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IAEzC,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,EAAE;QAClC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,YAAY,GAAG;YAAE,gBAAgB,CAAC,EAAE,KAAK,CAAA;SAAE,CAAC;KACvD,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"readable.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/core/readable.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,10 +101,22 @@ class ReadableRepository extends abstract_1.AbstractRepository {
|
|
|
101
101
|
if (!shouldQueryRange) {
|
|
102
102
|
return dataPromise;
|
|
103
103
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
// Inside a transaction the connector wraps a single pg client; firing the
|
|
105
|
+
// data + count queries concurrently makes node-postgres call client.query()
|
|
106
|
+
// while the client is still busy, which triggers the pg deprecation warning
|
|
107
|
+
// ("Calling client.query() when the client is already executing a query").
|
|
108
|
+
// The pool-backed connector hands out a separate client per query, so only
|
|
109
|
+
// the non-transaction path is safe to parallelize.
|
|
110
|
+
const countPromise = () => this.count({ where: mergedFilter.where ?? {}, options: effectiveOptions });
|
|
111
|
+
let data;
|
|
112
|
+
let total;
|
|
113
|
+
if (effectiveOptions.transaction) {
|
|
114
|
+
data = await dataPromise;
|
|
115
|
+
({ count: total } = await countPromise());
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
[data, { count: total }] = await Promise.all([dataPromise, countPromise()]);
|
|
119
|
+
}
|
|
108
120
|
// Build range following HTTP Content-Range standard (inclusive end index)
|
|
109
121
|
const start = mergedFilter.skip ?? mergedFilter.offset ?? 0;
|
|
110
122
|
const end = data.length > 0 ? start + data.length - 1 : start;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readable.js","sourceRoot":"","sources":["../../../../src/base/repositories/core/readable.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"readable.js","sourceRoot":"","sources":["../../../../src/base/repositories/core/readable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,73 +1,43 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IdType } from '../../../../base';
|
|
2
|
+
import { IDataSource, TAnyConnector } from '../../../../base/datasources';
|
|
3
|
+
import { BaseHelper } from '@venizia/ignis-helpers';
|
|
2
4
|
import { type FilteredAdapter, type Model } from 'casbin';
|
|
3
|
-
|
|
4
|
-
role: {
|
|
5
|
-
principalType: string;
|
|
6
|
-
};
|
|
7
|
-
domain?: {
|
|
8
|
-
principalType: string;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
5
|
+
/** Filter passed to loadFilteredPolicy: which principal's policies to load. */
|
|
11
6
|
export interface ICasbinPolicyFilter {
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
principal: {
|
|
8
|
+
type: string;
|
|
9
|
+
id: IdType;
|
|
10
|
+
};
|
|
14
11
|
}
|
|
15
12
|
/**
|
|
16
|
-
*
|
|
13
|
+
* Read-only base for casbin FilteredAdapters backed by a datasource.
|
|
17
14
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
15
|
+
* It owns the boilerplate every filtered adapter repeats — the datasource/connector plumbing, the
|
|
16
|
+
* `isFiltered() === true` flag, the no-op write methods (read-only), and a `loadLines` helper — so a
|
|
17
|
+
* subclass only implements {@link loadFilteredPolicy}: query the store for ONE principal's policies
|
|
18
|
+
* and turn them into casbin lines.
|
|
19
|
+
*
|
|
20
|
+
* `TFilter` is the filter shape (defaults to {@link ICasbinPolicyFilter}); subclasses may narrow it.
|
|
20
21
|
*/
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
code: string;
|
|
24
|
-
action: string | null;
|
|
25
|
-
subjectType: string;
|
|
26
|
-
subjectId: string | number;
|
|
27
|
-
effect: string | null;
|
|
28
|
-
domain: string | null;
|
|
29
|
-
};
|
|
30
|
-
export declare abstract class BaseFilteredAdapter<TEntities extends IBaseFilteredAdapterEntities = IBaseFilteredAdapterEntities, TFilter = ICasbinPolicyFilter, TPolicyRow extends TBasePolicyRow = TBasePolicyRow> extends BaseHelper implements FilteredAdapter {
|
|
31
|
-
protected readonly entities: TEntities;
|
|
22
|
+
export declare abstract class BaseFilteredAdapter<TFilter = ICasbinPolicyFilter> extends BaseHelper implements FilteredAdapter {
|
|
23
|
+
protected readonly dataSource: IDataSource;
|
|
32
24
|
constructor(opts: {
|
|
33
25
|
scope: string;
|
|
34
|
-
|
|
26
|
+
dataSource: IDataSource;
|
|
35
27
|
});
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
protected get connector(): TAnyConnector;
|
|
29
|
+
/** Load ONLY the policies matching `filter` into `model` (the store is read for one principal). */
|
|
30
|
+
abstract loadFilteredPolicy(model: Model, filter: TFilter): Promise<void>;
|
|
38
31
|
isFiltered(): boolean;
|
|
32
|
+
loadPolicy(): Promise<void>;
|
|
39
33
|
savePolicy(): Promise<boolean>;
|
|
40
34
|
addPolicy(): Promise<void>;
|
|
41
35
|
removePolicy(): Promise<void>;
|
|
42
36
|
removeFilteredPolicy(): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
protected
|
|
45
|
-
|
|
46
|
-
rolePrincipal: string;
|
|
47
|
-
}): ValueOrPromise<string[]>;
|
|
48
|
-
/** Query role assignments for the principal. Return casbin `g` lines + role IDs. */
|
|
49
|
-
protected abstract buildGroupPolicies(opts: {
|
|
50
|
-
filter: TFilter;
|
|
51
|
-
}): ValueOrPromise<{
|
|
37
|
+
/** Parse + load casbin policy lines into a model. Shared by subclasses' loadFilteredPolicy. */
|
|
38
|
+
protected loadLines(opts: {
|
|
39
|
+
model: Model;
|
|
52
40
|
lines: string[];
|
|
53
|
-
|
|
54
|
-
}>;
|
|
55
|
-
/** Query permission policies inherited through roles. Return casbin `p` lines. */
|
|
56
|
-
protected abstract buildRolePolicies(opts: {
|
|
57
|
-
roleIds: (string | number)[];
|
|
58
|
-
rolePrincipal: string;
|
|
59
|
-
}): ValueOrPromise<string[]>;
|
|
60
|
-
/** Format a domain value with optional entity prefix (e.g., `"Organization_<uuid>"`). */
|
|
61
|
-
protected formatDomain(domain: string | null): string | null;
|
|
62
|
-
/** Format a casbin grouping line: `g, <subject>, <role>[, <domain>]`. */
|
|
63
|
-
protected toGroupLine(opts: {
|
|
64
|
-
subject: string;
|
|
65
|
-
role: string;
|
|
66
|
-
domain: string | null;
|
|
67
|
-
}): string;
|
|
68
|
-
/** Format a casbin policy line: `p, <subject>, [<domain>,] <resource>, <action>, <effect>`. */
|
|
69
|
-
protected toPolicyLine(opts: {
|
|
70
|
-
row: TPolicyRow;
|
|
71
|
-
}): string | null;
|
|
41
|
+
}): Promise<void>;
|
|
72
42
|
}
|
|
73
43
|
//# sourceMappingURL=base-filtered.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-filtered.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/base-filtered.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"base-filtered.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/base-filtered.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE1D,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED;;;;;;;;;GASG;AACH,8BAAsB,mBAAmB,CAAC,OAAO,GAAG,mBAAmB,CACrE,SAAQ,UACR,YAAW,eAAe;IAE1B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;gBAE/B,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,WAAW,CAAA;KAAE;IAK5D,SAAS,KAAK,SAAS,IAAI,aAAa,CAEvC;IAED,mGAAmG;IACnG,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzE,UAAU,IAAI,OAAO;IAKf,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAG9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAC1B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAC7B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3C,+FAA+F;cAC/E,SAAS,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAMlF"}
|
|
@@ -2,88 +2,41 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseFilteredAdapter = void 0;
|
|
4
4
|
const ignis_helpers_1 = require("@venizia/ignis-helpers");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Read-only base for casbin FilteredAdapters backed by a datasource.
|
|
7
|
+
*
|
|
8
|
+
* It owns the boilerplate every filtered adapter repeats — the datasource/connector plumbing, the
|
|
9
|
+
* `isFiltered() === true` flag, the no-op write methods (read-only), and a `loadLines` helper — so a
|
|
10
|
+
* subclass only implements {@link loadFilteredPolicy}: query the store for ONE principal's policies
|
|
11
|
+
* and turn them into casbin lines.
|
|
12
|
+
*
|
|
13
|
+
* `TFilter` is the filter shape (defaults to {@link ICasbinPolicyFilter}); subclasses may narrow it.
|
|
14
|
+
*/
|
|
15
15
|
class BaseFilteredAdapter extends ignis_helpers_1.BaseHelper {
|
|
16
16
|
constructor(opts) {
|
|
17
17
|
super({ scope: opts.scope });
|
|
18
|
-
this.
|
|
18
|
+
this.dataSource = opts.dataSource;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
async loadFilteredPolicy(model, filter) {
|
|
25
|
-
const { Helper } = await import('casbin');
|
|
26
|
-
const rolePrincipal = this.entities.role.principalType;
|
|
27
|
-
const loadLine = (line) => Helper.loadPolicyLine(line, model);
|
|
28
|
-
// 1. Direct permissions assigned to the principal
|
|
29
|
-
const directLines = await this.buildDirectPolicies({ filter, rolePrincipal });
|
|
30
|
-
directLines.forEach(loadLine);
|
|
31
|
-
// 2. Role assignments + group lines
|
|
32
|
-
const { lines: groupLines, roleIds } = await this.buildGroupPolicies({ filter });
|
|
33
|
-
groupLines.forEach(loadLine);
|
|
34
|
-
// 3. Permissions inherited through roles
|
|
35
|
-
if (roleIds.length) {
|
|
36
|
-
const roleLines = await this.buildRolePolicies({ roleIds, rolePrincipal });
|
|
37
|
-
roleLines.forEach(loadLine);
|
|
38
|
-
}
|
|
20
|
+
get connector() {
|
|
21
|
+
return this.dataSource.connector;
|
|
39
22
|
}
|
|
40
23
|
isFiltered() {
|
|
41
24
|
return true;
|
|
42
25
|
}
|
|
43
|
-
//
|
|
26
|
+
// Read-only adapter — write methods are intentional no-ops.
|
|
27
|
+
async loadPolicy() { }
|
|
44
28
|
async savePolicy() {
|
|
45
29
|
return true;
|
|
46
30
|
}
|
|
47
|
-
async addPolicy() {
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
// Formatters — shared utilities for subclasses
|
|
57
|
-
/** Format a domain value with optional entity prefix (e.g., `"Organization_<uuid>"`). */
|
|
58
|
-
formatDomain(domain) {
|
|
59
|
-
if (!domain) {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
const prefix = this.entities.domain?.principalType;
|
|
63
|
-
return prefix ? `${prefix}_${domain}` : domain;
|
|
64
|
-
}
|
|
65
|
-
/** Format a casbin grouping line: `g, <subject>, <role>[, <domain>]`. */
|
|
66
|
-
toGroupLine(opts) {
|
|
67
|
-
const { subject, role, domain } = opts;
|
|
68
|
-
if (domain) {
|
|
69
|
-
return [common_1.CasbinRuleVariants.G, subject, role, domain].join(', ');
|
|
70
|
-
}
|
|
71
|
-
return [common_1.CasbinRuleVariants.G, subject, role].join(', ');
|
|
72
|
-
}
|
|
73
|
-
/** Format a casbin policy line: `p, <subject>, [<domain>,] <resource>, <action>, <effect>`. */
|
|
74
|
-
toPolicyLine(opts) {
|
|
75
|
-
const { row } = opts;
|
|
76
|
-
const { code, action } = row;
|
|
77
|
-
const effect = row.effect ?? 'allow';
|
|
78
|
-
if (!action) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
const subject = `${row.subjectType}_${row.subjectId}`;
|
|
82
|
-
const domain = this.formatDomain(row.domain);
|
|
83
|
-
if (domain) {
|
|
84
|
-
return [common_1.CasbinRuleVariants.P, subject, domain, code, action, effect].join(', ');
|
|
31
|
+
async addPolicy() { }
|
|
32
|
+
async removePolicy() { }
|
|
33
|
+
async removeFilteredPolicy() { }
|
|
34
|
+
/** Parse + load casbin policy lines into a model. Shared by subclasses' loadFilteredPolicy. */
|
|
35
|
+
async loadLines(opts) {
|
|
36
|
+
const { Helper } = await import('casbin');
|
|
37
|
+
for (const line of opts.lines) {
|
|
38
|
+
Helper.loadPolicyLine(line, opts.model);
|
|
85
39
|
}
|
|
86
|
-
return [common_1.CasbinRuleVariants.P, subject, code, action, effect].join(', ');
|
|
87
40
|
}
|
|
88
41
|
}
|
|
89
42
|
exports.BaseFilteredAdapter = BaseFilteredAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-filtered.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/base-filtered.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base-filtered.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/base-filtered.ts"],"names":[],"mappings":";;;AAEA,0DAAoD;AAQpD;;;;;;;;;GASG;AACH,MAAsB,mBACpB,SAAQ,0BAAU;IAKlB,YAAY,IAAgD;QAC1D,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACpC,CAAC;IAED,IAAc,SAAS;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC,CAAC;IAKD,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,UAAU,KAAmB,CAAC;IACpC,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,SAAS,KAAmB,CAAC;IACnC,KAAK,CAAC,YAAY,KAAmB,CAAC;IACtC,KAAK,CAAC,oBAAoB,KAAmB,CAAC;IAE9C,+FAA+F;IACrF,KAAK,CAAC,SAAS,CAAC,IAAuC;QAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAtCD,kDAsCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC"}
|
|
@@ -15,5 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./base-filtered"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./scoped-casbin.adapter"), exports);
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,0DAAwC;AACxC,0CAAwB"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { IdType } from '../../../../base';
|
|
2
|
+
import { IDataSource } from '../../../../base/datasources';
|
|
3
|
+
import { type Model } from 'casbin';
|
|
4
|
+
import { type SQL } from 'drizzle-orm';
|
|
5
|
+
import { BaseFilteredAdapter } from './base-filtered';
|
|
6
|
+
import { type IScopedCasbinEntities } from './types';
|
|
7
|
+
export type { IScopedCasbinEntities };
|
|
8
|
+
export interface IScopedCasbinPolicyFilter {
|
|
9
|
+
principal: {
|
|
10
|
+
type: string;
|
|
11
|
+
id: IdType;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Filtered casbin adapter for the scoped RBAC model: loads ONE principal's edges (role assignments,
|
|
16
|
+
* memberships, grants) plus the shared structural hierarchy trees as casbin lines. Read-only.
|
|
17
|
+
*/
|
|
18
|
+
export declare class ScopedCasbinAdapter extends BaseFilteredAdapter<IScopedCasbinPolicyFilter> {
|
|
19
|
+
protected readonly entities: IScopedCasbinEntities;
|
|
20
|
+
constructor(opts: {
|
|
21
|
+
dataSource: IDataSource;
|
|
22
|
+
entities: IScopedCasbinEntities;
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Casbin's filtered-load entry point: build the full line set for ONE principal and load it into
|
|
26
|
+
* the model. Runs in two waves —
|
|
27
|
+
* Wave 1 (parallel): the principal's own edges (role assignments → g, memberships → g2, direct
|
|
28
|
+
* grants → p) plus the shared structural trees (role/resource/action/domain inherits).
|
|
29
|
+
* Wave 2: expand the assigned roles to their transitive parents (role closure over role_inherits),
|
|
30
|
+
* then fetch the grants those roles carry — so a user inherits permissions from parent roles.
|
|
31
|
+
* The concatenated lines are handed to {@link loadLines}; the enforcer caches the result per user
|
|
32
|
+
* in Redis, so this only runs on a cache MISS.
|
|
33
|
+
*/
|
|
34
|
+
loadFilteredPolicy(model: Model, filter: IScopedCasbinPolicyFilter): Promise<void>;
|
|
35
|
+
/** Schema for a table, defaulting to `public`. */
|
|
36
|
+
protected schemaOf(table: {
|
|
37
|
+
schemaName?: string;
|
|
38
|
+
}): string;
|
|
39
|
+
/** Schema-qualified table reference (`"<schema>"."<table>"`) for use after FROM/JOIN with an alias. */
|
|
40
|
+
protected qualifiedTable(opts: {
|
|
41
|
+
table: {
|
|
42
|
+
schemaName?: string;
|
|
43
|
+
tableName: string;
|
|
44
|
+
};
|
|
45
|
+
}): SQL;
|
|
46
|
+
/** `AND <alias>.<col> IS NULL` when soft-delete on; empty otherwise. Alias quoted to avoid injection. */
|
|
47
|
+
protected softDeleteClause(opts: {
|
|
48
|
+
alias: string;
|
|
49
|
+
}): SQL;
|
|
50
|
+
/**
|
|
51
|
+
* Fetch the principal's `assign_role` edges and emit them as casbin `g` lines (role membership).
|
|
52
|
+
* Returns both the lines AND the raw `roleIds`, which Wave 2 feeds into {@link expandRoleClosure}.
|
|
53
|
+
* A null domain widens the assignment to every domain (`*`).
|
|
54
|
+
* e.g. `g, User_u1, Role_r1, *` — "u1 holds Role r1 in any domain".
|
|
55
|
+
*/
|
|
56
|
+
protected queryRoleAssignments(opts: {
|
|
57
|
+
principal: {
|
|
58
|
+
type: string;
|
|
59
|
+
id: IdType;
|
|
60
|
+
};
|
|
61
|
+
}): Promise<{
|
|
62
|
+
lines: string[];
|
|
63
|
+
roleIds: IdType[];
|
|
64
|
+
}>;
|
|
65
|
+
/**
|
|
66
|
+
* Fetch the principal's `join_domain` edges (restricted to the configured `domainTypes`) and emit
|
|
67
|
+
* them as casbin `g2` lines — the membership relation the matcher uses to scope `ANY_MEMBER` grants.
|
|
68
|
+
* e.g. `g2, User_u1, Merchant_7` — "u1 is a member of Merchant 7".
|
|
69
|
+
*/
|
|
70
|
+
protected queryMemberships(opts: {
|
|
71
|
+
principal: {
|
|
72
|
+
type: string;
|
|
73
|
+
id: IdType;
|
|
74
|
+
};
|
|
75
|
+
}): Promise<string[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Fetch `grant` edges for the given subjects (a User or a set of Roles) joined to `Permission` for
|
|
78
|
+
* the object code, and emit them as casbin `p` policy lines. Used twice per load: once for the
|
|
79
|
+
* user's direct grants, once for the grants of every role in the closure. Rows with no `action` are
|
|
80
|
+
* skipped; a null effect defaults to allow, a null domain to `ANY_MEMBER`. Empty `ids` short-circuits
|
|
81
|
+
* without touching the DB.
|
|
82
|
+
* e.g. `p, Role_5, ANY_MEMBER, Order, read, allow` — "Role 5 may read Order in any joined domain".
|
|
83
|
+
*/
|
|
84
|
+
protected queryGrants(opts: {
|
|
85
|
+
subject: {
|
|
86
|
+
type: string;
|
|
87
|
+
ids: IdType[];
|
|
88
|
+
};
|
|
89
|
+
}): Promise<string[]>;
|
|
90
|
+
/**
|
|
91
|
+
* Load the system-wide hierarchy edges (role/resource/action/domain inherits) — read fresh on each
|
|
92
|
+
* call. These are the same for every user, but at this scale the four queries are cheap and run in
|
|
93
|
+
* the same parallel wave as the per-user queries; the per-user `lines` are themselves cached in Redis
|
|
94
|
+
* by the enforcer, so this only runs on a cache MISS. (No in-process cache → never goes stale.)
|
|
95
|
+
*/
|
|
96
|
+
protected loadStructuralTrees(): Promise<string[]>;
|
|
97
|
+
/**
|
|
98
|
+
* Shared role hierarchy: every `role_inherits` edge as a casbin `g` line with a wildcard domain.
|
|
99
|
+
* These are the SAME for all users (org structure, not a user) and also seed {@link expandRoleClosure}.
|
|
100
|
+
* e.g. `g, Role_r2, Role_r1, *` — "Role r2 inherits Role r1 in any domain".
|
|
101
|
+
*/
|
|
102
|
+
protected queryRoleInherits(): Promise<string[]>;
|
|
103
|
+
/**
|
|
104
|
+
* Shared resource hierarchy: every `resource_inherits` edge as a casbin `g4` line, joining
|
|
105
|
+
* `Permission` twice (child + parent) to emit the resource CODES the `objectMatch` g4-func traverses.
|
|
106
|
+
* The `obj` axis — a permission on a parent resource also covers its children.
|
|
107
|
+
* e.g. `g4, OrderItem, Order` — "OrderItem is a child resource of Order".
|
|
108
|
+
*/
|
|
109
|
+
protected queryResourceInherits(): Promise<string[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Shared action hierarchy: every `action_inherits` edge as a casbin `g5` line. Same shape as
|
|
112
|
+
* resource_inherits but a DIFFERENT axis — the `act` axis (e.g. `manage` covers `read`/`update`).
|
|
113
|
+
* Kept separate so resource × action stays factored instead of exploding to R×A combined edges.
|
|
114
|
+
* e.g. `g5, read, manage` — "the read action is implied by manage".
|
|
115
|
+
*/
|
|
116
|
+
protected queryActionInherits(): Promise<string[]>;
|
|
117
|
+
/**
|
|
118
|
+
* Shared domain hierarchy: every `domain_inherits` edge as a casbin `g3` line, with typed
|
|
119
|
+
* `<type>_<id>` endpoints — lets a grant in a parent domain cascade to child domains.
|
|
120
|
+
* e.g. `g3, Branch_1, Company_2` — "Branch 1 sits under Company 2".
|
|
121
|
+
*/
|
|
122
|
+
protected queryDomainInherits(): Promise<string[]>;
|
|
123
|
+
/** BFS over role_inherits edges to collect a role set + all transitive parents. Cycle-safe. */
|
|
124
|
+
protected expandRoleClosure(opts: {
|
|
125
|
+
role: {
|
|
126
|
+
ids: IdType[];
|
|
127
|
+
edges: string[];
|
|
128
|
+
};
|
|
129
|
+
}): IdType[];
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=scoped-casbin.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoped-casbin.adapter.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/adapters/scoped-casbin.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAO,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAM5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAID;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB,CAAC,yBAAyB,CAAC;IACrF,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;gBAEvC,IAAI,EAAE;QAAE,UAAU,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,qBAAqB,CAAA;KAAE;IAK9E;;;;;;;;;OASG;IACG,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCxF,kDAAkD;IAClD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAI1D,uGAAuG;IACvG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,GAAG;IAK1F,yGAAyG;IACzG,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,GAAG;IASxD;;;;;OAKG;cACa,oBAAoB,CAAC,IAAI,EAAE;QACzC,SAAS,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;KACzC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAiCnD;;;;OAIG;cACa,gBAAgB,CAAC,IAAI,EAAE;QACrC,SAAS,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;KACzC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4BrB;;;;;;;OAOG;cACa,WAAW,CAAC,IAAI,EAAE;QAChC,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAC1C,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmDrB;;;;;OAKG;cACa,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxD;;;;OAIG;cACa,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBtD;;;;;OAKG;cACa,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAoB1D;;;;;OAKG;cACa,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBxD;;;;OAIG;cACa,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBxD,+FAA+F;IAC/F,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE;YAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,GAAG,MAAM,EAAE;CA2C1F"}
|