@spinajs/rbac-http 2.0.179 → 2.0.181
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/decorators.d.ts +25 -25
- package/lib/cjs/decorators.js +85 -85
- package/lib/cjs/index.d.ts +6 -6
- package/lib/cjs/index.js +22 -22
- package/lib/cjs/interfaces.d.ts +65 -65
- package/lib/cjs/interfaces.js +9 -9
- package/lib/cjs/middlewares/AttributeFilter.d.ts +10 -10
- package/lib/cjs/middlewares/AttributeFilter.js +18 -18
- package/lib/cjs/middlewares.d.ts +11 -11
- package/lib/cjs/middlewares.js +91 -91
- package/lib/cjs/middlewares.js.map +1 -1
- package/lib/cjs/policies/AllowGuest.d.ts +8 -8
- package/lib/cjs/policies/AllowGuest.js +28 -28
- package/lib/cjs/policies/BlockGuest.d.ts +8 -8
- package/lib/cjs/policies/BlockGuest.js +24 -24
- package/lib/cjs/policies/LoggedPolicy.d.ts +9 -9
- package/lib/cjs/policies/LoggedPolicy.js +22 -22
- package/lib/cjs/policies/NotLoggedPolicy.d.ts +9 -9
- package/lib/cjs/policies/NotLoggedPolicy.js +21 -21
- package/lib/cjs/policies/RbacPolicy.d.ts +15 -15
- package/lib/cjs/policies/RbacPolicy.js +58 -58
- package/lib/cjs/route-args.d.ts +16 -16
- package/lib/cjs/route-args.js +35 -35
- package/lib/cjs/route-args.js.map +1 -1
- package/lib/cjs/transformers.d.ts +10 -10
- package/lib/cjs/transformers.js +33 -33
- package/lib/cjs/transformers.js.map +1 -1
- package/lib/mjs/decorators.d.ts +25 -25
- package/lib/mjs/decorators.js +77 -77
- package/lib/mjs/index.d.ts +6 -6
- package/lib/mjs/index.js +6 -6
- package/lib/mjs/interfaces.d.ts +65 -65
- package/lib/mjs/interfaces.js +4 -4
- package/lib/mjs/middlewares/AttributeFilter.d.ts +10 -10
- package/lib/mjs/middlewares/AttributeFilter.js +14 -14
- package/lib/mjs/middlewares.d.ts +11 -11
- package/lib/mjs/middlewares.js +65 -65
- package/lib/mjs/middlewares.js.map +1 -1
- package/lib/mjs/policies/AllowGuest.d.ts +8 -8
- package/lib/mjs/policies/AllowGuest.js +24 -24
- package/lib/mjs/policies/BlockGuest.d.ts +8 -8
- package/lib/mjs/policies/BlockGuest.js +20 -20
- package/lib/mjs/policies/LoggedPolicy.d.ts +9 -9
- package/lib/mjs/policies/LoggedPolicy.js +18 -18
- package/lib/mjs/policies/NotLoggedPolicy.d.ts +9 -9
- package/lib/mjs/policies/NotLoggedPolicy.js +17 -17
- package/lib/mjs/policies/RbacPolicy.d.ts +15 -15
- package/lib/mjs/policies/RbacPolicy.js +51 -51
- package/lib/mjs/route-args.d.ts +16 -16
- package/lib/mjs/route-args.js +32 -32
- package/lib/mjs/route-args.js.map +1 -1
- package/lib/mjs/transformers.d.ts +10 -10
- package/lib/mjs/transformers.js +27 -27
- package/lib/mjs/transformers.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/decorators.d.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { IRbacDescriptor, PermissionType } from './interfaces.js';
|
|
2
|
-
export declare const ACL_CONTROLLER_DESCRIPTOR: unique symbol;
|
|
3
|
-
export declare function setRbacMetadata(target: any, callback: (meta: IRbacDescriptor) => void): void;
|
|
4
|
-
/**
|
|
5
|
-
* Assign resource for controller
|
|
6
|
-
*
|
|
7
|
-
* @param resource - name of resource
|
|
8
|
-
* @param permission - default permission
|
|
9
|
-
*/
|
|
10
|
-
export declare function Resource(resource: string, permission?: PermissionType): any;
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* Assigns permission for controller route
|
|
14
|
-
*
|
|
15
|
-
* @param permission - permission to set
|
|
16
|
-
*/
|
|
17
|
-
export declare function Permission(permission?: PermissionType): any;
|
|
18
|
-
/**
|
|
19
|
-
* Retrieves user from session if is logged in
|
|
20
|
-
*/
|
|
21
|
-
export declare function User(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
22
|
-
/**
|
|
23
|
-
* Extract args from user session
|
|
24
|
-
*/
|
|
25
|
-
export declare function Session(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
1
|
+
import { IRbacDescriptor, PermissionType } from './interfaces.js';
|
|
2
|
+
export declare const ACL_CONTROLLER_DESCRIPTOR: unique symbol;
|
|
3
|
+
export declare function setRbacMetadata(target: any, callback: (meta: IRbacDescriptor) => void): void;
|
|
4
|
+
/**
|
|
5
|
+
* Assign resource for controller
|
|
6
|
+
*
|
|
7
|
+
* @param resource - name of resource
|
|
8
|
+
* @param permission - default permission
|
|
9
|
+
*/
|
|
10
|
+
export declare function Resource(resource: string, permission?: PermissionType): any;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* Assigns permission for controller route
|
|
14
|
+
*
|
|
15
|
+
* @param permission - permission to set
|
|
16
|
+
*/
|
|
17
|
+
export declare function Permission(permission?: PermissionType): any;
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves user from session if is logged in
|
|
20
|
+
*/
|
|
21
|
+
export declare function User(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Extract args from user session
|
|
24
|
+
*/
|
|
25
|
+
export declare function Session(): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
26
26
|
//# sourceMappingURL=decorators.d.ts.map
|
package/lib/cjs/decorators.js
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Session = exports.User = exports.Permission = exports.Resource = exports.setRbacMetadata = exports.ACL_CONTROLLER_DESCRIPTOR = void 0;
|
|
4
|
-
const http_1 = require("@spinajs/http");
|
|
5
|
-
const RbacPolicy_js_1 = require("./policies/RbacPolicy.js");
|
|
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);
|
|
9
|
-
if (!metadata) {
|
|
10
|
-
metadata = {
|
|
11
|
-
Resource: '',
|
|
12
|
-
Routes: new Map(),
|
|
13
|
-
Permission: 'readOwn',
|
|
14
|
-
};
|
|
15
|
-
Reflect.defineMetadata(exports.ACL_CONTROLLER_DESCRIPTOR, metadata, target.prototype || target);
|
|
16
|
-
}
|
|
17
|
-
if (callback) {
|
|
18
|
-
callback(metadata);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.setRbacMetadata = setRbacMetadata;
|
|
22
|
-
function descriptor(callback) {
|
|
23
|
-
return (target, propertyKey, indexOrDescriptor) => {
|
|
24
|
-
let metadata = Reflect.getMetadata(exports.ACL_CONTROLLER_DESCRIPTOR, target.prototype || target);
|
|
25
|
-
if (!metadata) {
|
|
26
|
-
metadata = {
|
|
27
|
-
Resource: '',
|
|
28
|
-
Routes: new Map(),
|
|
29
|
-
Permission: 'readOwn',
|
|
30
|
-
};
|
|
31
|
-
Reflect.defineMetadata(exports.ACL_CONTROLLER_DESCRIPTOR, metadata, target.prototype || target);
|
|
32
|
-
}
|
|
33
|
-
if (callback) {
|
|
34
|
-
callback(metadata, target, propertyKey, indexOrDescriptor);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Assign resource for controller
|
|
40
|
-
*
|
|
41
|
-
* @param resource - name of resource
|
|
42
|
-
* @param permission - default permission
|
|
43
|
-
*/
|
|
44
|
-
function Resource(resource, permission = 'readOwn') {
|
|
45
|
-
return descriptor((metadata, target) => {
|
|
46
|
-
(0, http_1.Policy)(RbacPolicy_js_1.RbacPolicy)(target, null, null);
|
|
47
|
-
metadata.Resource = resource;
|
|
48
|
-
metadata.Permission = permission;
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
exports.Resource = Resource;
|
|
52
|
-
/**
|
|
53
|
-
*
|
|
54
|
-
* Assigns permission for controller route
|
|
55
|
-
*
|
|
56
|
-
* @param permission - permission to set
|
|
57
|
-
*/
|
|
58
|
-
function Permission(permission = 'readOwn') {
|
|
59
|
-
return descriptor((metadata, target, propertyKey) => {
|
|
60
|
-
if (propertyKey) {
|
|
61
|
-
if (!metadata.Routes.has(propertyKey)) {
|
|
62
|
-
const route = {
|
|
63
|
-
Permission: permission,
|
|
64
|
-
};
|
|
65
|
-
metadata.Routes.set(propertyKey, route);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
(0, http_1.Policy)(RbacPolicy_js_1.RbacPolicy)(target, propertyKey, null);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
exports.Permission = Permission;
|
|
72
|
-
/**
|
|
73
|
-
* Retrieves user from session if is logged in
|
|
74
|
-
*/
|
|
75
|
-
function User() {
|
|
76
|
-
return (0, http_1.Route)((0, http_1.Parameter)('UserArg'));
|
|
77
|
-
}
|
|
78
|
-
exports.User = User;
|
|
79
|
-
/**
|
|
80
|
-
* Extract args from user session
|
|
81
|
-
*/
|
|
82
|
-
function Session() {
|
|
83
|
-
return (0, http_1.Route)((0, http_1.Parameter)('SessionArg'));
|
|
84
|
-
}
|
|
85
|
-
exports.Session = Session;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Session = exports.User = exports.Permission = exports.Resource = exports.setRbacMetadata = exports.ACL_CONTROLLER_DESCRIPTOR = void 0;
|
|
4
|
+
const http_1 = require("@spinajs/http");
|
|
5
|
+
const RbacPolicy_js_1 = require("./policies/RbacPolicy.js");
|
|
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);
|
|
9
|
+
if (!metadata) {
|
|
10
|
+
metadata = {
|
|
11
|
+
Resource: '',
|
|
12
|
+
Routes: new Map(),
|
|
13
|
+
Permission: 'readOwn',
|
|
14
|
+
};
|
|
15
|
+
Reflect.defineMetadata(exports.ACL_CONTROLLER_DESCRIPTOR, metadata, target.prototype || target);
|
|
16
|
+
}
|
|
17
|
+
if (callback) {
|
|
18
|
+
callback(metadata);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.setRbacMetadata = setRbacMetadata;
|
|
22
|
+
function descriptor(callback) {
|
|
23
|
+
return (target, propertyKey, indexOrDescriptor) => {
|
|
24
|
+
let metadata = Reflect.getMetadata(exports.ACL_CONTROLLER_DESCRIPTOR, target.prototype || target);
|
|
25
|
+
if (!metadata) {
|
|
26
|
+
metadata = {
|
|
27
|
+
Resource: '',
|
|
28
|
+
Routes: new Map(),
|
|
29
|
+
Permission: 'readOwn',
|
|
30
|
+
};
|
|
31
|
+
Reflect.defineMetadata(exports.ACL_CONTROLLER_DESCRIPTOR, metadata, target.prototype || target);
|
|
32
|
+
}
|
|
33
|
+
if (callback) {
|
|
34
|
+
callback(metadata, target, propertyKey, indexOrDescriptor);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Assign resource for controller
|
|
40
|
+
*
|
|
41
|
+
* @param resource - name of resource
|
|
42
|
+
* @param permission - default permission
|
|
43
|
+
*/
|
|
44
|
+
function Resource(resource, permission = 'readOwn') {
|
|
45
|
+
return descriptor((metadata, target) => {
|
|
46
|
+
(0, http_1.Policy)(RbacPolicy_js_1.RbacPolicy)(target, null, null);
|
|
47
|
+
metadata.Resource = resource;
|
|
48
|
+
metadata.Permission = permission;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
exports.Resource = Resource;
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* Assigns permission for controller route
|
|
55
|
+
*
|
|
56
|
+
* @param permission - permission to set
|
|
57
|
+
*/
|
|
58
|
+
function Permission(permission = 'readOwn') {
|
|
59
|
+
return descriptor((metadata, target, propertyKey) => {
|
|
60
|
+
if (propertyKey) {
|
|
61
|
+
if (!metadata.Routes.has(propertyKey)) {
|
|
62
|
+
const route = {
|
|
63
|
+
Permission: permission,
|
|
64
|
+
};
|
|
65
|
+
metadata.Routes.set(propertyKey, route);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
(0, http_1.Policy)(RbacPolicy_js_1.RbacPolicy)(target, propertyKey, null);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
exports.Permission = Permission;
|
|
72
|
+
/**
|
|
73
|
+
* Retrieves user from session if is logged in
|
|
74
|
+
*/
|
|
75
|
+
function User() {
|
|
76
|
+
return (0, http_1.Route)((0, http_1.Parameter)('UserArg'));
|
|
77
|
+
}
|
|
78
|
+
exports.User = User;
|
|
79
|
+
/**
|
|
80
|
+
* Extract args from user session
|
|
81
|
+
*/
|
|
82
|
+
function Session() {
|
|
83
|
+
return (0, http_1.Route)((0, http_1.Parameter)('SessionArg'));
|
|
84
|
+
}
|
|
85
|
+
exports.Session = Session;
|
|
86
86
|
//# sourceMappingURL=decorators.js.map
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './decorators.js';
|
|
2
|
-
export * from './interfaces.js';
|
|
3
|
-
export * from './middlewares.js';
|
|
4
|
-
export * from './policies/RbacPolicy.js';
|
|
5
|
-
export * from './transformers.js';
|
|
6
|
-
export * from './route-args.js';
|
|
1
|
+
export * from './decorators.js';
|
|
2
|
+
export * from './interfaces.js';
|
|
3
|
+
export * from './middlewares.js';
|
|
4
|
+
export * from './policies/RbacPolicy.js';
|
|
5
|
+
export * from './transformers.js';
|
|
6
|
+
export * from './route-args.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./decorators.js"), exports);
|
|
18
|
-
__exportStar(require("./interfaces.js"), exports);
|
|
19
|
-
__exportStar(require("./middlewares.js"), exports);
|
|
20
|
-
__exportStar(require("./policies/RbacPolicy.js"), exports);
|
|
21
|
-
__exportStar(require("./transformers.js"), exports);
|
|
22
|
-
__exportStar(require("./route-args.js"), exports);
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./decorators.js"), exports);
|
|
18
|
+
__exportStar(require("./interfaces.js"), exports);
|
|
19
|
+
__exportStar(require("./middlewares.js"), exports);
|
|
20
|
+
__exportStar(require("./policies/RbacPolicy.js"), exports);
|
|
21
|
+
__exportStar(require("./transformers.js"), exports);
|
|
22
|
+
__exportStar(require("./route-args.js"), exports);
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/interfaces.d.ts
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import { User, ISession } from '@spinajs/rbac';
|
|
2
|
-
export type PermissionType = 'readAny' | 'readOwn' | 'updateAny' | 'updateOwn' | 'deleteAny' | 'deleteOwn' | 'createAny' | 'createOwn';
|
|
3
|
-
declare module '@spinajs/http' {
|
|
4
|
-
interface IActionLocalStoregeContext {
|
|
5
|
-
user: User | null;
|
|
6
|
-
session: ISession;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
export interface IRbacDescriptor {
|
|
10
|
-
/**
|
|
11
|
-
* Resource name
|
|
12
|
-
*/
|
|
13
|
-
Resource: string;
|
|
14
|
-
/**
|
|
15
|
-
* Assigned permission
|
|
16
|
-
*
|
|
17
|
-
* '*' means that to acces resource we only need role with assigned resource
|
|
18
|
-
*/
|
|
19
|
-
Permission: PermissionType;
|
|
20
|
-
/**
|
|
21
|
-
* Per routes permissions
|
|
22
|
-
*/
|
|
23
|
-
Routes: Map<string, IRbacRoutePermissionDescriptor>;
|
|
24
|
-
}
|
|
25
|
-
export interface IRbacRoutePermissionDescriptor {
|
|
26
|
-
/**
|
|
27
|
-
* controller route permission. It overrides acl descriptor options
|
|
28
|
-
*/
|
|
29
|
-
Permission: PermissionType;
|
|
30
|
-
}
|
|
31
|
-
export declare abstract class TwoFactorAuthProvider {
|
|
32
|
-
/**
|
|
33
|
-
* generate secret key if this provider use is needs it or null
|
|
34
|
-
*/
|
|
35
|
-
abstract initialize(user: User): Promise<any | null>;
|
|
36
|
-
/**
|
|
37
|
-
* Perform action eg. send sms or email. Some 2fac implementations do nothing eg. google auth or hardware keys
|
|
38
|
-
*/
|
|
39
|
-
abstract execute(user: User): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* verifies token send by user
|
|
42
|
-
*/
|
|
43
|
-
abstract verifyToken(token: string, user: User): Promise<boolean>;
|
|
44
|
-
/**
|
|
45
|
-
* Checks if 2fa is enabled for given user
|
|
46
|
-
*/
|
|
47
|
-
abstract isEnabled(user: User): Promise<boolean>;
|
|
48
|
-
/**
|
|
49
|
-
* Checks if 2fa is initialized eg. some
|
|
50
|
-
* 2fa systems requires to generate private software key and pass it
|
|
51
|
-
* to user ( like google authenticator)
|
|
52
|
-
*/
|
|
53
|
-
abstract isInitialized(user: User): Promise<boolean>;
|
|
54
|
-
}
|
|
55
|
-
export declare abstract class FingerprintProvider {
|
|
56
|
-
}
|
|
57
|
-
export interface TwoFactorAuthConfig {
|
|
58
|
-
enabled: boolean;
|
|
59
|
-
service: string;
|
|
60
|
-
}
|
|
61
|
-
export interface FingerpringConfig {
|
|
62
|
-
enabled: boolean;
|
|
63
|
-
maxDevices: number;
|
|
64
|
-
service: string;
|
|
65
|
-
}
|
|
1
|
+
import { User, ISession } from '@spinajs/rbac';
|
|
2
|
+
export type PermissionType = 'readAny' | 'readOwn' | 'updateAny' | 'updateOwn' | 'deleteAny' | 'deleteOwn' | 'createAny' | 'createOwn';
|
|
3
|
+
declare module '@spinajs/http' {
|
|
4
|
+
interface IActionLocalStoregeContext {
|
|
5
|
+
user: User | null;
|
|
6
|
+
session: ISession;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export interface IRbacDescriptor {
|
|
10
|
+
/**
|
|
11
|
+
* Resource name
|
|
12
|
+
*/
|
|
13
|
+
Resource: string;
|
|
14
|
+
/**
|
|
15
|
+
* Assigned permission
|
|
16
|
+
*
|
|
17
|
+
* '*' means that to acces resource we only need role with assigned resource
|
|
18
|
+
*/
|
|
19
|
+
Permission: PermissionType;
|
|
20
|
+
/**
|
|
21
|
+
* Per routes permissions
|
|
22
|
+
*/
|
|
23
|
+
Routes: Map<string, IRbacRoutePermissionDescriptor>;
|
|
24
|
+
}
|
|
25
|
+
export interface IRbacRoutePermissionDescriptor {
|
|
26
|
+
/**
|
|
27
|
+
* controller route permission. It overrides acl descriptor options
|
|
28
|
+
*/
|
|
29
|
+
Permission: PermissionType;
|
|
30
|
+
}
|
|
31
|
+
export declare abstract class TwoFactorAuthProvider {
|
|
32
|
+
/**
|
|
33
|
+
* generate secret key if this provider use is needs it or null
|
|
34
|
+
*/
|
|
35
|
+
abstract initialize(user: User): Promise<any | null>;
|
|
36
|
+
/**
|
|
37
|
+
* Perform action eg. send sms or email. Some 2fac implementations do nothing eg. google auth or hardware keys
|
|
38
|
+
*/
|
|
39
|
+
abstract execute(user: User): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* verifies token send by user
|
|
42
|
+
*/
|
|
43
|
+
abstract verifyToken(token: string, user: User): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Checks if 2fa is enabled for given user
|
|
46
|
+
*/
|
|
47
|
+
abstract isEnabled(user: User): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Checks if 2fa is initialized eg. some
|
|
50
|
+
* 2fa systems requires to generate private software key and pass it
|
|
51
|
+
* to user ( like google authenticator)
|
|
52
|
+
*/
|
|
53
|
+
abstract isInitialized(user: User): Promise<boolean>;
|
|
54
|
+
}
|
|
55
|
+
export declare abstract class FingerprintProvider {
|
|
56
|
+
}
|
|
57
|
+
export interface TwoFactorAuthConfig {
|
|
58
|
+
enabled: boolean;
|
|
59
|
+
service: string;
|
|
60
|
+
}
|
|
61
|
+
export interface FingerpringConfig {
|
|
62
|
+
enabled: boolean;
|
|
63
|
+
maxDevices: number;
|
|
64
|
+
service: string;
|
|
65
|
+
}
|
|
66
66
|
//# sourceMappingURL=interfaces.d.ts.map
|
package/lib/cjs/interfaces.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FingerprintProvider = exports.TwoFactorAuthProvider = void 0;
|
|
4
|
-
class TwoFactorAuthProvider {
|
|
5
|
-
}
|
|
6
|
-
exports.TwoFactorAuthProvider = TwoFactorAuthProvider;
|
|
7
|
-
class FingerprintProvider {
|
|
8
|
-
}
|
|
9
|
-
exports.FingerprintProvider = FingerprintProvider;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FingerprintProvider = exports.TwoFactorAuthProvider = void 0;
|
|
4
|
+
class TwoFactorAuthProvider {
|
|
5
|
+
}
|
|
6
|
+
exports.TwoFactorAuthProvider = TwoFactorAuthProvider;
|
|
7
|
+
class FingerprintProvider {
|
|
8
|
+
}
|
|
9
|
+
exports.FingerprintProvider = FingerprintProvider;
|
|
10
10
|
//# sourceMappingURL=interfaces.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { RouteMiddleware, IController, IRoute } from '@spinajs/http';
|
|
2
|
-
/**
|
|
3
|
-
* Filters attributes of db models
|
|
4
|
-
*/
|
|
5
|
-
export declare class FilterAttribute extends RouteMiddleware {
|
|
6
|
-
onResponse(): Promise<void>;
|
|
7
|
-
isEnabled(_action: IRoute, _instance: IController): boolean;
|
|
8
|
-
onBefore(): Promise<void>;
|
|
9
|
-
onAfter(): Promise<void>;
|
|
10
|
-
}
|
|
1
|
+
import { RouteMiddleware, IController, IRoute } from '@spinajs/http';
|
|
2
|
+
/**
|
|
3
|
+
* Filters attributes of db models
|
|
4
|
+
*/
|
|
5
|
+
export declare class FilterAttribute extends RouteMiddleware {
|
|
6
|
+
onResponse(): Promise<void>;
|
|
7
|
+
isEnabled(_action: IRoute, _instance: IController): boolean;
|
|
8
|
+
onBefore(): Promise<void>;
|
|
9
|
+
onAfter(): Promise<void>;
|
|
10
|
+
}
|
|
11
11
|
//# sourceMappingURL=AttributeFilter.d.ts.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FilterAttribute = void 0;
|
|
4
|
-
const http_1 = require("@spinajs/http");
|
|
5
|
-
/**
|
|
6
|
-
* Filters attributes of db models
|
|
7
|
-
*/
|
|
8
|
-
class FilterAttribute extends http_1.RouteMiddleware {
|
|
9
|
-
async onResponse() { }
|
|
10
|
-
isEnabled(_action, _instance) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
// tslint:disable-next-line: no-empty
|
|
14
|
-
async onBefore() { }
|
|
15
|
-
// tslint:disable-next-line: no-empty
|
|
16
|
-
async onAfter() { }
|
|
17
|
-
}
|
|
18
|
-
exports.FilterAttribute = FilterAttribute;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FilterAttribute = void 0;
|
|
4
|
+
const http_1 = require("@spinajs/http");
|
|
5
|
+
/**
|
|
6
|
+
* Filters attributes of db models
|
|
7
|
+
*/
|
|
8
|
+
class FilterAttribute extends http_1.RouteMiddleware {
|
|
9
|
+
async onResponse() { }
|
|
10
|
+
isEnabled(_action, _instance) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
// tslint:disable-next-line: no-empty
|
|
14
|
+
async onBefore() { }
|
|
15
|
+
// tslint:disable-next-line: no-empty
|
|
16
|
+
async onAfter() { }
|
|
17
|
+
}
|
|
18
|
+
exports.FilterAttribute = FilterAttribute;
|
|
19
19
|
//# sourceMappingURL=AttributeFilter.js.map
|
package/lib/cjs/middlewares.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { SessionProvider } from '@spinajs/rbac';
|
|
2
|
-
import 'reflect-metadata';
|
|
3
|
-
import * as express from 'express';
|
|
4
|
-
import { Request as sRequest, ServerMiddleware } from '@spinajs/http';
|
|
5
|
-
export declare class RbacMiddleware extends ServerMiddleware {
|
|
6
|
-
protected CoockieSecret: string;
|
|
7
|
-
protected SessionProvider: SessionProvider;
|
|
8
|
-
resolve(): Promise<void>;
|
|
9
|
-
before(): (req: sRequest, res: express.Response, next: express.NextFunction) => void;
|
|
10
|
-
after(): (req: sRequest, res: express.Response, next: express.NextFunction) => void;
|
|
11
|
-
}
|
|
1
|
+
import { SessionProvider } from '@spinajs/rbac';
|
|
2
|
+
import 'reflect-metadata';
|
|
3
|
+
import * as express from 'express';
|
|
4
|
+
import { Request as sRequest, ServerMiddleware } from '@spinajs/http';
|
|
5
|
+
export declare class RbacMiddleware extends ServerMiddleware {
|
|
6
|
+
protected CoockieSecret: string;
|
|
7
|
+
protected SessionProvider: SessionProvider;
|
|
8
|
+
resolve(): Promise<void>;
|
|
9
|
+
before(): (req: sRequest, res: express.Response, next: express.NextFunction) => void;
|
|
10
|
+
after(): (req: sRequest, res: express.Response, next: express.NextFunction) => void;
|
|
11
|
+
}
|
|
12
12
|
//# sourceMappingURL=middlewares.d.ts.map
|