@spinajs/rbac-http 2.0.45 → 2.0.50
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/README.md +11 -11
- package/lib/2fa/SpeakEasy2FaToken.d.ts +2 -1
- package/lib/2fa/SpeakEasy2FaToken.d.ts.map +1 -0
- package/lib/2fa/SpeakEasy2FaToken.js +11 -37
- package/lib/2fa/SpeakEasy2FaToken.js.map +1 -1
- package/lib/config/rbac-http.d.ts +1 -0
- package/lib/config/rbac-http.d.ts.map +1 -0
- package/lib/config/rbac-http.js +2 -4
- package/lib/config/rbac-http.js.map +1 -1
- package/lib/controllers/LoginController.d.ts +7 -6
- package/lib/controllers/LoginController.d.ts.map +1 -0
- package/lib/controllers/LoginController.js +89 -92
- package/lib/controllers/LoginController.js.map +1 -1
- package/lib/controllers/TwoFactorAuthController.d.ts +4 -3
- package/lib/controllers/TwoFactorAuthController.d.ts.map +1 -0
- package/lib/controllers/TwoFactorAuthController.js +31 -34
- package/lib/controllers/TwoFactorAuthController.js.map +1 -1
- package/lib/controllers/UserAdminController.d.ts +1 -0
- package/lib/controllers/UserAdminController.d.ts.map +1 -0
- package/lib/controllers/UserAdminController.js +6 -9
- package/lib/controllers/UserAdminController.js.map +1 -1
- package/lib/controllers/UserController.d.ts +2 -1
- package/lib/controllers/UserController.d.ts.map +1 -0
- package/lib/controllers/UserController.js +30 -56
- package/lib/controllers/UserController.js.map +1 -1
- package/lib/controllers/UserMetadata.d.ts +1 -0
- package/lib/controllers/UserMetadata.d.ts.map +1 -0
- package/lib/controllers/UserMetadata.js +24 -28
- package/lib/controllers/UserMetadata.js.map +1 -1
- package/lib/decorators.d.ts +2 -1
- package/lib/decorators.d.ts.map +1 -0
- package/lib/decorators.js +16 -24
- package/lib/decorators.js.map +1 -1
- package/lib/dto/login-dto.d.ts +1 -0
- package/lib/dto/login-dto.d.ts.map +1 -0
- package/lib/dto/login-dto.js +4 -7
- package/lib/dto/login-dto.js.map +1 -1
- package/lib/dto/password-dto.d.ts +1 -0
- package/lib/dto/password-dto.d.ts.map +1 -0
- package/lib/dto/password-dto.js +4 -7
- package/lib/dto/password-dto.js.map +1 -1
- package/lib/dto/restore-password-dto.d.ts +1 -0
- package/lib/dto/restore-password-dto.d.ts.map +1 -0
- package/lib/dto/restore-password-dto.js +4 -7
- package/lib/dto/restore-password-dto.js.map +1 -1
- package/lib/dto/token-dto.d.ts +1 -0
- package/lib/dto/token-dto.d.ts.map +1 -0
- package/lib/dto/token-dto.js +4 -7
- package/lib/dto/token-dto.js.map +1 -1
- package/lib/dto/user-dto.d.ts +1 -0
- package/lib/dto/user-dto.d.ts.map +1 -0
- package/lib/dto/user-dto.js +4 -7
- package/lib/dto/user-dto.js.map +1 -1
- package/lib/dto/userLogin-dto.d.ts +1 -0
- package/lib/dto/userLogin-dto.d.ts.map +1 -0
- package/lib/dto/userLogin-dto.js +4 -7
- package/lib/dto/userLogin-dto.js.map +1 -1
- package/lib/events/UserLoginFailed.d.ts +1 -0
- package/lib/events/UserLoginFailed.d.ts.map +1 -0
- package/lib/events/UserLoginFailed.js +4 -7
- package/lib/events/UserLoginFailed.js.map +1 -1
- package/lib/events/UserLoginSuccess.d.ts +1 -0
- package/lib/events/UserLoginSuccess.d.ts.map +1 -0
- package/lib/events/UserLoginSuccess.js +4 -7
- package/lib/events/UserLoginSuccess.js.map +1 -1
- package/lib/events/UserPassordRestore.d.ts +1 -0
- package/lib/events/UserPassordRestore.d.ts.map +1 -0
- package/lib/events/UserPassordRestore.js +4 -7
- package/lib/events/UserPassordRestore.js.map +1 -1
- package/lib/fingerprint/FingerprintJs.d.ts +2 -1
- package/lib/fingerprint/FingerprintJs.d.ts.map +1 -0
- package/lib/fingerprint/FingerprintJs.js +5 -8
- package/lib/fingerprint/FingerprintJs.js.map +1 -1
- package/lib/index.d.ts +9 -8
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +8 -24
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +2 -1
- package/lib/interfaces.d.ts.map +1 -0
- package/lib/interfaces.js +2 -7
- package/lib/interfaces.js.map +1 -1
- package/lib/middlewares/AttributeFilter.d.ts +1 -0
- package/lib/middlewares/AttributeFilter.d.ts.map +1 -0
- package/lib/middlewares/AttributeFilter.js +2 -6
- package/lib/middlewares/AttributeFilter.js.map +1 -1
- package/lib/middlewares.d.ts +1 -0
- package/lib/middlewares.d.ts.map +1 -0
- package/lib/middlewares.js +13 -39
- package/lib/middlewares.js.map +1 -1
- package/lib/policies/2FaPolicy.d.ts +2 -1
- package/lib/policies/2FaPolicy.d.ts.map +1 -0
- package/lib/policies/2FaPolicy.js +6 -10
- package/lib/policies/2FaPolicy.js.map +1 -1
- package/lib/policies/LoggedPolicy.d.ts +1 -0
- package/lib/policies/LoggedPolicy.d.ts.map +1 -0
- package/lib/policies/LoggedPolicy.js +4 -8
- package/lib/policies/LoggedPolicy.js.map +1 -1
- package/lib/policies/NotLoggedPolicy.d.ts +1 -0
- package/lib/policies/NotLoggedPolicy.d.ts.map +1 -0
- package/lib/policies/NotLoggedPolicy.js +4 -8
- package/lib/policies/NotLoggedPolicy.js.map +1 -1
- package/lib/policies/RbacPolicy.d.ts +1 -0
- package/lib/policies/RbacPolicy.d.ts.map +1 -0
- package/lib/policies/RbacPolicy.js +17 -25
- package/lib/policies/RbacPolicy.js.map +1 -1
- package/lib/policies/captchaPolicy.d.ts +2 -0
- package/lib/policies/captchaPolicy.d.ts.map +1 -0
- package/lib/policies/captchaPolicy.js +1 -0
- package/lib/route-args.d.ts +2 -1
- package/lib/route-args.d.ts.map +1 -0
- package/lib/route-args.js +9 -12
- package/lib/route-args.js.map +1 -1
- package/lib/transformers.d.ts +1 -0
- package/lib/transformers.d.ts.map +1 -0
- package/lib/transformers.js +7 -13
- package/lib/transformers.js.map +1 -1
- package/package.json +66 -63
- package/lib/policies/AuthPolicy.d.ts +0 -9
- package/lib/policies/AuthPolicy.js +0 -23
- package/lib/policies/AuthPolicy.js.map +0 -1
- package/lib/policies.d.ts +0 -12
- package/lib/policies.js +0 -57
- package/lib/policies.js.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -11,61 +10,59 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const queue_1 = require("@spinajs/queue");
|
|
28
|
-
let TwoFactorAuthController = class TwoFactorAuthController extends http_1.BaseController {
|
|
13
|
+
import { TokenDto } from './../dto/token-dto.js';
|
|
14
|
+
import { BaseController, BasePath, Cookie, Ok, Post, Unauthorized } from '@spinajs/http';
|
|
15
|
+
import { SessionProvider, User as UserModel } from '@spinajs/rbac';
|
|
16
|
+
import { Body, Policy } from '@spinajs/http';
|
|
17
|
+
import { User } from '../decorators.js';
|
|
18
|
+
import { TwoFacRouteEnabled } from '../policies/2FaPolicy.js';
|
|
19
|
+
import { AutoinjectService } from '@spinajs/configuration';
|
|
20
|
+
import { TwoFactorAuthProvider } from '../interfaces.js';
|
|
21
|
+
import { DateTime } from 'luxon';
|
|
22
|
+
import { UserLoginSuccess } from '../events/UserLoginSuccess.js';
|
|
23
|
+
import { Autoinject } from '@spinajs/di';
|
|
24
|
+
import { QueueClient } from '@spinajs/queue';
|
|
25
|
+
let TwoFactorAuthController = class TwoFactorAuthController extends BaseController {
|
|
29
26
|
async verifyToken(logged, token, ssid) {
|
|
30
27
|
const result = await this.TwoFactorAuthProvider.verifyToken(token.Token, logged);
|
|
31
28
|
if (result) {
|
|
32
|
-
return new
|
|
29
|
+
return new Unauthorized(`invalid token`);
|
|
33
30
|
}
|
|
34
|
-
logged.LastLoginAt =
|
|
31
|
+
logged.LastLoginAt = DateTime.now();
|
|
35
32
|
await logged.update();
|
|
36
|
-
await this.Queue.emit(new
|
|
33
|
+
await this.Queue.emit(new UserLoginSuccess(logged.Uuid));
|
|
37
34
|
await this.SessionProvider.save(ssid, {
|
|
38
35
|
Authorized: true,
|
|
39
36
|
TwoFactorAuth_check: true,
|
|
40
37
|
});
|
|
41
38
|
// return user data
|
|
42
|
-
return new
|
|
39
|
+
return new Ok(logged.dehydrate());
|
|
43
40
|
}
|
|
44
41
|
};
|
|
45
42
|
__decorate([
|
|
46
|
-
|
|
47
|
-
__metadata("design:type",
|
|
43
|
+
Autoinject(QueueClient),
|
|
44
|
+
__metadata("design:type", QueueClient)
|
|
48
45
|
], TwoFactorAuthController.prototype, "Queue", void 0);
|
|
49
46
|
__decorate([
|
|
50
|
-
|
|
51
|
-
__metadata("design:type",
|
|
47
|
+
AutoinjectService('rbac.session'),
|
|
48
|
+
__metadata("design:type", SessionProvider)
|
|
52
49
|
], TwoFactorAuthController.prototype, "SessionProvider", void 0);
|
|
53
50
|
__decorate([
|
|
54
|
-
|
|
55
|
-
__metadata("design:type",
|
|
51
|
+
AutoinjectService('rbac.twoFactorAuth'),
|
|
52
|
+
__metadata("design:type", TwoFactorAuthProvider)
|
|
56
53
|
], TwoFactorAuthController.prototype, "TwoFactorAuthProvider", void 0);
|
|
57
54
|
__decorate([
|
|
58
|
-
|
|
59
|
-
__param(0,
|
|
60
|
-
__param(1,
|
|
61
|
-
__param(2,
|
|
55
|
+
Post('2fa/verify'),
|
|
56
|
+
__param(0, User()),
|
|
57
|
+
__param(1, Body()),
|
|
58
|
+
__param(2, Cookie()),
|
|
62
59
|
__metadata("design:type", Function),
|
|
63
|
-
__metadata("design:paramtypes", [
|
|
60
|
+
__metadata("design:paramtypes", [UserModel, TokenDto, String]),
|
|
64
61
|
__metadata("design:returntype", Promise)
|
|
65
62
|
], TwoFactorAuthController.prototype, "verifyToken", null);
|
|
66
63
|
TwoFactorAuthController = __decorate([
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
BasePath('user/auth'),
|
|
65
|
+
Policy(TwoFacRouteEnabled)
|
|
69
66
|
], TwoFactorAuthController);
|
|
70
|
-
|
|
67
|
+
export { TwoFactorAuthController };
|
|
71
68
|
//# sourceMappingURL=TwoFactorAuthController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwoFactorAuthController.js","sourceRoot":"","sources":["../../src/controllers/TwoFactorAuthController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TwoFactorAuthController.js","sourceRoot":"","sources":["../../src/controllers/TwoFactorAuthController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAItC,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,cAAc;IAW5C,AAAN,KAAK,CAAC,WAAW,CAAS,MAAiB,EAAU,KAAe,EAAY,IAAY;QACjG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEjF,IAAI,MAAM,EAAE;YACV,OAAO,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC;SAC1C;QAED,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE;YACpC,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;QAEH,mBAAmB;QACnB,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACpC,CAAC;CACF,CAAA;AA9BC;IAAC,UAAU,CAAC,WAAW,CAAC;8BACP,WAAW;sDAAC;AAE7B;IAAC,iBAAiB,CAAC,cAAc,CAAC;8BACP,eAAe;gEAAC;AAE3C;IAAC,iBAAiB,CAAC,oBAAoB,CAAC;8BACP,qBAAqB;sEAAC;AAG1C;IADZ,IAAI,CAAC,YAAY,CAAC;IACO,WAAA,IAAI,EAAE,CAAA;IAAqB,WAAA,IAAI,EAAE,CAAA;IAAmB,WAAA,MAAM,EAAE,CAAA;;qCAA7C,SAAS,EAAiB,QAAQ;;0DAmB1E;AA9BU,uBAAuB;IAFnC,QAAQ,CAAC,WAAW,CAAC;IACrB,MAAM,CAAC,kBAAkB,CAAC;GACd,uBAAuB,CA+BnC;SA/BY,uBAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserAdminController.d.ts","sourceRoot":"","sources":["../../src/controllers/UserAdminController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAY,MAAM,eAAe,CAAC;AAGzD,qBAEa,eAAgB,SAAQ,cAAc;CAuElD"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
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;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const decorators_1 = require("./../decorators");
|
|
12
|
-
let UsersController = class UsersController extends http_1.BaseController {
|
|
7
|
+
import { BaseController, BasePath } from '@spinajs/http';
|
|
8
|
+
import { Resource } from './../decorators.js';
|
|
9
|
+
let UsersController = class UsersController extends BaseController {
|
|
13
10
|
};
|
|
14
11
|
UsersController = __decorate([
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
Resource('user'),
|
|
13
|
+
BasePath('user')
|
|
17
14
|
], UsersController);
|
|
18
|
-
|
|
15
|
+
export { UsersController };
|
|
19
16
|
//# sourceMappingURL=UserAdminController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserAdminController.js","sourceRoot":"","sources":["../../src/controllers/UserAdminController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserAdminController.js","sourceRoot":"","sources":["../../src/controllers/UserAdminController.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAIvC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,cAAc;CAuElD,CAAA;AAvEY,eAAe;IAF3B,QAAQ,CAAC,MAAM,CAAC;IAChB,QAAQ,CAAC,MAAM,CAAC;GACJ,eAAe,CAuE3B;SAvEY,eAAe"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PasswordDto } from '../dto/password-dto';
|
|
1
|
+
import { PasswordDto } from '../dto/password-dto.js';
|
|
2
2
|
import { User as UserModel, PasswordProvider, SessionProvider } from '@spinajs/rbac';
|
|
3
3
|
import { BaseController, Ok } from '@spinajs/http';
|
|
4
4
|
export declare class UserController extends BaseController {
|
|
@@ -8,3 +8,4 @@ export declare class UserController extends BaseController {
|
|
|
8
8
|
refresh(user: UserModel, ssid: string): Promise<Ok>;
|
|
9
9
|
newPassword(user: UserModel, pwd: PasswordDto): Promise<Ok>;
|
|
10
10
|
}
|
|
11
|
+
//# sourceMappingURL=UserController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserController.d.ts","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,cAAc,EAAiB,EAAE,EAAuB,MAAM,eAAe,CAAC;AAQvF,qBAEa,cAAe,SAAQ,cAAc;IAEhD,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAG7C,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAGhC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAI9B,OAAO,CAAS,IAAI,EAAE,SAAS,EAAY,IAAI,EAAE,MAAM;IAkBvD,WAAW,CAAS,IAAI,EAAE,SAAS,EAAU,GAAG,EAAE,WAAW;CAgB3E"}
|
|
@@ -1,50 +1,24 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
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;
|
|
22
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
6
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
9
|
};
|
|
34
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
35
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
36
12
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const cs = __importStar(require("cookie-signature"));
|
|
47
|
-
let UserController = class UserController extends http_1.BaseController {
|
|
13
|
+
import { PasswordDto } from '../dto/password-dto.js';
|
|
14
|
+
import { User as UserModel, PasswordProvider, SessionProvider } from '@spinajs/rbac';
|
|
15
|
+
import { BaseController, BasePath, Get, Ok, Body, Patch, Cookie } from '@spinajs/http';
|
|
16
|
+
import { InvalidArgument, Forbidden } from '../../../exceptions/lib/index.js';
|
|
17
|
+
import { Autoinject } from '@spinajs/di';
|
|
18
|
+
import { Permission, User, Resource } from '../decorators.js';
|
|
19
|
+
import { Config } from '@spinajs/configuration';
|
|
20
|
+
import * as cs from 'cookie-signature';
|
|
21
|
+
let UserController = class UserController extends BaseController {
|
|
48
22
|
async refresh(user, ssid) {
|
|
49
23
|
// get user data from db
|
|
50
24
|
await user.refresh();
|
|
@@ -57,54 +31,54 @@ let UserController = class UserController extends http_1.BaseController {
|
|
|
57
31
|
session.Data.set('User', user.dehydrate());
|
|
58
32
|
}
|
|
59
33
|
}
|
|
60
|
-
return new
|
|
34
|
+
return new Ok(user.dehydrate());
|
|
61
35
|
}
|
|
62
36
|
async newPassword(user, pwd) {
|
|
63
37
|
if (pwd.Password !== pwd.ConfirmPassword) {
|
|
64
|
-
throw new
|
|
38
|
+
throw new InvalidArgument('password does not match');
|
|
65
39
|
}
|
|
66
40
|
const isValid = await this.PasswordProvider.verify(user.Password, pwd.OldPassword);
|
|
67
41
|
if (!isValid) {
|
|
68
|
-
throw new
|
|
42
|
+
throw new Forbidden('old password do not match');
|
|
69
43
|
}
|
|
70
44
|
const hashedPassword = await this.PasswordProvider.hash(pwd.Password);
|
|
71
45
|
user.Password = hashedPassword;
|
|
72
46
|
await user.update();
|
|
73
|
-
return new
|
|
47
|
+
return new Ok();
|
|
74
48
|
}
|
|
75
49
|
};
|
|
76
50
|
__decorate([
|
|
77
|
-
|
|
78
|
-
__metadata("design:type",
|
|
51
|
+
Autoinject(),
|
|
52
|
+
__metadata("design:type", PasswordProvider)
|
|
79
53
|
], UserController.prototype, "PasswordProvider", void 0);
|
|
80
54
|
__decorate([
|
|
81
|
-
|
|
55
|
+
Config('http.cookie.secret'),
|
|
82
56
|
__metadata("design:type", String)
|
|
83
57
|
], UserController.prototype, "CoockieSecret", void 0);
|
|
84
58
|
__decorate([
|
|
85
|
-
|
|
86
|
-
__metadata("design:type",
|
|
59
|
+
Autoinject(),
|
|
60
|
+
__metadata("design:type", SessionProvider)
|
|
87
61
|
], UserController.prototype, "SessionProvider", void 0);
|
|
88
62
|
__decorate([
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
__param(0,
|
|
92
|
-
__param(1,
|
|
63
|
+
Get(),
|
|
64
|
+
Permission('readOwn'),
|
|
65
|
+
__param(0, User()),
|
|
66
|
+
__param(1, Cookie()),
|
|
93
67
|
__metadata("design:type", Function),
|
|
94
|
-
__metadata("design:paramtypes", [
|
|
68
|
+
__metadata("design:paramtypes", [UserModel, String]),
|
|
95
69
|
__metadata("design:returntype", Promise)
|
|
96
70
|
], UserController.prototype, "refresh", null);
|
|
97
71
|
__decorate([
|
|
98
|
-
|
|
99
|
-
__param(0,
|
|
100
|
-
__param(1,
|
|
72
|
+
Patch('/password'),
|
|
73
|
+
__param(0, User()),
|
|
74
|
+
__param(1, Body()),
|
|
101
75
|
__metadata("design:type", Function),
|
|
102
|
-
__metadata("design:paramtypes", [
|
|
76
|
+
__metadata("design:paramtypes", [UserModel, PasswordDto]),
|
|
103
77
|
__metadata("design:returntype", Promise)
|
|
104
78
|
], UserController.prototype, "newPassword", null);
|
|
105
79
|
UserController = __decorate([
|
|
106
|
-
|
|
107
|
-
|
|
80
|
+
BasePath('user'),
|
|
81
|
+
Resource('user')
|
|
108
82
|
], UserController);
|
|
109
|
-
|
|
83
|
+
export { UserController };
|
|
110
84
|
//# sourceMappingURL=UserController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserController.js","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserController.js","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKhC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,cAAc;IAYnC,AAAN,KAAK,CAAC,OAAO,CAAS,IAAe,EAAY,IAAY;QAClE,wBAAwB;QACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAE/B,+BAA+B;QAC/B,MAAM,GAAG,GAAmB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,GAAG,EAAE;YACP,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aAC5C;SACF;QAED,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAClC,CAAC;IAGY,AAAN,KAAK,CAAC,WAAW,CAAS,IAAe,EAAU,GAAgB;QACxE,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,eAAe,EAAE;YACxC,MAAM,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAC;SACtD;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAEnF,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;SAClD;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC/B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,EAAE,EAAE,CAAC;IAClB,CAAC;CACF,CAAA;AA7CC;IAAC,UAAU,EAAE;8BACe,gBAAgB;wDAAC;AAE7C;IAAC,MAAM,CAAC,oBAAoB,CAAC;;qDACG;AAEhC;IAAC,UAAU,EAAE;8BACc,eAAe;uDAAC;AAI9B;IAFZ,GAAG,EAAE;IACL,UAAU,CAAC,SAAS,CAAC;IACA,WAAA,IAAI,EAAE,CAAA;IAAmB,WAAA,MAAM,EAAE,CAAA;;qCAApB,SAAS;;6CAe3C;AAGY;IADZ,KAAK,CAAC,WAAW,CAAC;IACO,WAAA,IAAI,EAAE,CAAA;IAAmB,WAAA,IAAI,EAAE,CAAA;;qCAAlB,SAAS,EAAe,WAAW;;iDAezE;AA7CU,cAAc;IAF1B,QAAQ,CAAC,MAAM,CAAC;IAChB,QAAQ,CAAC,MAAM,CAAC;GACJ,cAAc,CA8C1B;SA9CY,cAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMetadata.d.ts","sourceRoot":"","sources":["../../src/controllers/UserMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,EAAE,EAAa,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIhE,qBAEa,kBAAkB;IAGhB,WAAW,CAAS,MAAM,EAAE,SAAS,EAAe,IAAI,EAAE,SAAS,EAAa,IAAI,EAAE,YAAY;IAWlG,cAAc,CAAS,MAAM,EAAE,SAAS,EAAe,IAAI,EAAE,SAAS,EAAe,IAAI,EAAE,YAAY;CAcrH"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -11,58 +10,55 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const decorators_1 = require("./../decorators");
|
|
19
|
-
const decorators_2 = require("../decorators");
|
|
20
|
-
const orm_http_1 = require("@spinajs/orm-http");
|
|
13
|
+
import { Patch, Post, BasePath, Ok, Forbidden } from '@spinajs/http';
|
|
14
|
+
import { User as UserModel, UserMetadata } from '@spinajs/rbac';
|
|
15
|
+
import { Permission, User, Resource } from '../decorators.js';
|
|
16
|
+
import { FromModel, AsModel } from '@spinajs/orm-http';
|
|
21
17
|
let UserMetaController = class UserMetaController {
|
|
22
18
|
async addMetadata(logged, user, meta) {
|
|
23
19
|
if (logged.Id !== user.Id) {
|
|
24
|
-
throw new
|
|
20
|
+
throw new Forbidden('cannot add metadata to another user');
|
|
25
21
|
}
|
|
26
22
|
await user.Metadata.add(meta);
|
|
27
|
-
return new
|
|
23
|
+
return new Ok(meta);
|
|
28
24
|
}
|
|
29
25
|
async updateMetadata(logged, user, meta) {
|
|
30
26
|
if (logged.Id !== user.Id) {
|
|
31
|
-
throw new
|
|
27
|
+
throw new Forbidden('cannot add metadata to another user');
|
|
32
28
|
}
|
|
33
29
|
await meta.User.populate();
|
|
34
30
|
if (meta.User.Value.Id !== logged.Id) {
|
|
35
|
-
throw new
|
|
31
|
+
throw new Forbidden('cannot edit metadata that is not own by user');
|
|
36
32
|
}
|
|
37
33
|
await meta.update();
|
|
38
|
-
return new
|
|
34
|
+
return new Ok();
|
|
39
35
|
}
|
|
40
36
|
};
|
|
41
37
|
__decorate([
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
__param(0,
|
|
45
|
-
__param(1,
|
|
46
|
-
__param(2,
|
|
38
|
+
Post(),
|
|
39
|
+
Permission('updateOwn'),
|
|
40
|
+
__param(0, User()),
|
|
41
|
+
__param(1, FromModel()),
|
|
42
|
+
__param(2, AsModel()),
|
|
47
43
|
__metadata("design:type", Function),
|
|
48
|
-
__metadata("design:paramtypes", [
|
|
44
|
+
__metadata("design:paramtypes", [UserModel, UserModel, UserMetadata]),
|
|
49
45
|
__metadata("design:returntype", Promise)
|
|
50
46
|
], UserMetaController.prototype, "addMetadata", null);
|
|
51
47
|
__decorate([
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
__param(0,
|
|
55
|
-
__param(1,
|
|
56
|
-
__param(2,
|
|
48
|
+
Patch('user/:user/metadata/:meta'),
|
|
49
|
+
Permission('updateOwn'),
|
|
50
|
+
__param(0, User()),
|
|
51
|
+
__param(1, FromModel()),
|
|
52
|
+
__param(2, FromModel()),
|
|
57
53
|
__metadata("design:type", Function),
|
|
58
|
-
__metadata("design:paramtypes", [
|
|
54
|
+
__metadata("design:paramtypes", [UserModel, UserModel, UserMetadata]),
|
|
59
55
|
__metadata("design:returntype", Promise)
|
|
60
56
|
], UserMetaController.prototype, "updateMetadata", null);
|
|
61
57
|
UserMetaController = __decorate([
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
BasePath('user/:user/metadata'),
|
|
59
|
+
Resource('user.metadata')
|
|
64
60
|
], UserMetaController);
|
|
65
|
-
|
|
61
|
+
export { UserMetaController };
|
|
66
62
|
// function userOwnerPermissionStrategy(){
|
|
67
63
|
// // 1. obtain current logged user
|
|
68
64
|
// // 2. find
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../src/controllers/UserMetadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../src/controllers/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIhD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAGhB,AAAN,KAAK,CAAC,WAAW,CAAS,MAAiB,EAAe,IAAe,EAAa,IAAkB;QAC7G,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;YACzB,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAIY,AAAN,KAAK,CAAC,cAAc,CAAS,MAAiB,EAAe,IAAe,EAAe,IAAkB;QAClH,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;YACzB,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;YACpC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;SACrE;QAED,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,OAAO,IAAI,EAAE,EAAE,CAAC;IAClB,CAAC;CACF,CAAA;AAzBc;IAFZ,IAAI,EAAE;IACN,UAAU,CAAC,WAAW,CAAC;IACE,WAAA,IAAI,EAAE,CAAA;IAAqB,WAAA,SAAS,EAAE,CAAA;IAAmB,WAAA,OAAO,EAAE,CAAA;;qCAAnD,SAAS,EAAqB,SAAS,EAAmB,YAAY;;qDAO9G;AAIY;IAFZ,KAAK,CAAC,2BAA2B,CAAC;IAClC,UAAU,CAAC,WAAW,CAAC;IACK,WAAA,IAAI,EAAE,CAAA;IAAqB,WAAA,SAAS,EAAE,CAAA;IAAmB,WAAA,SAAS,EAAE,CAAA;;qCAArD,SAAS,EAAqB,SAAS,EAAqB,YAAY;;wDAanH;AA3BU,kBAAkB;IAF9B,QAAQ,CAAC,qBAAqB,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC;GACb,kBAAkB,CA4B9B;SA5BY,kBAAkB;AA8B/B,0CAA0C;AAE1C,sCAAsC;AACtC,gBAAgB;AAEhB,IAAI"}
|
package/lib/decorators.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IRbacDescriptor, PermissionType } from './interfaces';
|
|
1
|
+
import { IRbacDescriptor, PermissionType } from './interfaces.js';
|
|
2
2
|
export declare const ACL_CONTROLLER_DESCRIPTOR: unique symbol;
|
|
3
3
|
export declare function setRbacMetadata(target: any, callback: (meta: IRbacDescriptor) => void): void;
|
|
4
4
|
/**
|
|
@@ -23,3 +23,4 @@ export declare function User(): (target: any, propertyKey?: string | symbol, ind
|
|
|
23
23
|
* Extract args from user session
|
|
24
24
|
*/
|
|
25
25
|
export declare function Session(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
26
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkC,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIlG,eAAO,MAAM,yBAAyB,eAA6C,CAAC;AAEpF,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,QAerF;AAqBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,cAA0B,OAOhF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,GAAE,cAA0B,OAahE;AAED;;GAEG;AACH,wBAAgB,IAAI,0GAEnB;AAED;;GAEG;AACH,wBAAgB,OAAO,0GAEtB"}
|
package/lib/decorators.js
CHANGED
|
@@ -1,34 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.ACL_CONTROLLER_DESCRIPTOR = Symbol('ACL_CONTROLLER_DESCRIPTOR_SYMBOL');
|
|
7
|
-
function setRbacMetadata(target, callback) {
|
|
8
|
-
let metadata = Reflect.getMetadata(exports.ACL_CONTROLLER_DESCRIPTOR, target.prototype || target);
|
|
1
|
+
import { Parameter, Policy, Route } from '@spinajs/http';
|
|
2
|
+
import { RbacPolicy } from './policies/RbacPolicy.js';
|
|
3
|
+
export const ACL_CONTROLLER_DESCRIPTOR = Symbol('ACL_CONTROLLER_DESCRIPTOR_SYMBOL');
|
|
4
|
+
export function setRbacMetadata(target, callback) {
|
|
5
|
+
let metadata = Reflect.getMetadata(ACL_CONTROLLER_DESCRIPTOR, target.prototype || target);
|
|
9
6
|
if (!metadata) {
|
|
10
7
|
metadata = {
|
|
11
8
|
Resource: '',
|
|
12
9
|
Routes: new Map(),
|
|
13
10
|
Permission: 'readOwn',
|
|
14
11
|
};
|
|
15
|
-
Reflect.defineMetadata(
|
|
12
|
+
Reflect.defineMetadata(ACL_CONTROLLER_DESCRIPTOR, metadata, target.prototype || target);
|
|
16
13
|
}
|
|
17
14
|
if (callback) {
|
|
18
15
|
callback(metadata);
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
|
-
exports.setRbacMetadata = setRbacMetadata;
|
|
22
18
|
function descriptor(callback) {
|
|
23
19
|
return (target, propertyKey, indexOrDescriptor) => {
|
|
24
|
-
let metadata = Reflect.getMetadata(
|
|
20
|
+
let metadata = Reflect.getMetadata(ACL_CONTROLLER_DESCRIPTOR, target.prototype || target);
|
|
25
21
|
if (!metadata) {
|
|
26
22
|
metadata = {
|
|
27
23
|
Resource: '',
|
|
28
24
|
Routes: new Map(),
|
|
29
25
|
Permission: 'readOwn',
|
|
30
26
|
};
|
|
31
|
-
Reflect.defineMetadata(
|
|
27
|
+
Reflect.defineMetadata(ACL_CONTROLLER_DESCRIPTOR, metadata, target.prototype || target);
|
|
32
28
|
}
|
|
33
29
|
if (callback) {
|
|
34
30
|
callback(metadata, target, propertyKey, indexOrDescriptor);
|
|
@@ -41,21 +37,20 @@ function descriptor(callback) {
|
|
|
41
37
|
* @param resource - name of resource
|
|
42
38
|
* @param permission - default permission
|
|
43
39
|
*/
|
|
44
|
-
function Resource(resource, permission = 'readOwn') {
|
|
40
|
+
export function Resource(resource, permission = 'readOwn') {
|
|
45
41
|
return descriptor((metadata, target) => {
|
|
46
|
-
|
|
42
|
+
Policy(RbacPolicy)(target, null, null);
|
|
47
43
|
metadata.Resource = resource;
|
|
48
44
|
metadata.Permission = permission;
|
|
49
45
|
});
|
|
50
46
|
}
|
|
51
|
-
exports.Resource = Resource;
|
|
52
47
|
/**
|
|
53
48
|
*
|
|
54
49
|
* Assigns permission for controller route
|
|
55
50
|
*
|
|
56
51
|
* @param permission - permission to set
|
|
57
52
|
*/
|
|
58
|
-
function Permission(permission = 'readOwn') {
|
|
53
|
+
export function Permission(permission = 'readOwn') {
|
|
59
54
|
return descriptor((metadata, target, propertyKey) => {
|
|
60
55
|
if (propertyKey) {
|
|
61
56
|
if (!metadata.Routes.has(propertyKey)) {
|
|
@@ -65,22 +60,19 @@ function Permission(permission = 'readOwn') {
|
|
|
65
60
|
metadata.Routes.set(propertyKey, route);
|
|
66
61
|
}
|
|
67
62
|
}
|
|
68
|
-
|
|
63
|
+
Policy(RbacPolicy)(target, propertyKey, null);
|
|
69
64
|
});
|
|
70
65
|
}
|
|
71
|
-
exports.Permission = Permission;
|
|
72
66
|
/**
|
|
73
67
|
* Retrieves user from session if is logged in
|
|
74
68
|
*/
|
|
75
|
-
function User() {
|
|
76
|
-
return
|
|
69
|
+
export function User() {
|
|
70
|
+
return Route(Parameter('UserArg'));
|
|
77
71
|
}
|
|
78
|
-
exports.User = User;
|
|
79
72
|
/**
|
|
80
73
|
* Extract args from user session
|
|
81
74
|
*/
|
|
82
|
-
function Session() {
|
|
83
|
-
return
|
|
75
|
+
export function Session() {
|
|
76
|
+
return Route(Parameter('SessionArg'));
|
|
84
77
|
}
|
|
85
|
-
exports.Session = Session;
|
|
86
78
|
//# sourceMappingURL=decorators.js.map
|
package/lib/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAEpF,MAAM,UAAU,eAAe,CAAC,MAAW,EAAE,QAAyC;IACpF,IAAI,QAAQ,GAAoB,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAC3G,IAAI,CAAC,QAAQ,EAAE;QACb,QAAQ,GAAG;YACT,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI,GAAG,EAA0C;YACzD,UAAU,EAAE,SAAS;SACtB,CAAC;QAEF,OAAO,CAAC,cAAc,CAAC,yBAAyB,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;KACzF;IAED,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACpB;AACH,CAAC;AAED,SAAS,UAAU,CAAC,QAA0I;IAC5J,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,iBAA8C,EAAE,EAAE;QACnG,IAAI,QAAQ,GAAoB,OAAO,CAAC,WAAW,CAAC,yBAAyB,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;QAC3G,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG;gBACT,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,IAAI,GAAG,EAA0C;gBACzD,UAAU,EAAE,SAAS;aACtB,CAAC;YAEF,OAAO,CAAC,cAAc,CAAC,yBAAyB,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;SACzF;QAED,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;SAC5D;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,aAA6B,SAAS;IAC/E,OAAO,UAAU,CAAC,CAAC,QAAyB,EAAE,MAAW,EAAE,EAAE;QAC3D,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,aAA6B,SAAS;IAC/D,OAAO,UAAU,CAAC,CAAC,QAAyB,EAAE,MAAW,EAAE,WAAmB,EAAE,EAAE;QAChF,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBACrC,MAAM,KAAK,GAAG;oBACZ,UAAU,EAAE,UAAU;iBACvB,CAAC;gBACF,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aACzC;SACF;QAED,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,CAAC"}
|
package/lib/dto/login-dto.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-dto.d.ts","sourceRoot":"","sources":["../../src/dto/login-dto.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;;;;;;;CAQ1B,CAAC;AAEF,qBACa,YAAY;IAChB,KAAK,EAAE,MAAM,CAAC;gBAET,IAAI,EAAE,GAAG;CAGtB"}
|
package/lib/dto/login-dto.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -8,10 +7,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const validation_1 = require("@spinajs/validation");
|
|
14
|
-
exports.LoginDtoSchema = {
|
|
10
|
+
import { Schema } from '@spinajs/validation';
|
|
11
|
+
export const LoginDtoSchema = {
|
|
15
12
|
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
16
13
|
title: 'login DTO',
|
|
17
14
|
type: 'object',
|
|
@@ -26,8 +23,8 @@ let UserLoginDto = class UserLoginDto {
|
|
|
26
23
|
}
|
|
27
24
|
};
|
|
28
25
|
UserLoginDto = __decorate([
|
|
29
|
-
|
|
26
|
+
Schema(LoginDtoSchema),
|
|
30
27
|
__metadata("design:paramtypes", [Object])
|
|
31
28
|
], UserLoginDto);
|
|
32
|
-
|
|
29
|
+
export { UserLoginDto };
|
|
33
30
|
//# sourceMappingURL=login-dto.js.map
|
package/lib/dto/login-dto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-dto.js","sourceRoot":"","sources":["../../src/dto/login-dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login-dto.js","sourceRoot":"","sources":["../../src/dto/login-dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;KAC3C;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC;AAGK,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGvB,YAAY,IAAS;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AANY,YAAY;IADxB,MAAM,CAAC,cAAc,CAAC;;GACV,YAAY,CAMxB;SANY,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-dto.d.ts","sourceRoot":"","sources":["../../src/dto/password-dto.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAU7B,CAAC;AAEF,qBACa,WAAW;IACf,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,eAAe,EAAE,MAAM,CAAC;gBAEnB,IAAI,EAAE,GAAG;CAGtB"}
|