@spinajs/rbac 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/auth.d.ts +3 -2
- package/lib/auth.d.ts.map +1 -0
- package/lib/auth.js +24 -24
- package/lib/auth.js.map +1 -1
- package/lib/cli/ActivateUser.d.ts +1 -0
- package/lib/cli/ActivateUser.d.ts.map +1 -0
- package/lib/cli/ActivateUser.js +18 -21
- package/lib/cli/ActivateUser.js.map +1 -1
- package/lib/cli/BanUser.d.ts +1 -0
- package/lib/cli/BanUser.d.ts.map +1 -0
- package/lib/cli/BanUser.js +26 -29
- package/lib/cli/BanUser.js.map +1 -1
- package/lib/cli/ChangeUserPassword.d.ts +2 -1
- package/lib/cli/ChangeUserPassword.d.ts.map +1 -0
- package/lib/cli/ChangeUserPassword.js +26 -29
- package/lib/cli/ChangeUserPassword.js.map +1 -1
- package/lib/cli/ClearUserTimelineSchedule.d.ts +1 -0
- package/lib/cli/ClearUserTimelineSchedule.d.ts.map +1 -0
- package/lib/cli/ClearUserTimelineSchedule.js +16 -19
- package/lib/cli/ClearUserTimelineSchedule.js.map +1 -1
- package/lib/cli/CreateUser.d.ts +2 -1
- package/lib/cli/CreateUser.d.ts.map +1 -0
- package/lib/cli/CreateUser.js +27 -30
- package/lib/cli/CreateUser.js.map +1 -1
- package/lib/cli/DeleteUser.d.ts +1 -0
- package/lib/cli/DeleteUser.d.ts.map +1 -0
- package/lib/cli/DeleteUser.js +17 -20
- package/lib/cli/DeleteUser.js.map +1 -1
- package/lib/cli/FindUser.d.ts +1 -0
- package/lib/cli/FindUser.d.ts.map +1 -0
- package/lib/cli/FindUser.js +14 -17
- package/lib/cli/FindUser.js.map +1 -1
- package/lib/cli/GrantUserRole.d.ts +1 -0
- package/lib/cli/GrantUserRole.d.ts.map +1 -0
- package/lib/cli/GrantUserRole.js +20 -26
- package/lib/cli/GrantUserRole.js.map +1 -1
- package/lib/cli/LatestUserEvents.d.ts +1 -0
- package/lib/cli/LatestUserEvents.d.ts.map +1 -0
- package/lib/cli/LatestUserEvents.js +13 -16
- package/lib/cli/LatestUserEvents.js.map +1 -1
- package/lib/cli/RevokeUserRole.d.ts +1 -0
- package/lib/cli/RevokeUserRole.d.ts.map +1 -0
- package/lib/cli/RevokeUserRole.js +20 -26
- package/lib/cli/RevokeUserRole.js.map +1 -1
- package/lib/cli/UnbanUserSchedule.d.ts +1 -0
- package/lib/cli/UnbanUserSchedule.d.ts.map +1 -0
- package/lib/cli/UnbanUserSchedule.js +16 -19
- package/lib/cli/UnbanUserSchedule.js.map +1 -1
- package/lib/config/rbac.d.ts +1 -0
- package/lib/config/rbac.d.ts.map +1 -0
- package/lib/config/rbac.js +2 -4
- package/lib/config/rbac.js.map +1 -1
- package/lib/events/NewUser.d.ts +1 -0
- package/lib/events/NewUser.d.ts.map +1 -0
- package/lib/events/NewUser.js +4 -7
- package/lib/events/NewUser.js.map +1 -1
- package/lib/events/UserActivated.d.ts +1 -0
- package/lib/events/UserActivated.d.ts.map +1 -0
- package/lib/events/UserActivated.js +4 -7
- package/lib/events/UserActivated.js.map +1 -1
- package/lib/events/UserBanned.d.ts +1 -0
- package/lib/events/UserBanned.d.ts.map +1 -0
- package/lib/events/UserBanned.js +4 -7
- package/lib/events/UserBanned.js.map +1 -1
- package/lib/events/UserDeactivated.d.ts +1 -0
- package/lib/events/UserDeactivated.d.ts.map +1 -0
- package/lib/events/UserDeactivated.js +4 -7
- package/lib/events/UserDeactivated.js.map +1 -1
- package/lib/events/UserDeleted.d.ts +1 -0
- package/lib/events/UserDeleted.d.ts.map +1 -0
- package/lib/events/UserDeleted.js +4 -7
- package/lib/events/UserDeleted.js.map +1 -1
- package/lib/events/UserMetadataAdded.d.ts +1 -0
- package/lib/events/UserMetadataAdded.d.ts.map +1 -0
- package/lib/events/UserMetadataAdded.js +4 -7
- package/lib/events/UserMetadataAdded.js.map +1 -1
- package/lib/events/UserMetadataChanged.d.ts +1 -0
- package/lib/events/UserMetadataChanged.d.ts.map +1 -0
- package/lib/events/UserMetadataChanged.js +4 -7
- package/lib/events/UserMetadataChanged.js.map +1 -1
- package/lib/events/UserMetadataDeleted.d.ts +1 -0
- package/lib/events/UserMetadataDeleted.d.ts.map +1 -0
- package/lib/events/UserMetadataDeleted.js +4 -7
- package/lib/events/UserMetadataDeleted.js.map +1 -1
- package/lib/events/UserPasswordChanged.d.ts +1 -0
- package/lib/events/UserPasswordChanged.d.ts.map +1 -0
- package/lib/events/UserPasswordChanged.js +4 -7
- package/lib/events/UserPasswordChanged.js.map +1 -1
- package/lib/events/UserPropertyChanged.d.ts +1 -0
- package/lib/events/UserPropertyChanged.d.ts.map +1 -0
- package/lib/events/UserPropertyChanged.js +4 -7
- package/lib/events/UserPropertyChanged.js.map +1 -1
- package/lib/events/UserRoleGranted.d.ts +1 -0
- package/lib/events/UserRoleGranted.d.ts.map +1 -0
- package/lib/events/UserRoleGranted.js +4 -7
- package/lib/events/UserRoleGranted.js.map +1 -1
- package/lib/events/UserRoleRevoked.d.ts +1 -0
- package/lib/events/UserRoleRevoked.d.ts.map +1 -0
- package/lib/events/UserRoleRevoked.js +4 -7
- package/lib/events/UserRoleRevoked.js.map +1 -1
- package/lib/events/UserUnbanned.d.ts +1 -0
- package/lib/events/UserUnbanned.d.ts.map +1 -0
- package/lib/events/UserUnbanned.js +4 -7
- package/lib/events/UserUnbanned.js.map +1 -1
- package/lib/events/index.d.ts +14 -13
- package/lib/events/index.d.ts.map +1 -0
- package/lib/events/index.js +13 -29
- package/lib/events/index.js.map +1 -1
- package/lib/index.d.ts +13 -12
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +21 -39
- 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 +8 -16
- package/lib/interfaces.js.map +1 -1
- package/lib/jobs/UnbanUser.d.ts +1 -0
- package/lib/jobs/UnbanUser.d.ts.map +1 -0
- package/lib/jobs/UnbanUser.js +14 -17
- package/lib/jobs/UnbanUser.js.map +1 -1
- package/lib/middleware.d.ts +1 -0
- package/lib/middleware.d.ts.map +1 -0
- package/lib/middleware.js +6 -9
- package/lib/middleware.js.map +1 -1
- package/lib/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +1 -0
- package/lib/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -0
- package/lib/migrations/RBACInitial_2022_06_28_01_13_00.js +4 -7
- package/lib/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
- package/lib/models/User.d.ts +4 -4
- package/lib/models/User.d.ts.map +1 -0
- package/lib/models/User.js +33 -37
- package/lib/models/User.js.map +1 -1
- package/lib/models/UserMetadata.d.ts +2 -1
- package/lib/models/UserMetadata.d.ts.map +1 -0
- package/lib/models/UserMetadata.js +9 -12
- package/lib/models/UserMetadata.js.map +1 -1
- package/lib/models/UserTimeline.d.ts +2 -1
- package/lib/models/UserTimeline.d.ts.map +1 -0
- package/lib/models/UserTimeline.js +11 -14
- package/lib/models/UserTimeline.js.map +1 -1
- package/lib/password.d.ts +2 -1
- package/lib/password.d.ts.map +1 -0
- package/lib/password.js +15 -41
- package/lib/password.js.map +1 -1
- package/lib/session.d.ts +2 -1
- package/lib/session.d.ts.map +1 -0
- package/lib/session.js +17 -23
- package/lib/session.js.map +1 -1
- package/package.json +64 -60
- package/lib/cli/ChangePassword.d.ts +0 -0
- package/lib/cli/ChangePassword.js +0 -1
- package/lib/cli/ChangePassword.js.map +0 -1
- package/lib/cli/Find.d.ts +0 -12
- package/lib/cli/Find.js +0 -45
- package/lib/cli/Find.js.map +0 -1
- package/lib/events/UserPropertyChange.d.ts +0 -7
- package/lib/events/UserPropertyChange.js +0 -17
- package/lib/events/UserPropertyChange.js.map +0 -1
- package/lib/messages/ChangedProperties.d.ts +0 -6
- package/lib/messages/ChangedProperties.js +0 -8
- package/lib/messages/ChangedProperties.js.map +0 -1
- package/lib/messages/NewUser.d.ts +0 -14
- package/lib/messages/NewUser.js +0 -21
- package/lib/messages/NewUser.js.map +0 -1
- package/lib/messages/UserActivated.d.ts +0 -7
- package/lib/messages/UserActivated.js +0 -13
- package/lib/messages/UserActivated.js.map +0 -1
- package/lib/messages/UserBanned.d.ts +0 -7
- package/lib/messages/UserBanned.js +0 -13
- package/lib/messages/UserBanned.js.map +0 -1
package/lib/models/User.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,14 +7,12 @@ 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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const UserTimeline_1 = require("./UserTimeline");
|
|
18
|
-
class UserMetadataRelation extends orm_1.OneToManyRelationList {
|
|
10
|
+
import { DateTime } from 'luxon';
|
|
11
|
+
import { ModelBase, Primary, Connection, Model, CreatedAt, SoftDelete, HasMany, Relation, Uuid, DateTime as DT, OneToManyRelationList, InsertBehaviour } from '@spinajs/orm';
|
|
12
|
+
import { DI } from '@spinajs/di';
|
|
13
|
+
import { UserMetadata } from './UserMetadata.js';
|
|
14
|
+
import { UserAction } from './UserTimeline.js';
|
|
15
|
+
class UserMetadataRelation extends OneToManyRelationList {
|
|
19
16
|
/**
|
|
20
17
|
*
|
|
21
18
|
* Checks if metadata exists, its DB first, it will only check DB for existence
|
|
@@ -26,12 +23,12 @@ class UserMetadataRelation extends orm_1.OneToManyRelationList {
|
|
|
26
23
|
async exists(key) {
|
|
27
24
|
let result = null;
|
|
28
25
|
if (key instanceof RegExp) {
|
|
29
|
-
result = await
|
|
26
|
+
result = await UserMetadata.where({
|
|
30
27
|
User: this.owner,
|
|
31
28
|
}).andWhere('Key', 'rlike', key.source);
|
|
32
29
|
}
|
|
33
30
|
else {
|
|
34
|
-
result = await
|
|
31
|
+
result = await UserMetadata.where({
|
|
35
32
|
User: this.owner,
|
|
36
33
|
}).andWhere('Key', key);
|
|
37
34
|
}
|
|
@@ -45,14 +42,14 @@ class UserMetadataRelation extends orm_1.OneToManyRelationList {
|
|
|
45
42
|
*/
|
|
46
43
|
async delete(key) {
|
|
47
44
|
if (key instanceof RegExp) {
|
|
48
|
-
await
|
|
45
|
+
await UserMetadata.destroy()
|
|
49
46
|
.where({
|
|
50
47
|
User: this.owner,
|
|
51
48
|
})
|
|
52
49
|
.andWhere('Key', 'rlike', key.source);
|
|
53
50
|
}
|
|
54
51
|
else {
|
|
55
|
-
await
|
|
52
|
+
await UserMetadata.destroy().where({
|
|
56
53
|
Key: key,
|
|
57
54
|
User: this.owner,
|
|
58
55
|
});
|
|
@@ -70,11 +67,11 @@ function UserMetadataRelationFactory(model, desc, container) {
|
|
|
70
67
|
return (target[prop] = value);
|
|
71
68
|
}
|
|
72
69
|
else {
|
|
73
|
-
const userMeta = new
|
|
70
|
+
const userMeta = new UserMetadata();
|
|
74
71
|
userMeta.User.Value = model;
|
|
75
72
|
userMeta.Key = prop;
|
|
76
73
|
userMeta.Value = value;
|
|
77
|
-
|
|
74
|
+
UserMetadata.insert(userMeta, InsertBehaviour.InsertOrUpdate);
|
|
78
75
|
let meta = target.find((x) => x.Value === prop);
|
|
79
76
|
if (meta) {
|
|
80
77
|
meta.Value = value;
|
|
@@ -98,7 +95,7 @@ function UserMetadataRelationFactory(model, desc, container) {
|
|
|
98
95
|
}
|
|
99
96
|
// if not found try to obtain it
|
|
100
97
|
// or return null
|
|
101
|
-
return
|
|
98
|
+
return UserMetadata.where({
|
|
102
99
|
User: model,
|
|
103
100
|
Key: prop,
|
|
104
101
|
})
|
|
@@ -115,7 +112,7 @@ function UserMetadataRelationFactory(model, desc, container) {
|
|
|
115
112
|
};
|
|
116
113
|
return new Proxy(repository, proxy);
|
|
117
114
|
}
|
|
118
|
-
class UserQueryScopes {
|
|
115
|
+
export class UserQueryScopes {
|
|
119
116
|
/**
|
|
120
117
|
*
|
|
121
118
|
* Fetch users that are not banned, are active & email confirmed, not deleted
|
|
@@ -129,60 +126,59 @@ class UserQueryScopes {
|
|
|
129
126
|
});
|
|
130
127
|
}
|
|
131
128
|
}
|
|
132
|
-
exports.UserQueryScopes = UserQueryScopes;
|
|
133
129
|
/**
|
|
134
130
|
* Base model for users used by auth and ACL system
|
|
135
131
|
*
|
|
136
132
|
* To add / extend fields simply extend this model and register as default user model in ACL service
|
|
137
133
|
*/
|
|
138
|
-
let User = class User extends
|
|
134
|
+
let User = class User extends ModelBase {
|
|
139
135
|
constructor() {
|
|
140
136
|
super(...arguments);
|
|
141
137
|
this._hidden = ['Password', 'Id'];
|
|
142
138
|
}
|
|
139
|
+
static { this._queryScopes = new UserQueryScopes(); }
|
|
143
140
|
can(resource, permission) {
|
|
144
|
-
const ac =
|
|
141
|
+
const ac = DI.get('AccessControl');
|
|
145
142
|
return ac.can(this.Role)[permission](resource);
|
|
146
143
|
}
|
|
147
144
|
};
|
|
148
|
-
User._queryScopes = new UserQueryScopes();
|
|
149
145
|
__decorate([
|
|
150
|
-
|
|
146
|
+
Primary(),
|
|
151
147
|
__metadata("design:type", Number)
|
|
152
148
|
], User.prototype, "Id", void 0);
|
|
153
149
|
__decorate([
|
|
154
|
-
|
|
150
|
+
Uuid(),
|
|
155
151
|
__metadata("design:type", String)
|
|
156
152
|
], User.prototype, "Uuid", void 0);
|
|
157
153
|
__decorate([
|
|
158
|
-
|
|
159
|
-
__metadata("design:type",
|
|
154
|
+
CreatedAt(),
|
|
155
|
+
__metadata("design:type", DateTime)
|
|
160
156
|
], User.prototype, "CreatedAt", void 0);
|
|
161
157
|
__decorate([
|
|
162
|
-
(
|
|
163
|
-
__metadata("design:type",
|
|
158
|
+
DT(),
|
|
159
|
+
__metadata("design:type", DateTime)
|
|
164
160
|
], User.prototype, "RegisteredAt", void 0);
|
|
165
161
|
__decorate([
|
|
166
|
-
|
|
167
|
-
__metadata("design:type",
|
|
162
|
+
SoftDelete(),
|
|
163
|
+
__metadata("design:type", DateTime)
|
|
168
164
|
], User.prototype, "DeletedAt", void 0);
|
|
169
165
|
__decorate([
|
|
170
|
-
(
|
|
171
|
-
__metadata("design:type",
|
|
166
|
+
DT(),
|
|
167
|
+
__metadata("design:type", DateTime)
|
|
172
168
|
], User.prototype, "LastLoginAt", void 0);
|
|
173
169
|
__decorate([
|
|
174
|
-
|
|
170
|
+
HasMany(UserMetadata, {
|
|
175
171
|
factory: UserMetadataRelationFactory,
|
|
176
172
|
}),
|
|
177
173
|
__metadata("design:type", UserMetadataRelation)
|
|
178
174
|
], User.prototype, "Metadata", void 0);
|
|
179
175
|
__decorate([
|
|
180
|
-
|
|
181
|
-
__metadata("design:type",
|
|
176
|
+
HasMany(UserAction),
|
|
177
|
+
__metadata("design:type", Relation)
|
|
182
178
|
], User.prototype, "Actions", void 0);
|
|
183
179
|
User = __decorate([
|
|
184
|
-
|
|
185
|
-
|
|
180
|
+
Connection('default'),
|
|
181
|
+
Model('users')
|
|
186
182
|
], User);
|
|
187
|
-
|
|
183
|
+
export { User };
|
|
188
184
|
//# sourceMappingURL=User.js.map
|
package/lib/models/User.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModelBase, SingleRelation } from '@spinajs/orm';
|
|
2
|
-
import type { User } from './User';
|
|
2
|
+
import type { User } from './User.js';
|
|
3
3
|
export declare class UserMetadata extends ModelBase<UserMetadata> {
|
|
4
4
|
Id: number;
|
|
5
5
|
Key: string;
|
|
@@ -7,3 +7,4 @@ export declare class UserMetadata extends ModelBase<UserMetadata> {
|
|
|
7
7
|
Value: any;
|
|
8
8
|
User: SingleRelation<User>;
|
|
9
9
|
}
|
|
10
|
+
//# sourceMappingURL=UserMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMetadata.d.ts","sourceRoot":"","sources":["../../src/models/UserMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,SAAS,EAAW,cAAc,EAAsB,MAAM,cAAc,CAAC;AAEpH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,qBAEa,YAAa,SAAQ,SAAS,CAAC,YAAY,CAAC;IAEhD,EAAE,EAAE,MAAM,CAAC;IAEX,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAGtE,KAAK,EAAE,GAAG,CAAC;IAGX,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;CACnC"}
|
|
@@ -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,26 +7,24 @@ 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 orm_1 = require("@spinajs/orm");
|
|
14
|
-
let UserMetadata = class UserMetadata extends orm_1.ModelBase {
|
|
10
|
+
import { BelongsTo, Connection, Model, ModelBase, Primary, SingleRelation, UniversalConverter } from '@spinajs/orm';
|
|
11
|
+
let UserMetadata = class UserMetadata extends ModelBase {
|
|
15
12
|
};
|
|
16
13
|
__decorate([
|
|
17
|
-
|
|
14
|
+
Primary(),
|
|
18
15
|
__metadata("design:type", Number)
|
|
19
16
|
], UserMetadata.prototype, "Id", void 0);
|
|
20
17
|
__decorate([
|
|
21
|
-
|
|
18
|
+
UniversalConverter('Type'),
|
|
22
19
|
__metadata("design:type", Object)
|
|
23
20
|
], UserMetadata.prototype, "Value", void 0);
|
|
24
21
|
__decorate([
|
|
25
|
-
|
|
26
|
-
__metadata("design:type",
|
|
22
|
+
BelongsTo('User'),
|
|
23
|
+
__metadata("design:type", SingleRelation)
|
|
27
24
|
], UserMetadata.prototype, "User", void 0);
|
|
28
25
|
UserMetadata = __decorate([
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
Connection('default'),
|
|
27
|
+
Model('users_metadata')
|
|
31
28
|
], UserMetadata);
|
|
32
|
-
|
|
29
|
+
export { UserMetadata };
|
|
33
30
|
//# sourceMappingURL=UserMetadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../src/models/UserMetadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../src/models/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAM7G,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAAuB;CAaxD,CAAA;AAZC;IAAC,OAAO,EAAE;;wCACQ;AAMlB;IAAC,kBAAkB,CAAC,MAAM,CAAC;;2CACT;AAElB;IAAC,SAAS,CAAC,MAAM,CAAC;8BACL,cAAc;0CAAO;AAZvB,YAAY;IAFxB,UAAU,CAAC,SAAS,CAAC;IACrB,KAAK,CAAC,gBAAgB,CAAC;GACX,YAAY,CAaxB;SAbY,YAAY"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ModelBase, SingleRelation } from '@spinajs/orm';
|
|
2
2
|
import { DateTime } from 'luxon';
|
|
3
|
-
import type { User } from './User';
|
|
3
|
+
import type { User } from './User.js';
|
|
4
4
|
/**
|
|
5
5
|
* Timeline table for storing user actions / interactions
|
|
6
6
|
* eg. login attempts, failed logins, resource deletions, alterations etc.
|
|
@@ -26,3 +26,4 @@ export declare class UserAction extends ModelBase<UserAction> {
|
|
|
26
26
|
asJsonObject<T = {}>(): T;
|
|
27
27
|
CreatedAt: DateTime;
|
|
28
28
|
}
|
|
29
|
+
//# sourceMappingURL=UserTimeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserTimeline.d.ts","sourceRoot":"","sources":["../../src/models/UserTimeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,SAAS,EAAW,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC;;;GAGG;AACH,qBAEa,UAAW,SAAQ,SAAS,CAAC,UAAU,CAAC;IAE5C,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACI,UAAU,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACI,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ;IAIR,OAAO;IAIP,YAAY,CAAC,CAAC,GAAG,EAAE;IAKnB,SAAS,EAAE,QAAQ,CAAC;CAC5B"}
|
|
@@ -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,15 +7,13 @@ 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 orm_1 = require("@spinajs/orm");
|
|
14
|
-
const luxon_1 = require("luxon");
|
|
10
|
+
import { BelongsTo, Connection, CreatedAt, Model, ModelBase, Primary, SingleRelation } from '@spinajs/orm';
|
|
11
|
+
import { DateTime } from 'luxon';
|
|
15
12
|
/**
|
|
16
13
|
* Timeline table for storing user actions / interactions
|
|
17
14
|
* eg. login attempts, failed logins, resource deletions, alterations etc.
|
|
18
15
|
*/
|
|
19
|
-
let UserAction = class UserAction extends
|
|
16
|
+
let UserAction = class UserAction extends ModelBase {
|
|
20
17
|
asNumber() {
|
|
21
18
|
return parseInt(this.Data, 10);
|
|
22
19
|
}
|
|
@@ -28,20 +25,20 @@ let UserAction = class UserAction extends orm_1.ModelBase {
|
|
|
28
25
|
}
|
|
29
26
|
};
|
|
30
27
|
__decorate([
|
|
31
|
-
|
|
28
|
+
Primary(),
|
|
32
29
|
__metadata("design:type", Number)
|
|
33
30
|
], UserAction.prototype, "Id", void 0);
|
|
34
31
|
__decorate([
|
|
35
|
-
|
|
36
|
-
__metadata("design:type",
|
|
32
|
+
BelongsTo('User'),
|
|
33
|
+
__metadata("design:type", SingleRelation)
|
|
37
34
|
], UserAction.prototype, "User", void 0);
|
|
38
35
|
__decorate([
|
|
39
|
-
|
|
40
|
-
__metadata("design:type",
|
|
36
|
+
CreatedAt(),
|
|
37
|
+
__metadata("design:type", DateTime)
|
|
41
38
|
], UserAction.prototype, "CreatedAt", void 0);
|
|
42
39
|
UserAction = __decorate([
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
Connection('default'),
|
|
41
|
+
Model('user_actions')
|
|
45
42
|
], UserAction);
|
|
46
|
-
|
|
43
|
+
export { UserAction };
|
|
47
44
|
//# sourceMappingURL=UserTimeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserTimeline.js","sourceRoot":"","sources":["../../src/models/UserTimeline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserTimeline.js","sourceRoot":"","sources":["../../src/models/UserTimeline.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC;;;GAGG;AAGI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAqB;IAwB5C,QAAQ;QACb,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAEM,OAAO;QACZ,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAM,CAAC;IACpC,CAAC;CAIF,CAAA;AArCC;IAAC,OAAO,EAAE;;sCACQ;AAElB;IAAC,SAAS,CAAC,MAAM,CAAC;8BACL,cAAc;wCAAO;AA+BlC;IAAC,SAAS,EAAE;8BACM,QAAQ;6CAAC;AArChB,UAAU;IAFtB,UAAU,CAAC,SAAS,CAAC;IACrB,KAAK,CAAC,cAAc,CAAC;GACT,UAAU,CAsCtB;SAtCY,UAAU"}
|
package/lib/password.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PasswordProvider, PasswordValidationProvider } from './interfaces';
|
|
1
|
+
import { PasswordProvider, PasswordValidationProvider } from './interfaces.js';
|
|
2
2
|
import { DataValidator } from '@spinajs/validation';
|
|
3
3
|
/**
|
|
4
4
|
* Simple password service that use argon2 hash alghoritm and entropy-string to generate password
|
|
@@ -23,3 +23,4 @@ export declare class BasicPasswordValidationProvider extends PasswordValidationP
|
|
|
23
23
|
protected Validator: DataValidator;
|
|
24
24
|
check(password: string): boolean;
|
|
25
25
|
}
|
|
26
|
+
//# sourceMappingURL=password.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../src/password.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;GAEG;AACH,qBACa,qBAAsB,YAAW,gBAAgB;IAC/C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjD;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,QAAQ,IAAI,MAAM;CAK1B;AAED;;GAEG;AACH,qBACa,+BAAgC,SAAQ,0BAA0B;IAE7E,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAGnC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAIxC"}
|
package/lib/password.js
CHANGED
|
@@ -1,45 +1,19 @@
|
|
|
1
|
-
|
|
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
|
-
});
|
|
1
|
+
// tslint:disable-next-line: no-var-requires
|
|
18
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
5
|
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
7
|
};
|
|
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
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
10
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const di_1 = require("@spinajs/di");
|
|
41
|
-
const configuration_1 = require("@spinajs/configuration");
|
|
42
|
-
const validation_1 = require("@spinajs/validation");
|
|
11
|
+
import { PasswordProvider, PasswordValidationProvider } from './interfaces.js';
|
|
12
|
+
import * as argon from 'argon2';
|
|
13
|
+
import { Autoinject, Injectable } from '@spinajs/di';
|
|
14
|
+
import { Config } from '@spinajs/configuration';
|
|
15
|
+
import { DataValidator } from '@spinajs/validation';
|
|
16
|
+
import { Entropy, charset32 } from 'entropy-string';
|
|
43
17
|
/**
|
|
44
18
|
* Simple password service that use argon2 hash alghoritm and entropy-string to generate password
|
|
45
19
|
*/
|
|
@@ -65,28 +39,28 @@ let BasicPasswordProvider = class BasicPasswordProvider {
|
|
|
65
39
|
}
|
|
66
40
|
};
|
|
67
41
|
BasicPasswordProvider = __decorate([
|
|
68
|
-
|
|
42
|
+
Injectable(PasswordProvider)
|
|
69
43
|
], BasicPasswordProvider);
|
|
70
|
-
|
|
44
|
+
export { BasicPasswordProvider };
|
|
71
45
|
/**
|
|
72
46
|
* Simple password validation service based on JSON schema validation
|
|
73
47
|
*/
|
|
74
|
-
let BasicPasswordValidationProvider = class BasicPasswordValidationProvider extends
|
|
48
|
+
let BasicPasswordValidationProvider = class BasicPasswordValidationProvider extends PasswordValidationProvider {
|
|
75
49
|
check(password) {
|
|
76
50
|
const [result] = this.Validator.tryValidate(this.ValidationSchema, password);
|
|
77
51
|
return result;
|
|
78
52
|
}
|
|
79
53
|
};
|
|
80
54
|
__decorate([
|
|
81
|
-
|
|
55
|
+
Config('rbac.password.validation.rule'),
|
|
82
56
|
__metadata("design:type", Object)
|
|
83
57
|
], BasicPasswordValidationProvider.prototype, "ValidationSchema", void 0);
|
|
84
58
|
__decorate([
|
|
85
|
-
|
|
86
|
-
__metadata("design:type",
|
|
59
|
+
Autoinject(),
|
|
60
|
+
__metadata("design:type", DataValidator)
|
|
87
61
|
], BasicPasswordValidationProvider.prototype, "Validator", void 0);
|
|
88
62
|
BasicPasswordValidationProvider = __decorate([
|
|
89
|
-
|
|
63
|
+
Injectable(PasswordValidationProvider)
|
|
90
64
|
], BasicPasswordValidationProvider);
|
|
91
|
-
|
|
65
|
+
export { BasicPasswordValidationProvider };
|
|
92
66
|
//# sourceMappingURL=password.js.map
|
package/lib/password.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.js","sourceRoot":"","sources":["../src/password.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"password.js","sourceRoot":"","sources":["../src/password.ts"],"names":[],"mappings":"AAAA,4CAA4C;;;;;;;;;;AAE5C,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACzB,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,gDAAgD;QAChD,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QAChD,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,QAAQ;QACb,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AAtBY,qBAAqB;IADjC,UAAU,CAAC,gBAAgB,CAAC;GAChB,qBAAqB,CAsBjC;SAtBY,qBAAqB;AAwBlC;;GAEG;AAEI,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,0BAA0B;IAOtE,KAAK,CAAC,QAAgB;QAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAe,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAVC;IAAC,MAAM,CAAC,+BAA+B,CAAC;;yEACL;AAEnC;IAAC,UAAU,EAAE;8BACQ,aAAa;kEAAC;AALxB,+BAA+B;IAD3C,UAAU,CAAC,0BAA0B,CAAC;GAC1B,+BAA+B,CAW3C;SAXY,+BAA+B"}
|
package/lib/session.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DateTime } from 'luxon';
|
|
2
|
-
import { SessionProvider, ISession } from './interfaces';
|
|
2
|
+
import { SessionProvider, ISession } from './interfaces.js';
|
|
3
3
|
/**
|
|
4
4
|
* Session base class
|
|
5
5
|
*/
|
|
@@ -31,3 +31,4 @@ export declare class MemorySessionStore extends SessionProvider<ISession> {
|
|
|
31
31
|
delete(sessionId: string): Promise<void>;
|
|
32
32
|
save(idOrSession: ISession | string, data?: object): Promise<void>;
|
|
33
33
|
}
|
|
34
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAM5D;;GAEG;AACH,qBACa,OAAQ,YAAW,QAAQ;IAEtC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEjC,SAAS,EAAE,MAAM,CAAY;IAEpC;;OAEG;IACI,UAAU,EAAE,QAAQ,CAAQ;IAE5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IAEvC,QAAQ,EAAE,QAAQ,CAAkB;gBAE/B,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAMvC;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM;CAG/B;AAED;;GAEG;AACH,qBACa,kBAAmB,SAAQ,eAAe,CAAC,QAAQ,CAAC;IAC/D,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAA+B;IAE3D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAYpD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWhF"}
|
package/lib/session.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,29 +7,24 @@ 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
|
-
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const interfaces_1 = require("./interfaces");
|
|
18
|
-
const di_1 = require("@spinajs/di");
|
|
19
|
-
const configuration_1 = require("@spinajs/configuration");
|
|
20
|
-
const uuid_1 = require("uuid");
|
|
21
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
10
|
+
import { DateTime } from 'luxon';
|
|
11
|
+
import { SessionProvider } from './interfaces.js';
|
|
12
|
+
import { Injectable, NewInstance } from '@spinajs/di';
|
|
13
|
+
import { Config } from '@spinajs/configuration';
|
|
14
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
15
|
+
import _ from 'lodash';
|
|
22
16
|
/**
|
|
23
17
|
* Session base class
|
|
24
18
|
*/
|
|
25
19
|
let Session = class Session {
|
|
26
20
|
constructor(session) {
|
|
27
|
-
this.SessionId = (
|
|
21
|
+
this.SessionId = uuidv4();
|
|
28
22
|
/**
|
|
29
23
|
* Expiration time for session, if null it does not expire
|
|
30
24
|
*/
|
|
31
25
|
this.Expiration = null;
|
|
32
26
|
this.Data = new Map();
|
|
33
|
-
this.Creation =
|
|
27
|
+
this.Creation = DateTime.now();
|
|
34
28
|
if (session) {
|
|
35
29
|
Object.assign(this, session);
|
|
36
30
|
}
|
|
@@ -41,22 +35,22 @@ let Session = class Session {
|
|
|
41
35
|
* @param seconds - hom mutch to extend
|
|
42
36
|
*/
|
|
43
37
|
extend(seconds) {
|
|
44
|
-
this.Expiration =
|
|
38
|
+
this.Expiration = DateTime.now().plus({ seconds: seconds ? seconds : this.SessionExpirationTime });
|
|
45
39
|
}
|
|
46
40
|
};
|
|
47
41
|
__decorate([
|
|
48
|
-
|
|
42
|
+
Config('rbac.session.expiration'),
|
|
49
43
|
__metadata("design:type", Number)
|
|
50
44
|
], Session.prototype, "SessionExpirationTime", void 0);
|
|
51
45
|
Session = __decorate([
|
|
52
|
-
|
|
46
|
+
NewInstance(),
|
|
53
47
|
__metadata("design:paramtypes", [Object])
|
|
54
48
|
], Session);
|
|
55
|
-
|
|
49
|
+
export { Session };
|
|
56
50
|
/**
|
|
57
51
|
* Simple session storage in memory, for testing or rapid prototyping
|
|
58
52
|
*/
|
|
59
|
-
let MemorySessionStore = class MemorySessionStore extends
|
|
53
|
+
let MemorySessionStore = class MemorySessionStore extends SessionProvider {
|
|
60
54
|
constructor() {
|
|
61
55
|
super(...arguments);
|
|
62
56
|
this.Sessions = new Map();
|
|
@@ -70,7 +64,7 @@ let MemorySessionStore = class MemorySessionStore extends interfaces_1.SessionPr
|
|
|
70
64
|
async restore(sessionId) {
|
|
71
65
|
if (this.Sessions.has(sessionId)) {
|
|
72
66
|
const session = this.Sessions.get(sessionId);
|
|
73
|
-
if (!session.Expiration || session.Expiration >
|
|
67
|
+
if (!session.Expiration || session.Expiration > DateTime.now()) {
|
|
74
68
|
return session;
|
|
75
69
|
}
|
|
76
70
|
return null;
|
|
@@ -83,7 +77,7 @@ let MemorySessionStore = class MemorySessionStore extends interfaces_1.SessionPr
|
|
|
83
77
|
}
|
|
84
78
|
}
|
|
85
79
|
async save(idOrSession, data) {
|
|
86
|
-
if (
|
|
80
|
+
if (_.isString(idOrSession)) {
|
|
87
81
|
const s = this.Sessions.get(idOrSession);
|
|
88
82
|
for (const key in data) {
|
|
89
83
|
s.Data.set(key, data[key]);
|
|
@@ -95,7 +89,7 @@ let MemorySessionStore = class MemorySessionStore extends interfaces_1.SessionPr
|
|
|
95
89
|
}
|
|
96
90
|
};
|
|
97
91
|
MemorySessionStore = __decorate([
|
|
98
|
-
|
|
92
|
+
Injectable(SessionProvider)
|
|
99
93
|
], MemorySessionStore);
|
|
100
|
-
|
|
94
|
+
export { MemorySessionStore };
|
|
101
95
|
//# sourceMappingURL=session.js.map
|
package/lib/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|