@stratal/framework 0.0.13 → 0.0.14
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/auth/index.d.mts +202 -0
- package/dist/auth/index.d.mts.map +1 -0
- package/dist/auth/index.mjs +323 -0
- package/dist/auth/index.mjs.map +1 -0
- package/dist/auth-context-BD2ApWg1.d.mts +38 -0
- package/dist/auth-context-BD2ApWg1.d.mts.map +1 -0
- package/dist/auth-context-CV3Ko1ew.mjs +55 -0
- package/dist/auth-context-CV3Ko1ew.mjs.map +1 -0
- package/dist/context/index.d.mts +20 -0
- package/dist/context/index.d.mts.map +1 -0
- package/dist/context/index.mjs +3 -0
- package/dist/database/index.d.mts +3 -0
- package/dist/database/index.mjs +374 -0
- package/dist/database/index.mjs.map +1 -0
- package/dist/decorate-RSane8dy.mjs +9 -0
- package/dist/decorateMetadata-CETItPez.mjs +6 -0
- package/dist/decorateParam-CcTvpNsw.mjs +8 -0
- package/dist/errors-C_KIIU1v.mjs +25 -0
- package/dist/errors-C_KIIU1v.mjs.map +1 -0
- package/dist/factory/index.d.mts +99 -0
- package/dist/factory/index.d.mts.map +1 -0
- package/dist/factory/index.mjs +138 -0
- package/dist/factory/index.mjs.map +1 -0
- package/dist/guards/{auth.guard.d.ts → index.d.mts} +7 -3
- package/dist/guards/index.d.mts.map +1 -0
- package/dist/guards/index.mjs +93 -0
- package/dist/guards/index.mjs.map +1 -0
- package/dist/index-Dlg8mNjq.d.mts +386 -0
- package/dist/index-Dlg8mNjq.d.mts.map +1 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +1 -0
- package/dist/rbac/index.d.mts +206 -0
- package/dist/rbac/index.d.mts.map +1 -0
- package/dist/rbac/index.mjs +346 -0
- package/dist/rbac/index.mjs.map +1 -0
- package/dist/tokens-Di1ofovy.mjs +32 -0
- package/dist/tokens-Di1ofovy.mjs.map +1 -0
- package/dist/{database/types.d.ts → types-Gjk0d2qB.d.mts} +18 -15
- package/dist/types-Gjk0d2qB.d.mts.map +1 -0
- package/package.json +25 -24
- package/dist/auth/auth.module.d.ts +0 -37
- package/dist/auth/auth.module.d.ts.map +0 -1
- package/dist/auth/auth.module.js +0 -74
- package/dist/auth/auth.module.js.map +0 -1
- package/dist/auth/auth.tokens.d.ts +0 -5
- package/dist/auth/auth.tokens.d.ts.map +0 -1
- package/dist/auth/auth.tokens.js +0 -5
- package/dist/auth/auth.tokens.js.map +0 -1
- package/dist/auth/errors/auth-errors.d.ts +0 -74
- package/dist/auth/errors/auth-errors.d.ts.map +0 -1
- package/dist/auth/errors/auth-errors.js +0 -122
- package/dist/auth/errors/auth-errors.js.map +0 -1
- package/dist/auth/errors/index.d.ts +0 -5
- package/dist/auth/errors/index.d.ts.map +0 -1
- package/dist/auth/errors/index.js +0 -5
- package/dist/auth/errors/index.js.map +0 -1
- package/dist/auth/errors/invalid-token.error.d.ts +0 -5
- package/dist/auth/errors/invalid-token.error.d.ts.map +0 -1
- package/dist/auth/errors/invalid-token.error.js +0 -7
- package/dist/auth/errors/invalid-token.error.js.map +0 -1
- package/dist/auth/errors/token-required.error.d.ts +0 -5
- package/dist/auth/errors/token-required.error.d.ts.map +0 -1
- package/dist/auth/errors/token-required.error.js +0 -7
- package/dist/auth/errors/token-required.error.js.map +0 -1
- package/dist/auth/errors/verification-failed.error.d.ts +0 -5
- package/dist/auth/errors/verification-failed.error.d.ts.map +0 -1
- package/dist/auth/errors/verification-failed.error.js +0 -7
- package/dist/auth/errors/verification-failed.error.js.map +0 -1
- package/dist/auth/index.d.ts +0 -7
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -7
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/middleware/auth-context.middleware.d.ts +0 -12
- package/dist/auth/middleware/auth-context.middleware.d.ts.map +0 -1
- package/dist/auth/middleware/auth-context.middleware.js +0 -28
- package/dist/auth/middleware/auth-context.middleware.js.map +0 -1
- package/dist/auth/middleware/index.d.ts +0 -3
- package/dist/auth/middleware/index.d.ts.map +0 -1
- package/dist/auth/middleware/index.js +0 -3
- package/dist/auth/middleware/index.js.map +0 -1
- package/dist/auth/middleware/session-verification.middleware.d.ts +0 -18
- package/dist/auth/middleware/session-verification.middleware.d.ts.map +0 -1
- package/dist/auth/middleware/session-verification.middleware.js +0 -48
- package/dist/auth/middleware/session-verification.middleware.js.map +0 -1
- package/dist/auth/services/auth.service.d.ts +0 -32
- package/dist/auth/services/auth.service.d.ts.map +0 -1
- package/dist/auth/services/auth.service.js +0 -62
- package/dist/auth/services/auth.service.js.map +0 -1
- package/dist/auth/services/index.d.ts +0 -2
- package/dist/auth/services/index.d.ts.map +0 -1
- package/dist/auth/services/index.js +0 -2
- package/dist/auth/services/index.js.map +0 -1
- package/dist/auth/utils/auth-helpers.d.ts +0 -11
- package/dist/auth/utils/auth-helpers.d.ts.map +0 -1
- package/dist/auth/utils/auth-helpers.js +0 -31
- package/dist/auth/utils/auth-helpers.js.map +0 -1
- package/dist/auth/utils/better-auth-error-handler.d.ts +0 -11
- package/dist/auth/utils/better-auth-error-handler.d.ts.map +0 -1
- package/dist/auth/utils/better-auth-error-handler.js +0 -95
- package/dist/auth/utils/better-auth-error-handler.js.map +0 -1
- package/dist/auth/utils/index.d.ts +0 -3
- package/dist/auth/utils/index.d.ts.map +0 -1
- package/dist/auth/utils/index.js +0 -3
- package/dist/auth/utils/index.js.map +0 -1
- package/dist/context/auth-context.d.ts +0 -35
- package/dist/context/auth-context.d.ts.map +0 -1
- package/dist/context/auth-context.js +0 -65
- package/dist/context/auth-context.js.map +0 -1
- package/dist/context/errors/context-not-initialized.error.d.ts +0 -5
- package/dist/context/errors/context-not-initialized.error.d.ts.map +0 -1
- package/dist/context/errors/context-not-initialized.error.js +0 -7
- package/dist/context/errors/context-not-initialized.error.js.map +0 -1
- package/dist/context/errors/index.d.ts +0 -4
- package/dist/context/errors/index.d.ts.map +0 -1
- package/dist/context/errors/index.js +0 -4
- package/dist/context/errors/index.js.map +0 -1
- package/dist/context/errors/user-not-authenticated.error.d.ts +0 -5
- package/dist/context/errors/user-not-authenticated.error.d.ts.map +0 -1
- package/dist/context/errors/user-not-authenticated.error.js +0 -7
- package/dist/context/errors/user-not-authenticated.error.js.map +0 -1
- package/dist/context/errors/user-not-authorized.error.d.ts +0 -5
- package/dist/context/errors/user-not-authorized.error.d.ts.map +0 -1
- package/dist/context/errors/user-not-authorized.error.js +0 -7
- package/dist/context/errors/user-not-authorized.error.js.map +0 -1
- package/dist/context/index.d.ts +0 -3
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/index.js +0 -3
- package/dist/context/index.js.map +0 -1
- package/dist/database/custom-pg-types.d.ts +0 -21
- package/dist/database/custom-pg-types.d.ts.map +0 -1
- package/dist/database/custom-pg-types.js +0 -41
- package/dist/database/custom-pg-types.js.map +0 -1
- package/dist/database/database.helpers.d.ts +0 -15
- package/dist/database/database.helpers.d.ts.map +0 -1
- package/dist/database/database.helpers.js +0 -47
- package/dist/database/database.helpers.js.map +0 -1
- package/dist/database/database.module.d.ts +0 -22
- package/dist/database/database.module.d.ts.map +0 -1
- package/dist/database/database.module.js +0 -54
- package/dist/database/database.module.js.map +0 -1
- package/dist/database/database.service.d.ts +0 -18
- package/dist/database/database.service.d.ts.map +0 -1
- package/dist/database/database.service.js +0 -2
- package/dist/database/database.service.js.map +0 -1
- package/dist/database/database.tokens.d.ts +0 -7
- package/dist/database/database.tokens.d.ts.map +0 -1
- package/dist/database/database.tokens.js +0 -8
- package/dist/database/database.tokens.js.map +0 -1
- package/dist/database/decorators/inject-db.decorator.d.ts +0 -3
- package/dist/database/decorators/inject-db.decorator.d.ts.map +0 -1
- package/dist/database/decorators/inject-db.decorator.js +0 -6
- package/dist/database/decorators/inject-db.decorator.js.map +0 -1
- package/dist/database/errors/database-config.error.d.ts +0 -5
- package/dist/database/errors/database-config.error.d.ts.map +0 -1
- package/dist/database/errors/database-config.error.js +0 -8
- package/dist/database/errors/database-config.error.js.map +0 -1
- package/dist/database/errors/database-error.d.ts +0 -14
- package/dist/database/errors/database-error.d.ts.map +0 -1
- package/dist/database/errors/database-error.js +0 -20
- package/dist/database/errors/database-error.js.map +0 -1
- package/dist/database/errors/foreign-key-constraint.error.d.ts +0 -14
- package/dist/database/errors/foreign-key-constraint.error.d.ts.map +0 -1
- package/dist/database/errors/foreign-key-constraint.error.js +0 -19
- package/dist/database/errors/foreign-key-constraint.error.js.map +0 -1
- package/dist/database/errors/from-zenstack-error.d.ts +0 -22
- package/dist/database/errors/from-zenstack-error.d.ts.map +0 -1
- package/dist/database/errors/from-zenstack-error.js +0 -114
- package/dist/database/errors/from-zenstack-error.js.map +0 -1
- package/dist/database/errors/index.d.ts +0 -8
- package/dist/database/errors/index.d.ts.map +0 -1
- package/dist/database/errors/index.js +0 -8
- package/dist/database/errors/index.js.map +0 -1
- package/dist/database/errors/invalid-error-code-range.error.d.ts +0 -12
- package/dist/database/errors/invalid-error-code-range.error.d.ts.map +0 -1
- package/dist/database/errors/invalid-error-code-range.error.js +0 -14
- package/dist/database/errors/invalid-error-code-range.error.js.map +0 -1
- package/dist/database/errors/record-not-found.error.d.ts +0 -15
- package/dist/database/errors/record-not-found.error.d.ts.map +0 -1
- package/dist/database/errors/record-not-found.error.js +0 -20
- package/dist/database/errors/record-not-found.error.js.map +0 -1
- package/dist/database/errors/unique-constraint.error.d.ts +0 -15
- package/dist/database/errors/unique-constraint.error.d.ts.map +0 -1
- package/dist/database/errors/unique-constraint.error.js +0 -20
- package/dist/database/errors/unique-constraint.error.js.map +0 -1
- package/dist/database/event-types.d.ts +0 -137
- package/dist/database/event-types.d.ts.map +0 -1
- package/dist/database/event-types.js +0 -13
- package/dist/database/event-types.js.map +0 -1
- package/dist/database/i18n/en.d.ts +0 -15
- package/dist/database/i18n/en.d.ts.map +0 -1
- package/dist/database/i18n/en.js +0 -10
- package/dist/database/i18n/en.js.map +0 -1
- package/dist/database/i18n/index.d.ts +0 -2
- package/dist/database/i18n/index.d.ts.map +0 -1
- package/dist/database/i18n/index.js +0 -2
- package/dist/database/i18n/index.js.map +0 -1
- package/dist/database/index.d.ts +0 -11
- package/dist/database/index.d.ts.map +0 -1
- package/dist/database/index.js +0 -11
- package/dist/database/index.js.map +0 -1
- package/dist/database/plugins/error-handler.plugin.d.ts +0 -21
- package/dist/database/plugins/error-handler.plugin.d.ts.map +0 -1
- package/dist/database/plugins/error-handler.plugin.js +0 -24
- package/dist/database/plugins/error-handler.plugin.js.map +0 -1
- package/dist/database/plugins/event-emitter.plugin.d.ts +0 -37
- package/dist/database/plugins/event-emitter.plugin.d.ts.map +0 -1
- package/dist/database/plugins/event-emitter.plugin.js +0 -43
- package/dist/database/plugins/event-emitter.plugin.js.map +0 -1
- package/dist/database/plugins/index.d.ts +0 -4
- package/dist/database/plugins/index.d.ts.map +0 -1
- package/dist/database/plugins/index.js +0 -4
- package/dist/database/plugins/index.js.map +0 -1
- package/dist/database/plugins/schema-switcher.plugin.d.ts +0 -32
- package/dist/database/plugins/schema-switcher.plugin.d.ts.map +0 -1
- package/dist/database/plugins/schema-switcher.plugin.js +0 -27
- package/dist/database/plugins/schema-switcher.plugin.js.map +0 -1
- package/dist/database/types.d.ts.map +0 -1
- package/dist/database/types.js +0 -2
- package/dist/database/types.js.map +0 -1
- package/dist/factory/factory.d.ts +0 -56
- package/dist/factory/factory.d.ts.map +0 -1
- package/dist/factory/factory.js +0 -86
- package/dist/factory/factory.js.map +0 -1
- package/dist/factory/index.d.ts +0 -3
- package/dist/factory/index.d.ts.map +0 -1
- package/dist/factory/index.js +0 -3
- package/dist/factory/index.js.map +0 -1
- package/dist/factory/sequence.d.ts +0 -38
- package/dist/factory/sequence.d.ts.map +0 -1
- package/dist/factory/sequence.js +0 -54
- package/dist/factory/sequence.js.map +0 -1
- package/dist/guards/auth.guard.d.ts.map +0 -1
- package/dist/guards/auth.guard.js +0 -99
- package/dist/guards/auth.guard.js.map +0 -1
- package/dist/guards/index.d.ts +0 -3
- package/dist/guards/index.d.ts.map +0 -1
- package/dist/guards/index.js +0 -5
- package/dist/guards/index.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/rbac/adapters/custom-zenstack-adapter.d.ts +0 -61
- package/dist/rbac/adapters/custom-zenstack-adapter.d.ts.map +0 -1
- package/dist/rbac/adapters/custom-zenstack-adapter.js +0 -159
- package/dist/rbac/adapters/custom-zenstack-adapter.js.map +0 -1
- package/dist/rbac/adapters/index.d.ts +0 -2
- package/dist/rbac/adapters/index.d.ts.map +0 -1
- package/dist/rbac/adapters/index.js +0 -2
- package/dist/rbac/adapters/index.js.map +0 -1
- package/dist/rbac/constants.d.ts +0 -8
- package/dist/rbac/constants.d.ts.map +0 -1
- package/dist/rbac/constants.js +0 -8
- package/dist/rbac/constants.js.map +0 -1
- package/dist/rbac/errors/index.d.ts +0 -2
- package/dist/rbac/errors/index.d.ts.map +0 -1
- package/dist/rbac/errors/index.js +0 -2
- package/dist/rbac/errors/index.js.map +0 -1
- package/dist/rbac/errors/insufficient-permissions.error.d.ts +0 -14
- package/dist/rbac/errors/insufficient-permissions.error.d.ts.map +0 -1
- package/dist/rbac/errors/insufficient-permissions.error.js +0 -19
- package/dist/rbac/errors/insufficient-permissions.error.js.map +0 -1
- package/dist/rbac/index.d.ts +0 -9
- package/dist/rbac/index.d.ts.map +0 -1
- package/dist/rbac/index.js +0 -8
- package/dist/rbac/index.js.map +0 -1
- package/dist/rbac/rbac.module.d.ts +0 -26
- package/dist/rbac/rbac.module.d.ts.map +0 -1
- package/dist/rbac/rbac.module.js +0 -62
- package/dist/rbac/rbac.module.js.map +0 -1
- package/dist/rbac/services/casbin-enforcer.service.d.ts +0 -37
- package/dist/rbac/services/casbin-enforcer.service.d.ts.map +0 -1
- package/dist/rbac/services/casbin-enforcer.service.js +0 -86
- package/dist/rbac/services/casbin-enforcer.service.js.map +0 -1
- package/dist/rbac/services/casbin.service.d.ts +0 -37
- package/dist/rbac/services/casbin.service.d.ts.map +0 -1
- package/dist/rbac/services/casbin.service.js +0 -174
- package/dist/rbac/services/casbin.service.js.map +0 -1
- package/dist/rbac/services/index.d.ts +0 -3
- package/dist/rbac/services/index.d.ts.map +0 -1
- package/dist/rbac/services/index.js +0 -3
- package/dist/rbac/services/index.js.map +0 -1
- package/dist/rbac/tokens.d.ts +0 -10
- package/dist/rbac/tokens.d.ts.map +0 -1
- package/dist/rbac/tokens.js +0 -10
- package/dist/rbac/tokens.js.map +0 -1
- package/dist/rbac/types.d.ts +0 -12
- package/dist/rbac/types.d.ts.map +0 -1
- package/dist/rbac/types.js +0 -2
- package/dist/rbac/types.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rbac/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ApplicationError } from 'stratal/errors';
|
|
2
|
-
/**
|
|
3
|
-
* InsufficientPermissionsError
|
|
4
|
-
*
|
|
5
|
-
* Thrown when a user attempts to perform an action without the required permissions.
|
|
6
|
-
* This error is used by the auth guard after authorization check fails.
|
|
7
|
-
*
|
|
8
|
-
* HTTP Status: 403 Forbidden
|
|
9
|
-
* Error Code: 3102 (AUTHZ.INSUFFICIENT_PERMISSIONS)
|
|
10
|
-
*/
|
|
11
|
-
export declare class InsufficientPermissionsError extends ApplicationError {
|
|
12
|
-
constructor(requiredScopes: string[], userId?: string);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=insufficient-permissions.error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insufficient-permissions.error.d.ts","sourceRoot":"","sources":["../../../src/rbac/errors/insufficient-permissions.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,gBAAgB,CAAA;AAE9D;;;;;;;;GAQG;AACH,qBAAa,4BAA6B,SAAQ,gBAAgB;gBACpD,cAAc,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM;CAMtD"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ApplicationError, ERROR_CODES } from 'stratal/errors';
|
|
2
|
-
/**
|
|
3
|
-
* InsufficientPermissionsError
|
|
4
|
-
*
|
|
5
|
-
* Thrown when a user attempts to perform an action without the required permissions.
|
|
6
|
-
* This error is used by the auth guard after authorization check fails.
|
|
7
|
-
*
|
|
8
|
-
* HTTP Status: 403 Forbidden
|
|
9
|
-
* Error Code: 3102 (AUTHZ.INSUFFICIENT_PERMISSIONS)
|
|
10
|
-
*/
|
|
11
|
-
export class InsufficientPermissionsError extends ApplicationError {
|
|
12
|
-
constructor(requiredScopes, userId) {
|
|
13
|
-
super('errors.insufficientPermissions', ERROR_CODES.AUTHZ.INSUFFICIENT_PERMISSIONS, {
|
|
14
|
-
requiredScopes: requiredScopes.join(', '),
|
|
15
|
-
userId: userId ?? 'unknown',
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=insufficient-permissions.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insufficient-permissions.error.js","sourceRoot":"","sources":["../../../src/rbac/errors/insufficient-permissions.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE9D;;;;;;;;GAQG;AACH,MAAM,OAAO,4BAA6B,SAAQ,gBAAgB;IAChE,YAAY,cAAwB,EAAE,MAAe;QACnD,KAAK,CAAC,gCAAgC,EAAE,WAAW,CAAC,KAAK,CAAC,wBAAwB,EAAE;YAClF,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,MAAM,EAAE,MAAM,IAAI,SAAS;SAC5B,CAAC,CAAA;IACJ,CAAC;CACF"}
|
package/dist/rbac/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { RBAC_CONTEXT_KEYS } from './constants';
|
|
2
|
-
export { InsufficientPermissionsError } from './errors/insufficient-permissions.error';
|
|
3
|
-
export { CasbinEnforcerService } from './services/casbin-enforcer.service';
|
|
4
|
-
export { CasbinService } from './services/casbin.service';
|
|
5
|
-
export { CustomZenStackAdapter } from './adapters/custom-zenstack-adapter';
|
|
6
|
-
export { RbacModule } from './rbac.module';
|
|
7
|
-
export { RBAC_TOKENS } from './tokens';
|
|
8
|
-
export type { RbacModuleOptions } from './types';
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/rbac/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/rbac/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { RBAC_CONTEXT_KEYS } from './constants';
|
|
2
|
-
export { InsufficientPermissionsError } from './errors/insufficient-permissions.error';
|
|
3
|
-
export { CasbinEnforcerService } from './services/casbin-enforcer.service';
|
|
4
|
-
export { CasbinService } from './services/casbin.service';
|
|
5
|
-
export { CustomZenStackAdapter } from './adapters/custom-zenstack-adapter';
|
|
6
|
-
export { RbacModule } from './rbac.module';
|
|
7
|
-
export { RBAC_TOKENS } from './tokens';
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/dist/rbac/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { AsyncModuleOptions, DynamicModule } from 'stratal/module';
|
|
2
|
-
import type { RbacModuleOptions } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* RBAC Module
|
|
5
|
-
*
|
|
6
|
-
* Provides role-based access control using Casbin.
|
|
7
|
-
* Fully configurable — no hardcoded roles, policies, or model.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* @Module({
|
|
12
|
-
* imports: [
|
|
13
|
-
* RbacModule.forRoot({
|
|
14
|
-
* model: MY_RBAC_MODEL,
|
|
15
|
-
* defaultPolicies: [['admin', 'users:*', '.*']],
|
|
16
|
-
* roleHierarchy: [['super_admin', 'admin']],
|
|
17
|
-
* })
|
|
18
|
-
* ]
|
|
19
|
-
* })
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare class RbacModule {
|
|
23
|
-
static forRoot(options: RbacModuleOptions): DynamicModule;
|
|
24
|
-
static forRootAsync(options: AsyncModuleOptions<RbacModuleOptions>): DynamicModule;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=rbac.module.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.module.d.ts","sourceRoot":"","sources":["../../src/rbac/rbac.module.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAIvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAMa,UAAU;IACrB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa;IASzD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,aAAa;CAYnF"}
|
package/dist/rbac/rbac.module.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var RbacModule_1;
|
|
8
|
-
import { Module } from 'stratal/module';
|
|
9
|
-
import { CasbinEnforcerService } from './services/casbin-enforcer.service';
|
|
10
|
-
import { CasbinService } from './services/casbin.service';
|
|
11
|
-
import { RBAC_TOKENS } from './tokens';
|
|
12
|
-
/**
|
|
13
|
-
* RBAC Module
|
|
14
|
-
*
|
|
15
|
-
* Provides role-based access control using Casbin.
|
|
16
|
-
* Fully configurable — no hardcoded roles, policies, or model.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* @Module({
|
|
21
|
-
* imports: [
|
|
22
|
-
* RbacModule.forRoot({
|
|
23
|
-
* model: MY_RBAC_MODEL,
|
|
24
|
-
* defaultPolicies: [['admin', 'users:*', '.*']],
|
|
25
|
-
* roleHierarchy: [['super_admin', 'admin']],
|
|
26
|
-
* })
|
|
27
|
-
* ]
|
|
28
|
-
* })
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
let RbacModule = RbacModule_1 = class RbacModule {
|
|
32
|
-
static forRoot(options) {
|
|
33
|
-
return {
|
|
34
|
-
module: RbacModule_1,
|
|
35
|
-
providers: [
|
|
36
|
-
{ provide: RBAC_TOKENS.Options, useValue: options },
|
|
37
|
-
],
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
static forRootAsync(options) {
|
|
41
|
-
return {
|
|
42
|
-
module: RbacModule_1,
|
|
43
|
-
providers: [
|
|
44
|
-
{
|
|
45
|
-
provide: RBAC_TOKENS.Options,
|
|
46
|
-
useFactory: options.useFactory,
|
|
47
|
-
inject: options.inject,
|
|
48
|
-
},
|
|
49
|
-
],
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
RbacModule = RbacModule_1 = __decorate([
|
|
54
|
-
Module({
|
|
55
|
-
providers: [
|
|
56
|
-
CasbinEnforcerService,
|
|
57
|
-
{ provide: RBAC_TOKENS.CasbinService, useClass: CasbinService },
|
|
58
|
-
],
|
|
59
|
-
})
|
|
60
|
-
], RbacModule);
|
|
61
|
-
export { RbacModule };
|
|
62
|
-
//# sourceMappingURL=rbac.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.module.js","sourceRoot":"","sources":["../../src/rbac/rbac.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGtC;;;;;;;;;;;;;;;;;;GAkBG;AAOI,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,MAAM,CAAC,OAAO,CAAC,OAA0B;QACvC,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAA4B,EAAE;aACzE;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAA8C;QAChE,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF;SACF,CAAA;IACH,CAAC;CACF,CAAA;AAtBY,UAAU;IANtB,MAAM,CAAC;QACN,SAAS,EAAE;YACT,qBAAqB;YACrB,EAAE,OAAO,EAAE,WAAW,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE;SAChE;KACF,CAAC;GACW,UAAU,CAsBtB"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { type Enforcer } from 'casbin';
|
|
2
|
-
import { type CasbinDbClient } from '../adapters/custom-zenstack-adapter';
|
|
3
|
-
import type { RbacModuleOptions } from '../types';
|
|
4
|
-
/**
|
|
5
|
-
* CasbinEnforcerService
|
|
6
|
-
*
|
|
7
|
-
* Manages the Casbin enforcer instance for authorization.
|
|
8
|
-
* Model, default policies, and role hierarchy are provided via DI options.
|
|
9
|
-
*/
|
|
10
|
-
export declare class CasbinEnforcerService {
|
|
11
|
-
protected readonly db: CasbinDbClient;
|
|
12
|
-
protected readonly options: RbacModuleOptions;
|
|
13
|
-
protected enforcer: Enforcer | null;
|
|
14
|
-
constructor(db: CasbinDbClient, options: RbacModuleOptions);
|
|
15
|
-
/**
|
|
16
|
-
* Get or create the enforcer instance
|
|
17
|
-
*/
|
|
18
|
-
getEnforcer(): Promise<Enforcer>;
|
|
19
|
-
/**
|
|
20
|
-
* Create a new enforcer instance.
|
|
21
|
-
* Can be overridden by subclasses to customize enforcer creation.
|
|
22
|
-
*/
|
|
23
|
-
protected createEnforcer(): Promise<Enforcer>;
|
|
24
|
-
/**
|
|
25
|
-
* Seed default policies into database
|
|
26
|
-
*/
|
|
27
|
-
seedPolicies(): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Clear cached enforcer instance
|
|
30
|
-
*/
|
|
31
|
-
clearCache(): void;
|
|
32
|
-
/**
|
|
33
|
-
* Seed role hierarchy into database
|
|
34
|
-
*/
|
|
35
|
-
seedRoleHierarchy(): Promise<void>;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=casbin-enforcer.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"casbin-enforcer.service.d.ts","sourceRoot":"","sources":["../../../src/rbac/services/casbin-enforcer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG7E,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAEhG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjD;;;;;GAKG;AACH,qBACa,qBAAqB;IAK9B,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc;IAErC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB;IAN/C,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAO;gBAIrB,EAAE,EAAE,cAAc,EAElB,OAAO,EAAE,iBAAiB;IAG/C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAKtC;;;OAGG;cACa,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC;IASnD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAUzC"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
import { newCachedEnforcer, newModelFromString } from 'casbin';
|
|
14
|
-
import { DI_TOKENS, Transient } from 'stratal/di';
|
|
15
|
-
import { inject } from 'tsyringe';
|
|
16
|
-
import { CustomZenStackAdapter } from '../adapters/custom-zenstack-adapter';
|
|
17
|
-
import { RBAC_TOKENS } from '../tokens';
|
|
18
|
-
/**
|
|
19
|
-
* CasbinEnforcerService
|
|
20
|
-
*
|
|
21
|
-
* Manages the Casbin enforcer instance for authorization.
|
|
22
|
-
* Model, default policies, and role hierarchy are provided via DI options.
|
|
23
|
-
*/
|
|
24
|
-
let CasbinEnforcerService = class CasbinEnforcerService {
|
|
25
|
-
db;
|
|
26
|
-
options;
|
|
27
|
-
enforcer = null;
|
|
28
|
-
constructor(db, options) {
|
|
29
|
-
this.db = db;
|
|
30
|
-
this.options = options;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Get or create the enforcer instance
|
|
34
|
-
*/
|
|
35
|
-
async getEnforcer() {
|
|
36
|
-
this.enforcer ??= await this.createEnforcer();
|
|
37
|
-
return this.enforcer;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Create a new enforcer instance.
|
|
41
|
-
* Can be overridden by subclasses to customize enforcer creation.
|
|
42
|
-
*/
|
|
43
|
-
async createEnforcer() {
|
|
44
|
-
const model = newModelFromString(this.options.model);
|
|
45
|
-
const adapter = CustomZenStackAdapter.newAdapter(this.db);
|
|
46
|
-
const enforcer = await newCachedEnforcer(model, adapter);
|
|
47
|
-
await enforcer.loadPolicy();
|
|
48
|
-
return enforcer;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Seed default policies into database
|
|
52
|
-
*/
|
|
53
|
-
async seedPolicies() {
|
|
54
|
-
const enforcer = await this.getEnforcer();
|
|
55
|
-
const policies = this.options.defaultPolicies ?? [];
|
|
56
|
-
for (const [role, resource, action] of policies) {
|
|
57
|
-
await enforcer.addPolicy(role, resource, action);
|
|
58
|
-
}
|
|
59
|
-
await enforcer.savePolicy();
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Clear cached enforcer instance
|
|
63
|
-
*/
|
|
64
|
-
clearCache() {
|
|
65
|
-
this.enforcer = null;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Seed role hierarchy into database
|
|
69
|
-
*/
|
|
70
|
-
async seedRoleHierarchy() {
|
|
71
|
-
const enforcer = await this.getEnforcer();
|
|
72
|
-
const hierarchy = this.options.roleHierarchy ?? [];
|
|
73
|
-
for (const [childRole, parentRole] of hierarchy) {
|
|
74
|
-
await enforcer.addGroupingPolicy(childRole, parentRole);
|
|
75
|
-
}
|
|
76
|
-
await enforcer.savePolicy();
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
CasbinEnforcerService = __decorate([
|
|
80
|
-
Transient(),
|
|
81
|
-
__param(0, inject(DI_TOKENS.Database)),
|
|
82
|
-
__param(1, inject(RBAC_TOKENS.Options)),
|
|
83
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
84
|
-
], CasbinEnforcerService);
|
|
85
|
-
export { CasbinEnforcerService };
|
|
86
|
-
//# sourceMappingURL=casbin-enforcer.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"casbin-enforcer.service.js","sourceRoot":"","sources":["../../../src/rbac/services/casbin-enforcer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAiB,MAAM,QAAQ,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAuB,MAAM,qCAAqC,CAAA;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAGvC;;;;;GAKG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAKX;IAEA;IANX,QAAQ,GAAoB,IAAI,CAAA;IAE1C,YAEqB,EAAkB,EAElB,OAA0B;QAF1B,OAAE,GAAF,EAAE,CAAgB;QAElB,YAAO,GAAP,OAAO,CAAmB;IAC3C,CAAC;IAEL;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,cAAc;QAC5B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAEpD,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACxD,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAA;QAC3B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAA;QAEnD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAChD,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAA;QAElD,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,SAAS,EAAE,CAAC;YAChD,MAAM,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC;CACF,CAAA;AAjEY,qBAAqB;IADjC,SAAS,EAAE;IAKP,WAAA,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAE1B,WAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;;GANnB,qBAAqB,CAiEjC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { Enforcer } from 'casbin';
|
|
2
|
-
import type { AuthContext } from '../../context/auth-context';
|
|
3
|
-
import { CasbinEnforcerService } from './casbin-enforcer.service';
|
|
4
|
-
/**
|
|
5
|
-
* CasbinService
|
|
6
|
-
*
|
|
7
|
-
* Request-scoped service that provides the full Casbin RBAC API.
|
|
8
|
-
* Uses AuthContext to get the current user.
|
|
9
|
-
*/
|
|
10
|
-
export declare class CasbinService {
|
|
11
|
-
protected readonly context: AuthContext;
|
|
12
|
-
protected readonly enforcerService: CasbinEnforcerService;
|
|
13
|
-
constructor(context: AuthContext, enforcerService: CasbinEnforcerService);
|
|
14
|
-
protected getEnforcer(): Promise<Enforcer>;
|
|
15
|
-
addRoleForUser(userId: string, role: string): Promise<boolean>;
|
|
16
|
-
deleteRoleForUser(userId: string, role: string): Promise<boolean>;
|
|
17
|
-
deleteRolesForUser(userId: string): Promise<boolean>;
|
|
18
|
-
getRolesForUser(userId: string): Promise<string[]>;
|
|
19
|
-
getImplicitRolesForUser(userId: string): Promise<string[]>;
|
|
20
|
-
getUsersForRole(role: string): Promise<string[]>;
|
|
21
|
-
getImplicitUsersForRole(role: string): Promise<string[]>;
|
|
22
|
-
hasRoleForUser(userId: string, role: string): Promise<boolean>;
|
|
23
|
-
addRoleInheritance(childRole: string, parentRole: string): Promise<boolean>;
|
|
24
|
-
deleteRoleInheritance(childRole: string, parentRole: string): Promise<boolean>;
|
|
25
|
-
deleteUser(userId: string): Promise<boolean>;
|
|
26
|
-
deleteRole(role: string): Promise<boolean>;
|
|
27
|
-
getCurrentUserRoles(): Promise<string[]>;
|
|
28
|
-
currentUserHasRole(role: string): Promise<boolean>;
|
|
29
|
-
setRolesForUser(userId: string, roles: string[]): Promise<void>;
|
|
30
|
-
hasPermission(userId: string, scope: string, action: string): Promise<boolean>;
|
|
31
|
-
currentUserHasPermission(scope: string, action: string): Promise<boolean>;
|
|
32
|
-
hasAnyPermission(userId: string, scopes: string[], action: string): Promise<boolean>;
|
|
33
|
-
currentUserHasAnyPermission(scopes: string[], action: string): Promise<boolean>;
|
|
34
|
-
getPermissionsForUserAsCasbinJs(userId: string): Promise<Record<string, string[]>>;
|
|
35
|
-
getCurrentUserPermissionsAsCasbinJs(): Promise<Record<string, string[]>>;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=casbin.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"casbin.service.d.ts","sourceRoot":"","sources":["../../../src/rbac/services/casbin.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAGtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEjE;;;;;GAKG;AACH,qBACa,aAAa;IAGtB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW;IAEvC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,qBAAqB;gBAFtC,OAAO,EAAE,WAAW,EAEpB,eAAe,EAAE,qBAAqB;cAG3C,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAM1C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO9D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOjE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKlD,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK1D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKhD,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKxD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO9D,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3E,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9E,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1C,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMxC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9E,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMzE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOpF,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/E,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAelF,mCAAmC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAK/E"}
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
-
};
|
|
13
|
-
import { inject } from 'tsyringe';
|
|
14
|
-
import { Transient, DI_TOKENS } from 'stratal/di';
|
|
15
|
-
import { RBAC_TOKENS } from '../tokens';
|
|
16
|
-
import { CasbinEnforcerService } from './casbin-enforcer.service';
|
|
17
|
-
/**
|
|
18
|
-
* CasbinService
|
|
19
|
-
*
|
|
20
|
-
* Request-scoped service that provides the full Casbin RBAC API.
|
|
21
|
-
* Uses AuthContext to get the current user.
|
|
22
|
-
*/
|
|
23
|
-
let CasbinService = class CasbinService {
|
|
24
|
-
context;
|
|
25
|
-
enforcerService;
|
|
26
|
-
constructor(context, enforcerService) {
|
|
27
|
-
this.context = context;
|
|
28
|
-
this.enforcerService = enforcerService;
|
|
29
|
-
}
|
|
30
|
-
async getEnforcer() {
|
|
31
|
-
return this.enforcerService.getEnforcer();
|
|
32
|
-
}
|
|
33
|
-
// ==================== USER-ROLE MANAGEMENT ====================
|
|
34
|
-
async addRoleForUser(userId, role) {
|
|
35
|
-
const enforcer = await this.getEnforcer();
|
|
36
|
-
const added = await enforcer.addRoleForUser(userId, role);
|
|
37
|
-
if (added)
|
|
38
|
-
await enforcer.savePolicy();
|
|
39
|
-
return added;
|
|
40
|
-
}
|
|
41
|
-
async deleteRoleForUser(userId, role) {
|
|
42
|
-
const enforcer = await this.getEnforcer();
|
|
43
|
-
const deleted = await enforcer.deleteRoleForUser(userId, role);
|
|
44
|
-
if (deleted)
|
|
45
|
-
await enforcer.savePolicy();
|
|
46
|
-
return deleted;
|
|
47
|
-
}
|
|
48
|
-
async deleteRolesForUser(userId) {
|
|
49
|
-
const enforcer = await this.getEnforcer();
|
|
50
|
-
const deleted = await enforcer.deleteRolesForUser(userId);
|
|
51
|
-
if (deleted)
|
|
52
|
-
await enforcer.savePolicy();
|
|
53
|
-
return deleted;
|
|
54
|
-
}
|
|
55
|
-
async getRolesForUser(userId) {
|
|
56
|
-
const enforcer = await this.getEnforcer();
|
|
57
|
-
return enforcer.getRolesForUser(userId);
|
|
58
|
-
}
|
|
59
|
-
async getImplicitRolesForUser(userId) {
|
|
60
|
-
const enforcer = await this.getEnforcer();
|
|
61
|
-
return enforcer.getImplicitRolesForUser(userId);
|
|
62
|
-
}
|
|
63
|
-
async getUsersForRole(role) {
|
|
64
|
-
const enforcer = await this.getEnforcer();
|
|
65
|
-
return enforcer.getUsersForRole(role);
|
|
66
|
-
}
|
|
67
|
-
async getImplicitUsersForRole(role) {
|
|
68
|
-
const enforcer = await this.getEnforcer();
|
|
69
|
-
return enforcer.getImplicitUsersForRole(role);
|
|
70
|
-
}
|
|
71
|
-
async hasRoleForUser(userId, role) {
|
|
72
|
-
const enforcer = await this.getEnforcer();
|
|
73
|
-
return enforcer.hasRoleForUser(userId, role);
|
|
74
|
-
}
|
|
75
|
-
// ==================== ROLE HIERARCHY MANAGEMENT ====================
|
|
76
|
-
async addRoleInheritance(childRole, parentRole) {
|
|
77
|
-
const enforcer = await this.getEnforcer();
|
|
78
|
-
const added = await enforcer.addGroupingPolicy(childRole, parentRole);
|
|
79
|
-
if (added)
|
|
80
|
-
await enforcer.savePolicy();
|
|
81
|
-
return added;
|
|
82
|
-
}
|
|
83
|
-
async deleteRoleInheritance(childRole, parentRole) {
|
|
84
|
-
const enforcer = await this.getEnforcer();
|
|
85
|
-
const deleted = await enforcer.removeGroupingPolicy(childRole, parentRole);
|
|
86
|
-
if (deleted)
|
|
87
|
-
await enforcer.savePolicy();
|
|
88
|
-
return deleted;
|
|
89
|
-
}
|
|
90
|
-
// ==================== USER/ROLE DELETION ====================
|
|
91
|
-
async deleteUser(userId) {
|
|
92
|
-
const enforcer = await this.getEnforcer();
|
|
93
|
-
const deleted = await enforcer.deleteUser(userId);
|
|
94
|
-
if (deleted)
|
|
95
|
-
await enforcer.savePolicy();
|
|
96
|
-
return deleted;
|
|
97
|
-
}
|
|
98
|
-
async deleteRole(role) {
|
|
99
|
-
const enforcer = await this.getEnforcer();
|
|
100
|
-
const deleted = await enforcer.deleteRole(role);
|
|
101
|
-
if (deleted)
|
|
102
|
-
await enforcer.savePolicy();
|
|
103
|
-
return deleted;
|
|
104
|
-
}
|
|
105
|
-
// ==================== CONVENIENCE METHODS ====================
|
|
106
|
-
async getCurrentUserRoles() {
|
|
107
|
-
const userId = this.context.getUserId();
|
|
108
|
-
if (!userId)
|
|
109
|
-
return [];
|
|
110
|
-
return this.getImplicitRolesForUser(userId);
|
|
111
|
-
}
|
|
112
|
-
async currentUserHasRole(role) {
|
|
113
|
-
const roles = await this.getCurrentUserRoles();
|
|
114
|
-
return roles.includes(role);
|
|
115
|
-
}
|
|
116
|
-
async setRolesForUser(userId, roles) {
|
|
117
|
-
const enforcer = await this.getEnforcer();
|
|
118
|
-
await enforcer.deleteRolesForUser(userId);
|
|
119
|
-
for (const role of roles) {
|
|
120
|
-
await enforcer.addRoleForUser(userId, role);
|
|
121
|
-
}
|
|
122
|
-
await enforcer.savePolicy();
|
|
123
|
-
}
|
|
124
|
-
// ==================== PERMISSION CHECKING ====================
|
|
125
|
-
async hasPermission(userId, scope, action) {
|
|
126
|
-
const enforcer = await this.getEnforcer();
|
|
127
|
-
return enforcer.enforce(userId, scope, action);
|
|
128
|
-
}
|
|
129
|
-
async currentUserHasPermission(scope, action) {
|
|
130
|
-
const userId = this.context.getUserId();
|
|
131
|
-
if (!userId)
|
|
132
|
-
return false;
|
|
133
|
-
return this.hasPermission(userId, scope, action);
|
|
134
|
-
}
|
|
135
|
-
async hasAnyPermission(userId, scopes, action) {
|
|
136
|
-
const enforcer = await this.getEnforcer();
|
|
137
|
-
const requests = scopes.map(scope => [userId, scope, action]);
|
|
138
|
-
const results = await enforcer.batchEnforce(requests);
|
|
139
|
-
return results.some(allowed => allowed);
|
|
140
|
-
}
|
|
141
|
-
async currentUserHasAnyPermission(scopes, action) {
|
|
142
|
-
const userId = this.context.getUserId();
|
|
143
|
-
if (!userId)
|
|
144
|
-
return false;
|
|
145
|
-
return this.hasAnyPermission(userId, scopes, action);
|
|
146
|
-
}
|
|
147
|
-
// ==================== CASBIN.JS FRONTEND SUPPORT ====================
|
|
148
|
-
async getPermissionsForUserAsCasbinJs(userId) {
|
|
149
|
-
const enforcer = await this.getEnforcer();
|
|
150
|
-
const permissions = await enforcer.getImplicitPermissionsForUser(userId);
|
|
151
|
-
const result = {};
|
|
152
|
-
for (const [_role, resource, action] of permissions) {
|
|
153
|
-
result[action] ??= [];
|
|
154
|
-
if (!result[action].includes(resource)) {
|
|
155
|
-
result[action].push(resource);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return result;
|
|
159
|
-
}
|
|
160
|
-
async getCurrentUserPermissionsAsCasbinJs() {
|
|
161
|
-
const userId = this.context.getUserId();
|
|
162
|
-
if (!userId)
|
|
163
|
-
return {};
|
|
164
|
-
return this.getPermissionsForUserAsCasbinJs(userId);
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
CasbinService = __decorate([
|
|
168
|
-
Transient(RBAC_TOKENS.CasbinService),
|
|
169
|
-
__param(0, inject(DI_TOKENS.AuthContext)),
|
|
170
|
-
__param(1, inject(CasbinEnforcerService)),
|
|
171
|
-
__metadata("design:paramtypes", [Function, CasbinEnforcerService])
|
|
172
|
-
], CasbinService);
|
|
173
|
-
export { CasbinService };
|
|
174
|
-
//# sourceMappingURL=casbin.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"casbin.service.js","sourceRoot":"","sources":["../../../src/rbac/services/casbin.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rbac/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rbac/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA"}
|
package/dist/rbac/tokens.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RBAC DI Tokens
|
|
3
|
-
*/
|
|
4
|
-
export declare const RBAC_TOKENS: {
|
|
5
|
-
/** Request-scoped Casbin service with auto context resolution */
|
|
6
|
-
readonly CasbinService: symbol;
|
|
7
|
-
/** RBAC module options (model, policies, hierarchy) */
|
|
8
|
-
readonly Options: symbol;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/rbac/tokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,iEAAiE;;IAEjE,uDAAuD;;CAE/C,CAAA"}
|
package/dist/rbac/tokens.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RBAC DI Tokens
|
|
3
|
-
*/
|
|
4
|
-
export const RBAC_TOKENS = {
|
|
5
|
-
/** Request-scoped Casbin service with auto context resolution */
|
|
6
|
-
CasbinService: Symbol.for('stratal:rbac:casbin:service'),
|
|
7
|
-
/** RBAC module options (model, policies, hierarchy) */
|
|
8
|
-
Options: Symbol.for('stratal:rbac:options'),
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=tokens.js.map
|
package/dist/rbac/tokens.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/rbac/tokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,iEAAiE;IACjE,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC;IACxD,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;CACnC,CAAA"}
|
package/dist/rbac/types.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration options for the RBAC module
|
|
3
|
-
*/
|
|
4
|
-
export interface RbacModuleOptions {
|
|
5
|
-
/** Casbin PERM model string */
|
|
6
|
-
model: string;
|
|
7
|
-
/** Default policies: [role, resource, action][] */
|
|
8
|
-
defaultPolicies?: readonly (readonly [string, string, string])[];
|
|
9
|
-
/** Role hierarchy: [childRole, parentRole][] */
|
|
10
|
-
roleHierarchy?: readonly (readonly [string, string])[];
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/rbac/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rbac/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;IAChE,gDAAgD;IAChD,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;CACvD"}
|
package/dist/rbac/types.js
DELETED
package/dist/rbac/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/rbac/types.ts"],"names":[],"mappings":""}
|