@spinajs/rbac 2.0.131 → 2.0.133
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/cjs/config/rbac.d.ts +1 -0
- package/lib/cjs/config/rbac.d.ts.map +1 -1
- package/lib/cjs/config/rbac.js +3 -2
- package/lib/cjs/config/rbac.js.map +1 -1
- package/lib/cjs/decorators/Resource.d.ts +9 -0
- package/lib/cjs/decorators/Resource.d.ts.map +1 -0
- package/lib/cjs/decorators/Resource.js +18 -0
- package/lib/cjs/decorators/Resource.js.map +1 -0
- package/lib/cjs/index.d.ts +1 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +20 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +23 -0
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/models/User.d.ts +15 -1
- package/lib/cjs/models/User.d.ts.map +1 -1
- package/lib/cjs/models/User.js +23 -0
- package/lib/cjs/models/User.js.map +1 -1
- package/lib/mjs/config/rbac.d.ts +1 -0
- package/lib/mjs/config/rbac.d.ts.map +1 -1
- package/lib/mjs/config/rbac.js +3 -2
- package/lib/mjs/config/rbac.js.map +1 -1
- package/lib/mjs/decorators/Resource.d.ts +9 -0
- package/lib/mjs/decorators/Resource.d.ts.map +1 -0
- package/lib/mjs/decorators/Resource.js +14 -0
- package/lib/mjs/decorators/Resource.js.map +1 -0
- package/lib/mjs/index.d.ts +1 -1
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +19 -1
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +23 -0
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/models/User.d.ts +15 -1
- package/lib/mjs/models/User.d.ts.map +1 -1
- package/lib/mjs/models/User.js +23 -0
- package/lib/mjs/models/User.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +10 -10
package/lib/cjs/config/rbac.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA0GJ;;eAEG;;;;;;;;CAWR,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/lib/cjs/config/rbac.js
CHANGED
|
@@ -41,6 +41,7 @@ const rbac = {
|
|
|
41
41
|
],
|
|
42
42
|
},
|
|
43
43
|
rbac: {
|
|
44
|
+
enableGuestAccount: false,
|
|
44
45
|
timeline: {
|
|
45
46
|
schedule: '1 0 */1 * *',
|
|
46
47
|
ttl: 24 * 60,
|
|
@@ -73,8 +74,8 @@ const rbac = {
|
|
|
73
74
|
},
|
|
74
75
|
user: {
|
|
75
76
|
users: {
|
|
76
|
-
'read:own': ['Email', 'Login'
|
|
77
|
-
'update:own': ['Email', 'Login', 'Password'
|
|
77
|
+
'read:own': ['Email', 'Login'],
|
|
78
|
+
'update:own': ['Email', 'Login', 'Password'],
|
|
78
79
|
},
|
|
79
80
|
},
|
|
80
81
|
admin: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":";;AAAA,+BAAgD;AAChD,oCAAiC;AAEjC,MAAM,SAAS,GAAG,OAAE,CAAC,GAAG,CAAU,aAAa,CAAC,CAAC;AAEjD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,IAAI,GAAG;IACX,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,CAAC,6BAA6B,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;SAC7E;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,OAAO,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAChD,aAAa,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACtD,UAAU,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACnD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,WAAW,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACpD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,iBAAiB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC1D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,YAAY,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACrD,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;SACzD;QAED,6EAA6E;QAC7E,iDAAiD;QACjD,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,sBAAsB;gBAC/B,mBAAmB,EAAE,WAAW;gBAChC,mBAAmB,EAAE,aAAa;aACnC;SACF;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,QAAQ,EAAE,aAAa;YACvB,GAAG,EAAE,EAAE,GAAG,EAAE;SACb;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,wCAAwC;YACxC,yDAAyD;YACzD,0BAA0B,EAAE,KAAK;SAClC;QACD,gDAAgD;QAChD,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,sCAAsC;aACpD;SACF;QACD,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,KAAK,EAAE;oBACL,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,YAAY,EAAE,CAAC,GAAG,CAAC;iBACpB;aACF;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assign resource name for given model ( RBAC ).
|
|
3
|
+
* NOTE: this decorator is optional, if model does not have resource assigned
|
|
4
|
+
* model name will be used as default
|
|
5
|
+
*
|
|
6
|
+
* @param name - table name in database that is referred by this model
|
|
7
|
+
*/
|
|
8
|
+
export declare function OrmResource(resourceName: string): any;
|
|
9
|
+
//# sourceMappingURL=Resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../../src/decorators/Resource.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,OAI/C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrmResource = void 0;
|
|
4
|
+
const orm_1 = require("@spinajs/orm");
|
|
5
|
+
/**
|
|
6
|
+
* Assign resource name for given model ( RBAC ).
|
|
7
|
+
* NOTE: this decorator is optional, if model does not have resource assigned
|
|
8
|
+
* model name will be used as default
|
|
9
|
+
*
|
|
10
|
+
* @param name - table name in database that is referred by this model
|
|
11
|
+
*/
|
|
12
|
+
function OrmResource(resourceName) {
|
|
13
|
+
return (0, orm_1.extractDecoratorDescriptor)((model) => {
|
|
14
|
+
model.RbacResource = resourceName;
|
|
15
|
+
}, false);
|
|
16
|
+
}
|
|
17
|
+
exports.OrmResource = OrmResource;
|
|
18
|
+
//# sourceMappingURL=Resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resource.js","sourceRoot":"","sources":["../../../src/decorators/Resource.ts"],"names":[],"mappings":";;;AAAA,sCAA0D;AAG1D;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,YAAoB;IAC9C,OAAO,IAAA,gCAA0B,EAAC,CAAC,KAA2B,EAAE,EAAE;QAChE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;IACpC,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAJD,kCAIC"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export * from './models/UserMetadata.js';
|
|
|
11
11
|
export * from './models/UserTimeline.js';
|
|
12
12
|
export * from './migrations/RBACInitial_2022_06_28_01_13_00.js';
|
|
13
13
|
export * from './events/index.js';
|
|
14
|
-
export { AccessControl } from 'accesscontrol';
|
|
14
|
+
export { AccessControl, Permission } from 'accesscontrol';
|
|
15
15
|
export declare class RbacBootstrapper extends Bootstrapper {
|
|
16
16
|
bootstrap(): void;
|
|
17
17
|
}
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AACvE,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AACvE,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AAMtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iDAAiD,CAAC;AAChE,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1D,qBACa,gBAAiB,SAAQ,YAAY;IACzC,SAAS,IAAI,IAAI;CA8BzB"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -20,12 +20,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
20
20
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.RbacBootstrapper = exports.AccessControl = void 0;
|
|
23
|
+
exports.RbacBootstrapper = exports.Permission = exports.AccessControl = void 0;
|
|
24
24
|
const di_1 = require("@spinajs/di");
|
|
25
25
|
require("./auth.js");
|
|
26
26
|
require("./password.js");
|
|
27
27
|
require("./session.js");
|
|
28
28
|
const accesscontrol_1 = require("accesscontrol");
|
|
29
|
+
const configuration_1 = require("@spinajs/configuration");
|
|
30
|
+
const User_js_1 = require("./models/User.js");
|
|
29
31
|
__exportStar(require("./interfaces.js"), exports);
|
|
30
32
|
__exportStar(require("./auth.js"), exports);
|
|
31
33
|
__exportStar(require("./password.js"), exports);
|
|
@@ -37,6 +39,7 @@ __exportStar(require("./migrations/RBACInitial_2022_06_28_01_13_00.js"), exports
|
|
|
37
39
|
__exportStar(require("./events/index.js"), exports);
|
|
38
40
|
var accesscontrol_2 = require("accesscontrol");
|
|
39
41
|
Object.defineProperty(exports, "AccessControl", { enumerable: true, get: function () { return accesscontrol_2.AccessControl; } });
|
|
42
|
+
Object.defineProperty(exports, "Permission", { enumerable: true, get: function () { return accesscontrol_2.Permission; } });
|
|
40
43
|
let RbacBootstrapper = class RbacBootstrapper extends di_1.Bootstrapper {
|
|
41
44
|
bootstrap() {
|
|
42
45
|
const ac = new accesscontrol_1.AccessControl();
|
|
@@ -48,6 +51,22 @@ let RbacBootstrapper = class RbacBootstrapper extends di_1.Bootstrapper {
|
|
|
48
51
|
ac.setGrants(grants);
|
|
49
52
|
}
|
|
50
53
|
});
|
|
54
|
+
/**
|
|
55
|
+
* Register factory function for creating user from session data
|
|
56
|
+
*/
|
|
57
|
+
di_1.DI.register((_, userData) => {
|
|
58
|
+
return new User_js_1.User(userData);
|
|
59
|
+
}).as('RbacUserFactory');
|
|
60
|
+
di_1.DI.register((_) => {
|
|
61
|
+
const conf = di_1.DI.get(configuration_1.Configuration);
|
|
62
|
+
const guestEnabled = conf.get('rbac.enableGuestAccount', false);
|
|
63
|
+
return new User_js_1.User({
|
|
64
|
+
Login: 'guest',
|
|
65
|
+
Email: 'guest@spinajs.com',
|
|
66
|
+
Role: ['guest'],
|
|
67
|
+
IsEnabled: guestEnabled,
|
|
68
|
+
});
|
|
69
|
+
}).as('RbacGuestUserFactory');
|
|
51
70
|
}
|
|
52
71
|
};
|
|
53
72
|
RbacBootstrapper = __decorate([
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAuE;AACvE,qBAAmB;AACnB,yBAAuB;AACvB,wBAAsB;AACtB,iDAA8C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAuE;AACvE,qBAAmB;AACnB,yBAAuB;AACvB,wBAAsB;AACtB,iDAA8C;AAC9C,0DAAuD;AAEvD,8CAAwC;AAExC,kDAAgC;AAChC,4CAA0B;AAC1B,gDAA8B;AAC9B,+CAA6B;AAC7B,mDAAiC;AACjC,2DAAyC;AACzC,2DAAyC;AACzC,kFAAgE;AAChE,oDAAkC;AAClC,+CAA0D;AAAjD,8GAAA,aAAa,OAAA;AAAE,2GAAA,UAAU,OAAA;AAG3B,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,iBAAY;IACzC,SAAS;QACd,MAAM,EAAE,GAAG,IAAI,6BAAa,EAAE,CAAC;QAC/B,OAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACzC,OAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,SAAqB,EAAE,aAA4B,EAAE,EAAE;YAC3F,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAgB,eAAe,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE;gBACV,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QAEH;;WAEG;QACH,OAAE,CAAC,QAAQ,CAAC,CAAC,CAAa,EAAE,QAAyB,EAAE,EAAE;YACvD,OAAO,IAAI,cAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAEzB,OAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,GAAG,OAAE,CAAC,GAAG,CAAC,6BAAa,CAAC,CAAC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAEhE,OAAO,IAAI,cAAI,CAAC;gBACd,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,CAAC,OAAO,CAAC;gBACf,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AA/BY,gBAAgB;IAD5B,IAAA,eAAU,EAAC,iBAAY,CAAC;GACZ,gBAAgB,CA+B5B;AA/BY,4CAAgB"}
|
package/lib/cjs/interfaces.d.ts
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import { User } from './models/User.js';
|
|
2
2
|
import { AsyncService } from '@spinajs/di';
|
|
3
|
+
import { IDeleteQueryBuilder, IModelDescriptor, IQueryBuilder, ISelectQueryBuilder, IUpdateQueryBuilder, ModelBase } from '@spinajs/orm';
|
|
3
4
|
import { DateTime } from 'luxon';
|
|
5
|
+
declare module '@spinajs/orm' {
|
|
6
|
+
interface IModelStatic {
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* Alters query to check ownership of queried resource. Ensures that query returns only owned user data
|
|
10
|
+
*
|
|
11
|
+
* @param query query to alter
|
|
12
|
+
* @param user user to check againts ownership
|
|
13
|
+
* @param modelDescriptor resource model descriptor
|
|
14
|
+
*/
|
|
15
|
+
ensureOwnership(query: ISelectQueryBuilder<any> | IUpdateQueryBuilder<any> | IDeleteQueryBuilder<any>, user: User, modelDescriptor: IModelDescriptor): IQueryBuilder;
|
|
16
|
+
/**
|
|
17
|
+
* Checks ownership of retrieved model by user
|
|
18
|
+
* @param model model to check
|
|
19
|
+
* @param user user to check against ownership
|
|
20
|
+
*/
|
|
21
|
+
checkOwnership<M>(model: ModelBase<M>, user?: User): Promise<boolean>;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
4
24
|
export interface ISession {
|
|
5
25
|
/**
|
|
6
26
|
* Session identifier
|
|
@@ -194,6 +214,9 @@ export declare enum AthenticationErrorCodes {
|
|
|
194
214
|
E_INVALID_CREDENTIALS = "E_INVALID_CREDENTIALS",
|
|
195
215
|
E_LOGIN_ATTEMPTS_EXCEEDED = "E_LOGIN_ATTEMPTS_EXCEEDED"
|
|
196
216
|
}
|
|
217
|
+
export interface IRbacModelDescriptor extends IModelDescriptor {
|
|
218
|
+
RbacResource: string;
|
|
219
|
+
}
|
|
197
220
|
/**
|
|
198
221
|
* Authentication result
|
|
199
222
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;AACA,oCAA2C;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAuD3C;;GAEG;AACH,MAAsB,gBAAgB;CAsBrC;AAtBD,4CAsBC;AAED;;;;;GAKG;AACH,MAAsB,YAAY;CAgEjC;AAhED,oCAgEC;AAED;;;;;;GAMG;AACH,MAAsB,qBAAqB;CAwB1C;AAxBD,sDAwBC;AAED,MAAsB,eAA8B,SAAQ,iBAAY;CAgDvE;AAhDD,0CAgDC;AAED,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,0DAA+B,CAAA;IAC/B,kEAAuC,CAAA;IACvC,0EAA+C,CAAA;IAC/C,kFAAuD,CAAA;AACzD,CAAC,EALW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAKlC;AA+BD;;GAEG;AACH,MAAsB,0BAA0B;CAE/C;AAFD,gEAEC"}
|
package/lib/cjs/models/User.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DateTime } from 'luxon';
|
|
2
2
|
import { ModelBase, Relation, OneToManyRelationList, QueryScope, ISelectQueryBuilder } from '@spinajs/orm';
|
|
3
|
+
import { Permission } from 'accesscontrol';
|
|
3
4
|
import { UserMetadata } from './UserMetadata.js';
|
|
4
5
|
import { UserAction } from './UserTimeline.js';
|
|
5
6
|
declare class UserMetadataRelation extends OneToManyRelationList<UserMetadata, User> {
|
|
@@ -74,7 +75,20 @@ export declare class User extends ModelBase {
|
|
|
74
75
|
*/
|
|
75
76
|
Metadata: UserMetadataRelation;
|
|
76
77
|
Actions: Relation<UserAction, User>;
|
|
77
|
-
can(resource: string, permission: string):
|
|
78
|
+
can(resource: string, permission: string): Permission;
|
|
79
|
+
/**
|
|
80
|
+
* Shorthand for check if user can read any resource
|
|
81
|
+
* @param resource
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
canReadAny(resource: string): Permission;
|
|
85
|
+
canReadOwn(resource: string): Permission;
|
|
86
|
+
canUpdateAny(_resource: string): void;
|
|
87
|
+
canUpdateOwn(_resource: string): void;
|
|
88
|
+
canDeleteAny(): void;
|
|
89
|
+
canDeleteOwn(): void;
|
|
90
|
+
canCreateAny(): void;
|
|
91
|
+
canCreateOwn(): void;
|
|
78
92
|
}
|
|
79
93
|
export {};
|
|
80
94
|
//# sourceMappingURL=User.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAA8D,QAAQ,EAAwB,qBAAqB,EAAuB,UAAU,EAAmB,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAA8D,QAAQ,EAAwB,qBAAqB,EAAuB,UAAU,EAAmB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnO,OAAO,EAAiB,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,cAAM,oBAAqB,SAAQ,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC;IAC1E;;;;;;OAMG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAexC;;;;;OAKG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAkBxC,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AA6DD,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC;CAOpD;AAED;;;;GAIG;AACH,qBAEa,IAAK,SAAQ,SAAS;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAsB;IAEjD,gBAAuB,YAAY,EAAE,eAAe,CAAyB;IAGtE,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAErB;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,KAAK,EAAE,MAAM,CAAC;IAErB;;OAEG;IACI,IAAI,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IAEI,SAAS,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IAEI,YAAY,EAAE,QAAQ,CAAC;IAE9B;;OAEG;IAEI,SAAS,EAAE,QAAQ,CAAC;IAGpB,WAAW,EAAE,QAAQ,CAAC;IAEtB,QAAQ,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACI,QAAQ,EAAE,OAAO,CAAC;IAEzB;;OAEG;IAII,QAAQ,EAAE,oBAAoB,CAAC;IAG/B,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEpC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU;IAK5D;;;;OAIG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM;IAG3B,UAAU,CAAC,QAAQ,EAAE,MAAM;IAI3B,YAAY,CAAC,SAAS,EAAG,MAAM;IAI/B,YAAY,CAAC,SAAS,EAAE,MAAM;IAI9B,YAAY;IAIZ,YAAY;IAIZ,YAAY;IAIZ,YAAY;CAGpB"}
|
package/lib/cjs/models/User.js
CHANGED
|
@@ -144,6 +144,29 @@ let User = class User extends orm_1.ModelBase {
|
|
|
144
144
|
const ac = di_1.DI.get('AccessControl');
|
|
145
145
|
return ac.can(this.Role)[permission](resource);
|
|
146
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Shorthand for check if user can read any resource
|
|
149
|
+
* @param resource
|
|
150
|
+
* @returns
|
|
151
|
+
*/
|
|
152
|
+
canReadAny(resource) {
|
|
153
|
+
return this.can(resource, 'readAny');
|
|
154
|
+
}
|
|
155
|
+
canReadOwn(resource) {
|
|
156
|
+
return this.can(resource, 'readOwn');
|
|
157
|
+
}
|
|
158
|
+
canUpdateAny(_resource) {
|
|
159
|
+
}
|
|
160
|
+
canUpdateOwn(_resource) {
|
|
161
|
+
}
|
|
162
|
+
canDeleteAny() {
|
|
163
|
+
}
|
|
164
|
+
canDeleteOwn() {
|
|
165
|
+
}
|
|
166
|
+
canCreateAny() {
|
|
167
|
+
}
|
|
168
|
+
canCreateOwn() {
|
|
169
|
+
}
|
|
147
170
|
};
|
|
148
171
|
User._queryScopes = new UserQueryScopes();
|
|
149
172
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/config/rbac.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA0GJ;;eAEG;;;;;;;;CAWR,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/lib/mjs/config/rbac.js
CHANGED
|
@@ -39,6 +39,7 @@ const rbac = {
|
|
|
39
39
|
],
|
|
40
40
|
},
|
|
41
41
|
rbac: {
|
|
42
|
+
enableGuestAccount: false,
|
|
42
43
|
timeline: {
|
|
43
44
|
schedule: '1 0 */1 * *',
|
|
44
45
|
ttl: 24 * 60,
|
|
@@ -71,8 +72,8 @@ const rbac = {
|
|
|
71
72
|
},
|
|
72
73
|
user: {
|
|
73
74
|
users: {
|
|
74
|
-
'read:own': ['Email', 'Login'
|
|
75
|
-
'update:own': ['Email', 'Login', 'Password'
|
|
75
|
+
'read:own': ['Email', 'Login'],
|
|
76
|
+
'update:own': ['Email', 'Login', 'Password'],
|
|
76
77
|
},
|
|
77
78
|
},
|
|
78
79
|
admin: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAU,aAAa,CAAC,CAAC;AAEjD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,IAAI,GAAG;IACX,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,CAAC,6BAA6B,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;SAC7E;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,OAAO,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAChD,aAAa,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACtD,UAAU,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACnD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,WAAW,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACpD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,iBAAiB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC1D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,YAAY,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACrD,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;SACzD;QAED,6EAA6E;QAC7E,iDAAiD;QACjD,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,sBAAsB;gBAC/B,mBAAmB,EAAE,WAAW;gBAChC,mBAAmB,EAAE,aAAa;aACnC;SACF;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE;YACR,QAAQ,EAAE,aAAa;YACvB,GAAG,EAAE,EAAE,GAAG,EAAE;SACb;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,wCAAwC;YACxC,yDAAyD;YACzD,0BAA0B,EAAE,KAAK;SAClC;QACD,gDAAgD;QAChD,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,sCAAsC;aACpD;SACF;QACD,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,KAAK,EAAE;oBACL,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,YAAY,EAAE,CAAC,GAAG,CAAC;iBACpB;aACF;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../../src/config/rbac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAU,aAAa,CAAC,CAAC;AAEjD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,IAAI,GAAG;IACX,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,CAAC,6BAA6B,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;SAC7E;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,OAAO,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAChD,aAAa,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACtD,UAAU,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACnD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,WAAW,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACpD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,iBAAiB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC1D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,YAAY,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACrD,mBAAmB,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YAC5D,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxD,eAAe,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE;SACzD;QAED,6EAA6E;QAC7E,iDAAiD;QACjD,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,sBAAsB;gBAC/B,mBAAmB,EAAE,WAAW;gBAChC,mBAAmB,EAAE,aAAa;aACnC;SACF;KACF;IACD,IAAI,EAAE;QACJ,kBAAkB,EAAE,KAAK;QACzB,QAAQ,EAAE;YACR,QAAQ,EAAE,aAAa;YACvB,GAAG,EAAE,EAAE,GAAG,EAAE;SACb;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,wCAAwC;YACxC,yDAAyD;YACzD,0BAA0B,EAAE,KAAK;SAClC;QACD,gDAAgD;QAChD,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,sCAAsC;aACpD;SACF;QACD,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,KAAK,EAAE;oBACL,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,YAAY,EAAE,CAAC,GAAG,CAAC;iBACpB;aACF;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;oBAC9B,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;iBAC7C;aACF;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB;SACF;QACD,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE;YACJ,OAAO,EAAE,sBAAsB;SAChC;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,uBAAuB;YAEhC,UAAU,EAAE;gBACV,OAAO,EAAE,iCAAiC;gBAC1C,IAAI,EAAE;oBACJ,mCAAmC;oBACnC,iCAAiC;oBAEjC,+DAA+D;oBAC/D,OAAO,EAAE,sCAAsC;oBAE/C,uFAAuF;oBACvF,6EAA6E;oBAE7E,+FAA+F;oBAC/F,6DAA6D;oBAE7D,+FAA+F;oBAC/F,mFAAmF;oBAEnF,IAAI,EAAE,QAAQ;iBACf;aACF;YAED;;eAEG;YACH,sBAAsB,EAAE,CAAC;SAC1B;QACD,OAAO,EAAE;YACP,OAAO,EAAE,oBAAoB;YAE7B,8BAA8B;YAC9B,kBAAkB;YAClB,UAAU,EAAE,GAAG;SAChB;KACF;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assign resource name for given model ( RBAC ).
|
|
3
|
+
* NOTE: this decorator is optional, if model does not have resource assigned
|
|
4
|
+
* model name will be used as default
|
|
5
|
+
*
|
|
6
|
+
* @param name - table name in database that is referred by this model
|
|
7
|
+
*/
|
|
8
|
+
export declare function OrmResource(resourceName: string): any;
|
|
9
|
+
//# sourceMappingURL=Resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../../src/decorators/Resource.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,OAI/C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { extractDecoratorDescriptor } from '@spinajs/orm';
|
|
2
|
+
/**
|
|
3
|
+
* Assign resource name for given model ( RBAC ).
|
|
4
|
+
* NOTE: this decorator is optional, if model does not have resource assigned
|
|
5
|
+
* model name will be used as default
|
|
6
|
+
*
|
|
7
|
+
* @param name - table name in database that is referred by this model
|
|
8
|
+
*/
|
|
9
|
+
export function OrmResource(resourceName) {
|
|
10
|
+
return extractDecoratorDescriptor((model) => {
|
|
11
|
+
model.RbacResource = resourceName;
|
|
12
|
+
}, false);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resource.js","sourceRoot":"","sources":["../../../src/decorators/Resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAG1D;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC9C,OAAO,0BAA0B,CAAC,CAAC,KAA2B,EAAE,EAAE;QAChE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;IACpC,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export * from './models/UserMetadata.js';
|
|
|
11
11
|
export * from './models/UserTimeline.js';
|
|
12
12
|
export * from './migrations/RBACInitial_2022_06_28_01_13_00.js';
|
|
13
13
|
export * from './events/index.js';
|
|
14
|
-
export { AccessControl } from 'accesscontrol';
|
|
14
|
+
export { AccessControl, Permission } from 'accesscontrol';
|
|
15
15
|
export declare class RbacBootstrapper extends Bootstrapper {
|
|
16
16
|
bootstrap(): void;
|
|
17
17
|
}
|
package/lib/mjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AACvE,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AACvE,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AAMtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iDAAiD,CAAC;AAChE,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1D,qBACa,gBAAiB,SAAQ,YAAY;IACzC,SAAS,IAAI,IAAI;CA8BzB"}
|
package/lib/mjs/index.js
CHANGED
|
@@ -9,6 +9,8 @@ import './auth.js';
|
|
|
9
9
|
import './password.js';
|
|
10
10
|
import './session.js';
|
|
11
11
|
import { AccessControl } from 'accesscontrol';
|
|
12
|
+
import { Configuration } from '@spinajs/configuration';
|
|
13
|
+
import { User } from './models/User.js';
|
|
12
14
|
export * from './interfaces.js';
|
|
13
15
|
export * from './auth.js';
|
|
14
16
|
export * from './password.js';
|
|
@@ -18,7 +20,7 @@ export * from './models/UserMetadata.js';
|
|
|
18
20
|
export * from './models/UserTimeline.js';
|
|
19
21
|
export * from './migrations/RBACInitial_2022_06_28_01_13_00.js';
|
|
20
22
|
export * from './events/index.js';
|
|
21
|
-
export { AccessControl } from 'accesscontrol';
|
|
23
|
+
export { AccessControl, Permission } from 'accesscontrol';
|
|
22
24
|
let RbacBootstrapper = class RbacBootstrapper extends Bootstrapper {
|
|
23
25
|
bootstrap() {
|
|
24
26
|
const ac = new AccessControl();
|
|
@@ -30,6 +32,22 @@ let RbacBootstrapper = class RbacBootstrapper extends Bootstrapper {
|
|
|
30
32
|
ac.setGrants(grants);
|
|
31
33
|
}
|
|
32
34
|
});
|
|
35
|
+
/**
|
|
36
|
+
* Register factory function for creating user from session data
|
|
37
|
+
*/
|
|
38
|
+
DI.register((_, userData) => {
|
|
39
|
+
return new User(userData);
|
|
40
|
+
}).as('RbacUserFactory');
|
|
41
|
+
DI.register((_) => {
|
|
42
|
+
const conf = DI.get(Configuration);
|
|
43
|
+
const guestEnabled = conf.get('rbac.enableGuestAccount', false);
|
|
44
|
+
return new User({
|
|
45
|
+
Login: 'guest',
|
|
46
|
+
Email: 'guest@spinajs.com',
|
|
47
|
+
Role: ['guest'],
|
|
48
|
+
IsEnabled: guestEnabled,
|
|
49
|
+
});
|
|
50
|
+
}).as('RbacGuestUserFactory');
|
|
33
51
|
}
|
|
34
52
|
};
|
|
35
53
|
RbacBootstrapper = __decorate([
|
package/lib/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AACvE,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AACvE,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iDAAiD,CAAC;AAChE,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGnD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,YAAY;IACzC,SAAS;QACd,MAAM,EAAE,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/B,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACzC,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,SAAqB,EAAE,aAA4B,EAAE,EAAE;YAC3F,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAgB,eAAe,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE;gBACV,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QAEH;;WAEG;QACH,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAa,EAAE,QAAyB,EAAE,EAAE;YACvD,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAEzB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAEhE,OAAO,IAAI,IAAI,CAAC;gBACd,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,CAAC,OAAO,CAAC;gBACf,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AA/BY,gBAAgB;IAD5B,UAAU,CAAC,YAAY,CAAC;GACZ,gBAAgB,CA+B5B;SA/BY,gBAAgB"}
|
package/lib/mjs/interfaces.d.ts
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import { User } from './models/User.js';
|
|
2
2
|
import { AsyncService } from '@spinajs/di';
|
|
3
|
+
import { IDeleteQueryBuilder, IModelDescriptor, IQueryBuilder, ISelectQueryBuilder, IUpdateQueryBuilder, ModelBase } from '@spinajs/orm';
|
|
3
4
|
import { DateTime } from 'luxon';
|
|
5
|
+
declare module '@spinajs/orm' {
|
|
6
|
+
interface IModelStatic {
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* Alters query to check ownership of queried resource. Ensures that query returns only owned user data
|
|
10
|
+
*
|
|
11
|
+
* @param query query to alter
|
|
12
|
+
* @param user user to check againts ownership
|
|
13
|
+
* @param modelDescriptor resource model descriptor
|
|
14
|
+
*/
|
|
15
|
+
ensureOwnership(query: ISelectQueryBuilder<any> | IUpdateQueryBuilder<any> | IDeleteQueryBuilder<any>, user: User, modelDescriptor: IModelDescriptor): IQueryBuilder;
|
|
16
|
+
/**
|
|
17
|
+
* Checks ownership of retrieved model by user
|
|
18
|
+
* @param model model to check
|
|
19
|
+
* @param user user to check against ownership
|
|
20
|
+
*/
|
|
21
|
+
checkOwnership<M>(model: ModelBase<M>, user?: User): Promise<boolean>;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
4
24
|
export interface ISession {
|
|
5
25
|
/**
|
|
6
26
|
* Session identifier
|
|
@@ -194,6 +214,9 @@ export declare enum AthenticationErrorCodes {
|
|
|
194
214
|
E_INVALID_CREDENTIALS = "E_INVALID_CREDENTIALS",
|
|
195
215
|
E_LOGIN_ATTEMPTS_EXCEEDED = "E_LOGIN_ATTEMPTS_EXCEEDED"
|
|
196
216
|
}
|
|
217
|
+
export interface IRbacModelDescriptor extends IModelDescriptor {
|
|
218
|
+
RbacResource: string;
|
|
219
|
+
}
|
|
197
220
|
/**
|
|
198
221
|
* Authentication result
|
|
199
222
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzI,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAiB,YAAY;QAC3B;;;;;;;WAOG;QACH,eAAe,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,GAAG,aAAa,CAAC;QAErK;;;;WAIG;QACH,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACvE;CACF;AAED,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,8BAAsB,gBAAgB;IACpC;;;;;;OAMG;aACa,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAExE;;;;;OAKG;aACa,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEpD;;OAEG;aACa,QAAQ,IAAI,MAAM;CACnC;AAED;;;;;GAKG;AACH,8BAAsB,YAAY,CAAC,CAAC,GAAG,IAAI;IACzC;;;;;OAKG;aACa,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEjE;;;;;;OAMG;aACa,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAEhG;;;;;OAKG;aACa,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzD;;;;OAIG;aACa,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzD;;;;;OAKG;aACa,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1D;;;;;OAKG;aACa,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAErD;;;;;OAKG;aACa,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAErD;;;;;OAKG;aACa,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CACpD;AAED;;;;;;GAMG;AACH,8BAAsB,qBAAqB,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;IACrD;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAE5B;;;;;;;;OAQG;aACa,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAEpD;;;;;OAKG;aACa,YAAY,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAChF;AAED,8BAAsB,eAAe,CAAC,CAAC,GAAG,QAAQ,CAAE,SAAQ,YAAY;IACtE;;;;;OAKG;aACa,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAEtD;;;;;OAKG;aACa,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAExD;;;;;OAKG;aACa,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtD;;;;;;OAMG;aACa,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7D;;;;;OAKG;aACa,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvD;;;;OAIG;aACa,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAC1C;AAED,oBAAY,uBAAuB;IACjC,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,qBAAqB,0BAA0B;IAC/C,yBAAyB,8BAA8B;CACxD;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,IAAI;IAC7C;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,KAAK,CAAC,EAAE;QACN;;WAEG;QACH,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAC;QAEvC;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,8BAAsB,0BAA0B;aAC9B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CACjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAuD3C;;GAEG;AACH,MAAM,OAAgB,gBAAgB;CAsBrC;AAED;;;;;GAKG;AACH,MAAM,OAAgB,YAAY;CAgEjC;AAED;;;;;;GAMG;AACH,MAAM,OAAgB,qBAAqB;CAwB1C;AAED,MAAM,OAAgB,eAA8B,SAAQ,YAAY;CAgDvE;AAED,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,0DAA+B,CAAA;IAC/B,kEAAuC,CAAA;IACvC,0EAA+C,CAAA;IAC/C,kFAAuD,CAAA;AACzD,CAAC,EALW,uBAAuB,GAAvB,uBAAuB,KAAvB,uBAAuB,QAKlC;AA+BD;;GAEG;AACH,MAAM,OAAgB,0BAA0B;CAE/C"}
|
package/lib/mjs/models/User.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DateTime } from 'luxon';
|
|
2
2
|
import { ModelBase, Relation, OneToManyRelationList, QueryScope, ISelectQueryBuilder } from '@spinajs/orm';
|
|
3
|
+
import { Permission } from 'accesscontrol';
|
|
3
4
|
import { UserMetadata } from './UserMetadata.js';
|
|
4
5
|
import { UserAction } from './UserTimeline.js';
|
|
5
6
|
declare class UserMetadataRelation extends OneToManyRelationList<UserMetadata, User> {
|
|
@@ -74,7 +75,20 @@ export declare class User extends ModelBase {
|
|
|
74
75
|
*/
|
|
75
76
|
Metadata: UserMetadataRelation;
|
|
76
77
|
Actions: Relation<UserAction, User>;
|
|
77
|
-
can(resource: string, permission: string):
|
|
78
|
+
can(resource: string, permission: string): Permission;
|
|
79
|
+
/**
|
|
80
|
+
* Shorthand for check if user can read any resource
|
|
81
|
+
* @param resource
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
canReadAny(resource: string): Permission;
|
|
85
|
+
canReadOwn(resource: string): Permission;
|
|
86
|
+
canUpdateAny(_resource: string): void;
|
|
87
|
+
canUpdateOwn(_resource: string): void;
|
|
88
|
+
canDeleteAny(): void;
|
|
89
|
+
canDeleteOwn(): void;
|
|
90
|
+
canCreateAny(): void;
|
|
91
|
+
canCreateOwn(): void;
|
|
78
92
|
}
|
|
79
93
|
export {};
|
|
80
94
|
//# sourceMappingURL=User.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAA8D,QAAQ,EAAwB,qBAAqB,EAAuB,UAAU,EAAmB,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAA8D,QAAQ,EAAwB,qBAAqB,EAAuB,UAAU,EAAmB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnO,OAAO,EAAiB,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,cAAM,oBAAqB,SAAQ,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC;IAC1E;;;;;;OAMG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAexC;;;;;OAKG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAkBxC,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AA6DD,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC;CAOpD;AAED;;;;GAIG;AACH,qBAEa,IAAK,SAAQ,SAAS;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAsB;IAEjD,gBAAuB,YAAY,EAAE,eAAe,CAAyB;IAGtE,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAErB;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,KAAK,EAAE,MAAM,CAAC;IAErB;;OAEG;IACI,IAAI,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IAEI,SAAS,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IAEI,YAAY,EAAE,QAAQ,CAAC;IAE9B;;OAEG;IAEI,SAAS,EAAE,QAAQ,CAAC;IAGpB,WAAW,EAAE,QAAQ,CAAC;IAEtB,QAAQ,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACI,QAAQ,EAAE,OAAO,CAAC;IAEzB;;OAEG;IAII,QAAQ,EAAE,oBAAoB,CAAC;IAG/B,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAEpC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU;IAK5D;;;;OAIG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM;IAG3B,UAAU,CAAC,QAAQ,EAAE,MAAM;IAI3B,YAAY,CAAC,SAAS,EAAG,MAAM;IAI/B,YAAY,CAAC,SAAS,EAAE,MAAM;IAI9B,YAAY;IAIZ,YAAY;IAIZ,YAAY;IAIZ,YAAY;CAGpB"}
|
package/lib/mjs/models/User.js
CHANGED
|
@@ -140,6 +140,29 @@ let User = class User extends ModelBase {
|
|
|
140
140
|
const ac = DI.get('AccessControl');
|
|
141
141
|
return ac.can(this.Role)[permission](resource);
|
|
142
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Shorthand for check if user can read any resource
|
|
145
|
+
* @param resource
|
|
146
|
+
* @returns
|
|
147
|
+
*/
|
|
148
|
+
canReadAny(resource) {
|
|
149
|
+
return this.can(resource, 'readAny');
|
|
150
|
+
}
|
|
151
|
+
canReadOwn(resource) {
|
|
152
|
+
return this.can(resource, 'readOwn');
|
|
153
|
+
}
|
|
154
|
+
canUpdateAny(_resource) {
|
|
155
|
+
}
|
|
156
|
+
canUpdateOwn(_resource) {
|
|
157
|
+
}
|
|
158
|
+
canDeleteAny() {
|
|
159
|
+
}
|
|
160
|
+
canDeleteOwn() {
|
|
161
|
+
}
|
|
162
|
+
canCreateAny() {
|
|
163
|
+
}
|
|
164
|
+
canCreateOwn() {
|
|
165
|
+
}
|
|
143
166
|
};
|
|
144
167
|
User._queryScopes = new UserQueryScopes();
|
|
145
168
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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"}
|