@spinajs/rbac 2.0.180 → 2.0.182

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.
Files changed (225) hide show
  1. package/lib/cjs/auth.d.ts +15 -15
  2. package/lib/cjs/auth.js +103 -103
  3. package/lib/cjs/auth.js.map +1 -1
  4. package/lib/cjs/cli/ActivateUser.d.ts +8 -8
  5. package/lib/cjs/cli/ActivateUser.js +47 -47
  6. package/lib/cjs/cli/ActivateUser.js.map +1 -1
  7. package/lib/cjs/cli/BanUser.d.ts +8 -8
  8. package/lib/cjs/cli/BanUser.js +63 -63
  9. package/lib/cjs/cli/BanUser.js.map +1 -1
  10. package/lib/cjs/cli/ChangeUserPassword.d.ts +11 -11
  11. package/lib/cjs/cli/ChangeUserPassword.js +58 -58
  12. package/lib/cjs/cli/ChangeUserPassword.js.map +1 -1
  13. package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
  14. package/lib/cjs/cli/ClearUserTimelineSchedule.js +54 -54
  15. package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +1 -1
  16. package/lib/cjs/cli/CreateUser.d.ts +17 -17
  17. package/lib/cjs/cli/CreateUser.js +69 -69
  18. package/lib/cjs/cli/CreateUser.js.map +1 -1
  19. package/lib/cjs/cli/DeleteUser.d.ts +8 -8
  20. package/lib/cjs/cli/DeleteUser.js +40 -40
  21. package/lib/cjs/cli/DeleteUser.js.map +1 -1
  22. package/lib/cjs/cli/FindUser.d.ts +12 -12
  23. package/lib/cjs/cli/FindUser.js +44 -44
  24. package/lib/cjs/cli/FindUser.js.map +1 -1
  25. package/lib/cjs/cli/GrantUserRole.d.ts +8 -8
  26. package/lib/cjs/cli/GrantUserRole.js +47 -47
  27. package/lib/cjs/cli/GrantUserRole.js.map +1 -1
  28. package/lib/cjs/cli/LatestUserEvents.d.ts +6 -6
  29. package/lib/cjs/cli/LatestUserEvents.js +37 -37
  30. package/lib/cjs/cli/LatestUserEvents.js.map +1 -1
  31. package/lib/cjs/cli/RevokeUserRole.d.ts +8 -8
  32. package/lib/cjs/cli/RevokeUserRole.js +46 -46
  33. package/lib/cjs/cli/RevokeUserRole.js.map +1 -1
  34. package/lib/cjs/cli/UnbanUserSchedule.d.ts +8 -8
  35. package/lib/cjs/cli/UnbanUserSchedule.js +54 -54
  36. package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -1
  37. package/lib/cjs/config/rbac.d.ts +115 -115
  38. package/lib/cjs/config/rbac.js +120 -120
  39. package/lib/cjs/decorators/Resource.d.ts +8 -8
  40. package/lib/cjs/decorators/Resource.js +17 -17
  41. package/lib/cjs/events/NewUser.d.ts +12 -12
  42. package/lib/cjs/events/NewUser.js +16 -16
  43. package/lib/cjs/events/NewUser.js.map +1 -1
  44. package/lib/cjs/events/UserActivated.d.ts +5 -5
  45. package/lib/cjs/events/UserActivated.js +24 -24
  46. package/lib/cjs/events/UserActivated.js.map +1 -1
  47. package/lib/cjs/events/UserBanned.d.ts +6 -6
  48. package/lib/cjs/events/UserBanned.js +25 -25
  49. package/lib/cjs/events/UserBanned.js.map +1 -1
  50. package/lib/cjs/events/UserDeactivated.d.ts +5 -5
  51. package/lib/cjs/events/UserDeactivated.js +24 -24
  52. package/lib/cjs/events/UserDeactivated.js.map +1 -1
  53. package/lib/cjs/events/UserDeleted.d.ts +5 -5
  54. package/lib/cjs/events/UserDeleted.js +24 -24
  55. package/lib/cjs/events/UserDeleted.js.map +1 -1
  56. package/lib/cjs/events/UserMetadataAdded.d.ts +5 -5
  57. package/lib/cjs/events/UserMetadataAdded.js +24 -24
  58. package/lib/cjs/events/UserMetadataAdded.js.map +1 -1
  59. package/lib/cjs/events/UserMetadataChanged.d.ts +5 -5
  60. package/lib/cjs/events/UserMetadataChanged.js +24 -24
  61. package/lib/cjs/events/UserMetadataChanged.js.map +1 -1
  62. package/lib/cjs/events/UserMetadataDeleted.d.ts +5 -5
  63. package/lib/cjs/events/UserMetadataDeleted.js +24 -24
  64. package/lib/cjs/events/UserMetadataDeleted.js.map +1 -1
  65. package/lib/cjs/events/UserPasswordChanged.d.ts +5 -5
  66. package/lib/cjs/events/UserPasswordChanged.js +24 -24
  67. package/lib/cjs/events/UserPasswordChanged.js.map +1 -1
  68. package/lib/cjs/events/UserPropertyChanged.d.ts +7 -7
  69. package/lib/cjs/events/UserPropertyChanged.js +16 -16
  70. package/lib/cjs/events/UserPropertyChanged.js.map +1 -1
  71. package/lib/cjs/events/UserRoleGranted.d.ts +6 -6
  72. package/lib/cjs/events/UserRoleGranted.js +25 -25
  73. package/lib/cjs/events/UserRoleGranted.js.map +1 -1
  74. package/lib/cjs/events/UserRoleRevoked.d.ts +6 -6
  75. package/lib/cjs/events/UserRoleRevoked.js +25 -25
  76. package/lib/cjs/events/UserRoleRevoked.js.map +1 -1
  77. package/lib/cjs/events/UserUnbanned.d.ts +5 -5
  78. package/lib/cjs/events/UserUnbanned.js +24 -24
  79. package/lib/cjs/events/UserUnbanned.js.map +1 -1
  80. package/lib/cjs/events/index.d.ts +13 -13
  81. package/lib/cjs/events/index.js +29 -29
  82. package/lib/cjs/index.d.ts +20 -20
  83. package/lib/cjs/index.js +85 -85
  84. package/lib/cjs/index.js.map +1 -1
  85. package/lib/cjs/interfaces.d.ts +259 -259
  86. package/lib/cjs/interfaces.js +45 -45
  87. package/lib/cjs/interfaces.js.map +1 -1
  88. package/lib/cjs/jobs/UnbanUser.d.ts +9 -9
  89. package/lib/cjs/jobs/UnbanUser.js +43 -43
  90. package/lib/cjs/jobs/UnbanUser.js.map +1 -1
  91. package/lib/cjs/middleware.d.ts +5 -5
  92. package/lib/cjs/middleware.js +24 -24
  93. package/lib/cjs/middleware.js.map +1 -1
  94. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
  95. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +56 -56
  96. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  97. package/lib/cjs/models/User.d.ts +96 -96
  98. package/lib/cjs/models/User.js +229 -229
  99. package/lib/cjs/models/User.js.map +1 -1
  100. package/lib/cjs/models/UserMetadata.d.ts +9 -9
  101. package/lib/cjs/models/UserMetadata.js +32 -32
  102. package/lib/cjs/models/UserMetadata.js.map +1 -1
  103. package/lib/cjs/models/UserTimeline.d.ts +28 -28
  104. package/lib/cjs/models/UserTimeline.js +46 -46
  105. package/lib/cjs/models/UserTimeline.js.map +1 -1
  106. package/lib/cjs/password.d.ts +25 -25
  107. package/lib/cjs/password.js +91 -91
  108. package/lib/cjs/password.js.map +1 -1
  109. package/lib/cjs/session.d.ts +33 -33
  110. package/lib/cjs/session.js +100 -100
  111. package/lib/cjs/session.js.map +1 -1
  112. package/lib/mjs/auth.d.ts +15 -15
  113. package/lib/mjs/auth.js +100 -100
  114. package/lib/mjs/auth.js.map +1 -1
  115. package/lib/mjs/cli/ActivateUser.d.ts +8 -8
  116. package/lib/mjs/cli/ActivateUser.js +44 -44
  117. package/lib/mjs/cli/ActivateUser.js.map +1 -1
  118. package/lib/mjs/cli/BanUser.d.ts +8 -8
  119. package/lib/mjs/cli/BanUser.js +60 -60
  120. package/lib/mjs/cli/BanUser.js.map +1 -1
  121. package/lib/mjs/cli/ChangeUserPassword.d.ts +11 -11
  122. package/lib/mjs/cli/ChangeUserPassword.js +55 -55
  123. package/lib/mjs/cli/ChangeUserPassword.js.map +1 -1
  124. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
  125. package/lib/mjs/cli/ClearUserTimelineSchedule.js +51 -51
  126. package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +1 -1
  127. package/lib/mjs/cli/CreateUser.d.ts +17 -17
  128. package/lib/mjs/cli/CreateUser.js +66 -66
  129. package/lib/mjs/cli/CreateUser.js.map +1 -1
  130. package/lib/mjs/cli/DeleteUser.d.ts +8 -8
  131. package/lib/mjs/cli/DeleteUser.js +37 -37
  132. package/lib/mjs/cli/DeleteUser.js.map +1 -1
  133. package/lib/mjs/cli/FindUser.d.ts +12 -12
  134. package/lib/mjs/cli/FindUser.js +41 -41
  135. package/lib/mjs/cli/FindUser.js.map +1 -1
  136. package/lib/mjs/cli/GrantUserRole.d.ts +8 -8
  137. package/lib/mjs/cli/GrantUserRole.js +41 -41
  138. package/lib/mjs/cli/GrantUserRole.js.map +1 -1
  139. package/lib/mjs/cli/LatestUserEvents.d.ts +6 -6
  140. package/lib/mjs/cli/LatestUserEvents.js +34 -34
  141. package/lib/mjs/cli/LatestUserEvents.js.map +1 -1
  142. package/lib/mjs/cli/RevokeUserRole.d.ts +8 -8
  143. package/lib/mjs/cli/RevokeUserRole.js +40 -40
  144. package/lib/mjs/cli/RevokeUserRole.js.map +1 -1
  145. package/lib/mjs/cli/UnbanUserSchedule.d.ts +8 -8
  146. package/lib/mjs/cli/UnbanUserSchedule.js +51 -51
  147. package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -1
  148. package/lib/mjs/config/rbac.d.ts +115 -115
  149. package/lib/mjs/config/rbac.js +118 -118
  150. package/lib/mjs/decorators/Resource.d.ts +8 -8
  151. package/lib/mjs/decorators/Resource.js +13 -13
  152. package/lib/mjs/events/NewUser.d.ts +12 -12
  153. package/lib/mjs/events/NewUser.js +13 -13
  154. package/lib/mjs/events/NewUser.js.map +1 -1
  155. package/lib/mjs/events/UserActivated.d.ts +5 -5
  156. package/lib/mjs/events/UserActivated.js +21 -21
  157. package/lib/mjs/events/UserActivated.js.map +1 -1
  158. package/lib/mjs/events/UserBanned.d.ts +6 -6
  159. package/lib/mjs/events/UserBanned.js +22 -22
  160. package/lib/mjs/events/UserBanned.js.map +1 -1
  161. package/lib/mjs/events/UserDeactivated.d.ts +5 -5
  162. package/lib/mjs/events/UserDeactivated.js +21 -21
  163. package/lib/mjs/events/UserDeactivated.js.map +1 -1
  164. package/lib/mjs/events/UserDeleted.d.ts +5 -5
  165. package/lib/mjs/events/UserDeleted.js +21 -21
  166. package/lib/mjs/events/UserDeleted.js.map +1 -1
  167. package/lib/mjs/events/UserMetadataAdded.d.ts +5 -5
  168. package/lib/mjs/events/UserMetadataAdded.js +21 -21
  169. package/lib/mjs/events/UserMetadataAdded.js.map +1 -1
  170. package/lib/mjs/events/UserMetadataChanged.d.ts +5 -5
  171. package/lib/mjs/events/UserMetadataChanged.js +21 -21
  172. package/lib/mjs/events/UserMetadataChanged.js.map +1 -1
  173. package/lib/mjs/events/UserMetadataDeleted.d.ts +5 -5
  174. package/lib/mjs/events/UserMetadataDeleted.js +21 -21
  175. package/lib/mjs/events/UserMetadataDeleted.js.map +1 -1
  176. package/lib/mjs/events/UserPasswordChanged.d.ts +5 -5
  177. package/lib/mjs/events/UserPasswordChanged.js +21 -21
  178. package/lib/mjs/events/UserPasswordChanged.js.map +1 -1
  179. package/lib/mjs/events/UserPropertyChanged.d.ts +7 -7
  180. package/lib/mjs/events/UserPropertyChanged.js +13 -13
  181. package/lib/mjs/events/UserPropertyChanged.js.map +1 -1
  182. package/lib/mjs/events/UserRoleGranted.d.ts +6 -6
  183. package/lib/mjs/events/UserRoleGranted.js +22 -22
  184. package/lib/mjs/events/UserRoleGranted.js.map +1 -1
  185. package/lib/mjs/events/UserRoleRevoked.d.ts +6 -6
  186. package/lib/mjs/events/UserRoleRevoked.js +22 -22
  187. package/lib/mjs/events/UserRoleRevoked.js.map +1 -1
  188. package/lib/mjs/events/UserUnbanned.d.ts +5 -5
  189. package/lib/mjs/events/UserUnbanned.js +21 -21
  190. package/lib/mjs/events/UserUnbanned.js.map +1 -1
  191. package/lib/mjs/events/index.d.ts +13 -13
  192. package/lib/mjs/events/index.js +13 -13
  193. package/lib/mjs/index.d.ts +20 -20
  194. package/lib/mjs/index.js +64 -64
  195. package/lib/mjs/index.js.map +1 -1
  196. package/lib/mjs/interfaces.d.ts +259 -259
  197. package/lib/mjs/interfaces.js +37 -37
  198. package/lib/mjs/interfaces.js.map +1 -1
  199. package/lib/mjs/jobs/UnbanUser.d.ts +9 -9
  200. package/lib/mjs/jobs/UnbanUser.js +40 -40
  201. package/lib/mjs/jobs/UnbanUser.js.map +1 -1
  202. package/lib/mjs/middleware.d.ts +5 -5
  203. package/lib/mjs/middleware.js +21 -21
  204. package/lib/mjs/middleware.js.map +1 -1
  205. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
  206. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js +53 -53
  207. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  208. package/lib/mjs/models/User.d.ts +96 -96
  209. package/lib/mjs/models/User.js +225 -225
  210. package/lib/mjs/models/User.js.map +1 -1
  211. package/lib/mjs/models/UserMetadata.d.ts +9 -9
  212. package/lib/mjs/models/UserMetadata.js +29 -29
  213. package/lib/mjs/models/UserMetadata.js.map +1 -1
  214. package/lib/mjs/models/UserTimeline.d.ts +28 -28
  215. package/lib/mjs/models/UserTimeline.js +43 -43
  216. package/lib/mjs/models/UserTimeline.js.map +1 -1
  217. package/lib/mjs/password.d.ts +25 -25
  218. package/lib/mjs/password.js +65 -65
  219. package/lib/mjs/password.js.map +1 -1
  220. package/lib/mjs/session.d.ts +33 -33
  221. package/lib/mjs/session.js +94 -94
  222. package/lib/mjs/session.js.map +1 -1
  223. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  224. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  225. package/package.json +10 -10
@@ -1,230 +1,230 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.User = exports.UserQueryScopes = void 0;
13
- const luxon_1 = require("luxon");
14
- const orm_1 = require("@spinajs/orm");
15
- const di_1 = require("@spinajs/di");
16
- const UserMetadata_js_1 = require("./UserMetadata.js");
17
- const UserTimeline_js_1 = require("./UserTimeline.js");
18
- class UserMetadataRelation extends orm_1.OneToManyRelationList {
19
- /**
20
- *
21
- * Checks if metadata exists, its DB first, it will only check DB for existence
22
- *
23
- * @param key - key to find
24
- * @returns {true|false}
25
- */
26
- async exists(key) {
27
- let result = null;
28
- if (key instanceof RegExp) {
29
- result = await UserMetadata_js_1.UserMetadata.where({
30
- User: this.owner,
31
- }).andWhere('Key', 'rlike', key.source);
32
- }
33
- else {
34
- result = await UserMetadata_js_1.UserMetadata.where({
35
- User: this.owner,
36
- }).andWhere('Key', key);
37
- }
38
- return result !== null && result !== undefined;
39
- }
40
- /**
41
- *
42
- * Deletes meta from DB
43
- *
44
- * @param key - meta key do delete or regexp
45
- */
46
- async delete(key) {
47
- if (key instanceof RegExp) {
48
- await UserMetadata_js_1.UserMetadata.destroy()
49
- .where({
50
- User: this.owner, // TODO FIX THIS !!!!!!!!!!!
51
- })
52
- .andWhere('Key', 'rlike', key.source);
53
- }
54
- else {
55
- await UserMetadata_js_1.UserMetadata.destroy().where({
56
- Key: key,
57
- User: this.owner,
58
- });
59
- }
60
- // refresh meta
61
- await this.populate();
62
- }
63
- }
64
- function UserMetadataRelationFactory(model, desc, container) {
65
- const repository = container.resolve(UserMetadataRelation, [model, desc.TargetModel, desc, []]);
66
- const proxy = {
67
- set: (target, prop, value) => {
68
- // if we try to call method or prop that exists return it
69
- if (target[prop]) {
70
- return (target[prop] = value);
71
- }
72
- else {
73
- const userMeta = new UserMetadata_js_1.UserMetadata();
74
- userMeta.User.Value = model;
75
- userMeta.Key = prop;
76
- userMeta.Value = value;
77
- UserMetadata_js_1.UserMetadata.insert(userMeta, orm_1.InsertBehaviour.InsertOrUpdate);
78
- let meta = target.find((x) => x.Value === prop);
79
- if (meta) {
80
- meta.Value = value;
81
- }
82
- else {
83
- target.push(userMeta);
84
- }
85
- }
86
- return true;
87
- },
88
- get: (target, prop) => {
89
- // if we try to call method or prop that exists return it
90
- if (target[prop]) {
91
- return target[prop];
92
- }
93
- else {
94
- // check for metadata entries
95
- const found = target.find((x) => x.Key === prop);
96
- if (found) {
97
- return found.Value;
98
- }
99
- // if not found try to obtain it
100
- // or return null
101
- return UserMetadata_js_1.UserMetadata.where({
102
- User: model,
103
- Key: prop,
104
- })
105
- .first()
106
- .then((res) => {
107
- if (res) {
108
- // add to this repo for cache
109
- target.push(res);
110
- }
111
- return res;
112
- });
113
- }
114
- },
115
- };
116
- return new Proxy(repository, proxy);
117
- }
118
- class UserQueryScopes {
119
- /**
120
- *
121
- * Fetch users that are not banned, are active & email confirmed, not deleted
122
- *
123
- */
124
- isActiveUser() {
125
- return this.where({
126
- IsBanned: false,
127
- IsActive: true,
128
- DeletedAt: null,
129
- });
130
- }
131
- byEmail(email) {
132
- return this.where({
133
- Email: email,
134
- });
135
- }
136
- byLogin(email) {
137
- return this.where({
138
- Email: email,
139
- });
140
- }
141
- }
142
- exports.UserQueryScopes = UserQueryScopes;
143
- /**
144
- * Base model for users used by auth and ACL system
145
- *
146
- * To add / extend fields simply extend this model and register as default user model in ACL service
147
- */
148
- let User = class User extends orm_1.ModelBase {
149
- constructor() {
150
- super(...arguments);
151
- this._hidden = ['Password', 'Id'];
152
- }
153
- get IsGuest() {
154
- return this.Role.indexOf('guest') !== -1;
155
- }
156
- can(resource, permission) {
157
- const ac = di_1.DI.get('AccessControl');
158
- return ac.can(this.Role)[permission](resource);
159
- }
160
- /**
161
- * Shorthand for check if user can read any resource
162
- * @param resource
163
- * @returns
164
- */
165
- canReadAny(resource) {
166
- return this.can(resource, 'readAny');
167
- }
168
- canReadOwn(resource) {
169
- return this.can(resource, 'readOwn');
170
- }
171
- canUpdateAny(resource) {
172
- return this.can(resource, 'updateAny');
173
- }
174
- canUpdateOwn(resource) {
175
- return this.can(resource, 'updateOwn');
176
- }
177
- canDeleteAny(resource) {
178
- return this.can(resource, 'deleteAny');
179
- }
180
- canDeleteOwn(resource) {
181
- return this.can(resource, 'deleteOwn');
182
- }
183
- canCreateAny(resource) {
184
- return this.can(resource, 'createAny');
185
- }
186
- canCreateOwn(resource) {
187
- return this.can(resource, 'createOwn');
188
- }
189
- };
190
- User._queryScopes = new UserQueryScopes();
191
- __decorate([
192
- (0, orm_1.Primary)(),
193
- __metadata("design:type", Number)
194
- ], User.prototype, "Id", void 0);
195
- __decorate([
196
- (0, orm_1.Uuid)(),
197
- __metadata("design:type", String)
198
- ], User.prototype, "Uuid", void 0);
199
- __decorate([
200
- (0, orm_1.CreatedAt)(),
201
- __metadata("design:type", luxon_1.DateTime)
202
- ], User.prototype, "CreatedAt", void 0);
203
- __decorate([
204
- (0, orm_1.DateTime)(),
205
- __metadata("design:type", luxon_1.DateTime)
206
- ], User.prototype, "RegisteredAt", void 0);
207
- __decorate([
208
- (0, orm_1.SoftDelete)(),
209
- __metadata("design:type", luxon_1.DateTime)
210
- ], User.prototype, "DeletedAt", void 0);
211
- __decorate([
212
- (0, orm_1.DateTime)(),
213
- __metadata("design:type", luxon_1.DateTime)
214
- ], User.prototype, "LastLoginAt", void 0);
215
- __decorate([
216
- (0, orm_1.HasMany)(UserMetadata_js_1.UserMetadata, {
217
- factory: UserMetadataRelationFactory,
218
- }),
219
- __metadata("design:type", UserMetadataRelation)
220
- ], User.prototype, "Metadata", void 0);
221
- __decorate([
222
- (0, orm_1.HasMany)(UserTimeline_js_1.UserAction),
223
- __metadata("design:type", orm_1.Relation)
224
- ], User.prototype, "Actions", void 0);
225
- User = __decorate([
226
- (0, orm_1.Connection)('default'),
227
- (0, orm_1.Model)('users')
228
- ], User);
229
- exports.User = User;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.User = exports.UserQueryScopes = void 0;
13
+ const luxon_1 = require("luxon");
14
+ const orm_1 = require("@spinajs/orm");
15
+ const di_1 = require("@spinajs/di");
16
+ const UserMetadata_js_1 = require("./UserMetadata.js");
17
+ const UserTimeline_js_1 = require("./UserTimeline.js");
18
+ class UserMetadataRelation extends orm_1.OneToManyRelationList {
19
+ /**
20
+ *
21
+ * Checks if metadata exists, its DB first, it will only check DB for existence
22
+ *
23
+ * @param key - key to find
24
+ * @returns {true|false}
25
+ */
26
+ async exists(key) {
27
+ let result = null;
28
+ if (key instanceof RegExp) {
29
+ result = await UserMetadata_js_1.UserMetadata.where({
30
+ User: this.owner,
31
+ }).andWhere('Key', 'rlike', key.source);
32
+ }
33
+ else {
34
+ result = await UserMetadata_js_1.UserMetadata.where({
35
+ User: this.owner,
36
+ }).andWhere('Key', key);
37
+ }
38
+ return result !== null && result !== undefined;
39
+ }
40
+ /**
41
+ *
42
+ * Deletes meta from DB
43
+ *
44
+ * @param key - meta key do delete or regexp
45
+ */
46
+ async delete(key) {
47
+ if (key instanceof RegExp) {
48
+ await UserMetadata_js_1.UserMetadata.destroy()
49
+ .where({
50
+ User: this.owner, // TODO FIX THIS !!!!!!!!!!!
51
+ })
52
+ .andWhere('Key', 'rlike', key.source);
53
+ }
54
+ else {
55
+ await UserMetadata_js_1.UserMetadata.destroy().where({
56
+ Key: key,
57
+ User: this.owner,
58
+ });
59
+ }
60
+ // refresh meta
61
+ await this.populate();
62
+ }
63
+ }
64
+ function UserMetadataRelationFactory(model, desc, container) {
65
+ const repository = container.resolve(UserMetadataRelation, [model, desc.TargetModel, desc, []]);
66
+ const proxy = {
67
+ set: (target, prop, value) => {
68
+ // if we try to call method or prop that exists return it
69
+ if (target[prop]) {
70
+ return (target[prop] = value);
71
+ }
72
+ else {
73
+ const userMeta = new UserMetadata_js_1.UserMetadata();
74
+ userMeta.User.Value = model;
75
+ userMeta.Key = prop;
76
+ userMeta.Value = value;
77
+ UserMetadata_js_1.UserMetadata.insert(userMeta, orm_1.InsertBehaviour.InsertOrUpdate);
78
+ let meta = target.find((x) => x.Value === prop);
79
+ if (meta) {
80
+ meta.Value = value;
81
+ }
82
+ else {
83
+ target.push(userMeta);
84
+ }
85
+ }
86
+ return true;
87
+ },
88
+ get: (target, prop) => {
89
+ // if we try to call method or prop that exists return it
90
+ if (target[prop]) {
91
+ return target[prop];
92
+ }
93
+ else {
94
+ // check for metadata entries
95
+ const found = target.find((x) => x.Key === prop);
96
+ if (found) {
97
+ return found.Value;
98
+ }
99
+ // if not found try to obtain it
100
+ // or return null
101
+ return UserMetadata_js_1.UserMetadata.where({
102
+ User: model,
103
+ Key: prop,
104
+ })
105
+ .first()
106
+ .then((res) => {
107
+ if (res) {
108
+ // add to this repo for cache
109
+ target.push(res);
110
+ }
111
+ return res;
112
+ });
113
+ }
114
+ },
115
+ };
116
+ return new Proxy(repository, proxy);
117
+ }
118
+ class UserQueryScopes {
119
+ /**
120
+ *
121
+ * Fetch users that are not banned, are active & email confirmed, not deleted
122
+ *
123
+ */
124
+ isActiveUser() {
125
+ return this.where({
126
+ IsBanned: false,
127
+ IsActive: true,
128
+ DeletedAt: null,
129
+ });
130
+ }
131
+ byEmail(email) {
132
+ return this.where({
133
+ Email: email,
134
+ });
135
+ }
136
+ byLogin(email) {
137
+ return this.where({
138
+ Email: email,
139
+ });
140
+ }
141
+ }
142
+ exports.UserQueryScopes = UserQueryScopes;
143
+ /**
144
+ * Base model for users used by auth and ACL system
145
+ *
146
+ * To add / extend fields simply extend this model and register as default user model in ACL service
147
+ */
148
+ let User = class User extends orm_1.ModelBase {
149
+ constructor() {
150
+ super(...arguments);
151
+ this._hidden = ['Password', 'Id'];
152
+ }
153
+ get IsGuest() {
154
+ return this.Role.indexOf('guest') !== -1;
155
+ }
156
+ can(resource, permission) {
157
+ const ac = di_1.DI.get('AccessControl');
158
+ return ac.can(this.Role)[permission](resource);
159
+ }
160
+ /**
161
+ * Shorthand for check if user can read any resource
162
+ * @param resource
163
+ * @returns
164
+ */
165
+ canReadAny(resource) {
166
+ return this.can(resource, 'readAny');
167
+ }
168
+ canReadOwn(resource) {
169
+ return this.can(resource, 'readOwn');
170
+ }
171
+ canUpdateAny(resource) {
172
+ return this.can(resource, 'updateAny');
173
+ }
174
+ canUpdateOwn(resource) {
175
+ return this.can(resource, 'updateOwn');
176
+ }
177
+ canDeleteAny(resource) {
178
+ return this.can(resource, 'deleteAny');
179
+ }
180
+ canDeleteOwn(resource) {
181
+ return this.can(resource, 'deleteOwn');
182
+ }
183
+ canCreateAny(resource) {
184
+ return this.can(resource, 'createAny');
185
+ }
186
+ canCreateOwn(resource) {
187
+ return this.can(resource, 'createOwn');
188
+ }
189
+ };
190
+ exports.User = User;
191
+ User._queryScopes = new UserQueryScopes();
192
+ __decorate([
193
+ (0, orm_1.Primary)(),
194
+ __metadata("design:type", Number)
195
+ ], User.prototype, "Id", void 0);
196
+ __decorate([
197
+ (0, orm_1.Uuid)(),
198
+ __metadata("design:type", String)
199
+ ], User.prototype, "Uuid", void 0);
200
+ __decorate([
201
+ (0, orm_1.CreatedAt)(),
202
+ __metadata("design:type", luxon_1.DateTime)
203
+ ], User.prototype, "CreatedAt", void 0);
204
+ __decorate([
205
+ (0, orm_1.DateTime)(),
206
+ __metadata("design:type", luxon_1.DateTime)
207
+ ], User.prototype, "RegisteredAt", void 0);
208
+ __decorate([
209
+ (0, orm_1.SoftDelete)(),
210
+ __metadata("design:type", luxon_1.DateTime)
211
+ ], User.prototype, "DeletedAt", void 0);
212
+ __decorate([
213
+ (0, orm_1.DateTime)(),
214
+ __metadata("design:type", luxon_1.DateTime)
215
+ ], User.prototype, "LastLoginAt", void 0);
216
+ __decorate([
217
+ (0, orm_1.HasMany)(UserMetadata_js_1.UserMetadata, {
218
+ factory: UserMetadataRelationFactory,
219
+ }),
220
+ __metadata("design:type", UserMetadataRelation)
221
+ ], User.prototype, "Metadata", void 0);
222
+ __decorate([
223
+ (0, orm_1.HasMany)(UserTimeline_js_1.UserAction),
224
+ __metadata("design:type", orm_1.Relation)
225
+ ], User.prototype, "Actions", void 0);
226
+ exports.User = User = __decorate([
227
+ (0, orm_1.Connection)('default'),
228
+ (0, orm_1.Model)('users')
229
+ ], User);
230
230
  //# sourceMappingURL=User.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAiC;AACjC,sCAAmO;AAEnO,oCAA6C;AAC7C,uDAAiD;AACjD,uDAA+C;AAC/C,MAAM,oBAAqB,SAAQ,2BAAyC;IAC1E;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CAAC,GAAoB;QACtC,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,MAAM,GAAG,MAAM,8BAAY,CAAC,KAAK,CAAC;gBAChC,IAAI,EAAE,IAAI,CAAC,KAAK;aACjB,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;SACzC;aAAM;YACL,MAAM,GAAG,MAAM,8BAAY,CAAC,KAAK,CAAC;gBAChC,IAAI,EAAE,IAAI,CAAC,KAAK;aACjB,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACzB;QAED,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,GAAoB;QACtC,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,MAAM,8BAAY,CAAC,OAAO,EAAE;iBACzB,KAAK,CAAC;gBACL,IAAI,EAAE,IAAI,CAAC,KAAY,EAAE,4BAA4B;aACtD,CAAC;iBACD,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;SACzC;aAAM;YACL,MAAM,8BAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;gBACjC,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,IAAI,CAAC,KAAY;aACxB,CAAC,CAAC;SACJ;QAED,eAAe;QACf,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CAGF;AAED,SAAS,2BAA2B,CAAC,KAAsB,EAAE,IAAyB,EAAE,SAAqB;IAC3G,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG;QACZ,GAAG,EAAE,CAAC,MAA4B,EAAE,IAAY,EAAE,KAAU,EAAE,EAAE;YAC9D,yDAAyD;YACzD,IAAK,MAAc,CAAC,IAAI,CAAC,EAAE;gBACzB,OAAO,CAAE,MAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;aACxC;iBAAM;gBACL,MAAM,QAAQ,GAAG,IAAI,8BAAY,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,KAAa,CAAC;gBACpC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC;gBACpB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;gBAEvB,8BAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,qBAAe,CAAC,cAAc,CAAC,CAAC;gBAE9D,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;gBAEhD,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;iBACpB;qBAAM;oBACL,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACvB;aACF;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,GAAG,EAAE,CAAC,MAA4B,EAAE,IAAY,EAAE,EAAE;YAClD,yDAAyD;YACzD,IAAK,MAAc,CAAC,IAAI,CAAC,EAAE;gBACzB,OAAQ,MAAc,CAAC,IAAI,CAAC,CAAC;aAC9B;iBAAM;gBACL,6BAA6B;gBAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;gBAEjD,IAAI,KAAK,EAAE;oBACT,OAAO,KAAK,CAAC,KAAK,CAAC;iBACpB;gBAED,gCAAgC;gBAChC,iBAAiB;gBACjB,OAAO,8BAAY,CAAC,KAAK,CAAC;oBACxB,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,IAAI;iBACV,CAAC;qBACC,KAAK,EAAE;qBACP,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBACZ,IAAI,GAAG,EAAE;wBACP,6BAA6B;wBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBAClB;oBACD,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC,CAAC;aACN;QACH,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAa,eAAe;IAC1B;;;;OAIG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAEM,OAAO,CAAsD,KAAa;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAEM,OAAO,CAAsD,KAAa;QAC/E,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;CACF;AAzBD,0CAyBC;AAED;;;;GAIG;AAGI,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,eAAS;IAA5B;;QACK,YAAO,GAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IA8GnD,CAAC;IA5CC,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,GAAG,CAAC,QAAgB,EAAE,UAAkB;QAC7C,MAAM,EAAE,GAAG,OAAE,CAAC,GAAG,CAAgB,eAAe,CAAC,CAAC;QAClD,OAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IACM,UAAU,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;;AA3GsB,iBAAY,GAAoB,IAAI,eAAe,EAAE,CAAC;AAE7E;IAAC,IAAA,aAAO,GAAE;;gCACQ;AAElB;IAAC,IAAA,UAAI,GAAE;;kCACa;AAsBpB;IAAC,IAAA,eAAS,GAAE;8BACM,gBAAQ;uCAAC;AAK3B;IAAC,IAAA,cAAE,GAAE;8BACgB,gBAAQ;0CAAC;AAK9B;IAAC,IAAA,gBAAU,GAAE;8BACK,gBAAQ;uCAAC;AAE3B;IAAC,IAAA,cAAE,GAAE;8BACe,gBAAQ;yCAAC;AAY7B;IAAC,IAAA,aAAO,EAAC,8BAAY,EAAE;QACrB,OAAO,EAAE,2BAA2B;KACrC,CAAC;8BACe,oBAAoB;sCAAC;AAEtC;IAAC,IAAA,aAAO,EAAC,4BAAU,CAAC;8BACJ,cAAQ;qCAAmB;AAjEhC,IAAI;IAFhB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,OAAO,CAAC;GACF,IAAI,CA+GhB;AA/GY,oBAAI"}
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { ModelBase, SingleRelation } from '@spinajs/orm';
2
- import type { User } from './User.js';
3
- export declare class UserMetadata extends ModelBase {
4
- Id: number;
5
- Key: string;
6
- Type: 'number' | 'float' | 'string' | 'json' | 'boolean' | 'datetime';
7
- Value: any;
8
- User: SingleRelation<User>;
9
- }
1
+ import { ModelBase, SingleRelation } from '@spinajs/orm';
2
+ import type { User } from './User.js';
3
+ export declare class UserMetadata extends ModelBase {
4
+ Id: number;
5
+ Key: string;
6
+ Type: 'number' | 'float' | 'string' | 'json' | 'boolean' | 'datetime';
7
+ Value: any;
8
+ User: SingleRelation<User>;
9
+ }
10
10
  //# sourceMappingURL=UserMetadata.d.ts.map
@@ -1,33 +1,33 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UserMetadata = void 0;
13
- const orm_1 = require("@spinajs/orm");
14
- let UserMetadata = class UserMetadata extends orm_1.ModelBase {
15
- };
16
- __decorate([
17
- (0, orm_1.Primary)(),
18
- __metadata("design:type", Number)
19
- ], UserMetadata.prototype, "Id", void 0);
20
- __decorate([
21
- (0, orm_1.UniversalConverter)('Type'),
22
- __metadata("design:type", Object)
23
- ], UserMetadata.prototype, "Value", void 0);
24
- __decorate([
25
- (0, orm_1.BelongsTo)('User'),
26
- __metadata("design:type", orm_1.SingleRelation)
27
- ], UserMetadata.prototype, "User", void 0);
28
- UserMetadata = __decorate([
29
- (0, orm_1.Connection)('default'),
30
- (0, orm_1.Model)('users_metadata')
31
- ], UserMetadata);
32
- exports.UserMetadata = UserMetadata;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserMetadata = void 0;
13
+ const orm_1 = require("@spinajs/orm");
14
+ let UserMetadata = class UserMetadata extends orm_1.ModelBase {
15
+ };
16
+ exports.UserMetadata = UserMetadata;
17
+ __decorate([
18
+ (0, orm_1.Primary)(),
19
+ __metadata("design:type", Number)
20
+ ], UserMetadata.prototype, "Id", void 0);
21
+ __decorate([
22
+ (0, orm_1.UniversalConverter)('Type'),
23
+ __metadata("design:type", Object)
24
+ ], UserMetadata.prototype, "Value", void 0);
25
+ __decorate([
26
+ (0, orm_1.BelongsTo)('User'),
27
+ __metadata("design:type", orm_1.SingleRelation)
28
+ ], UserMetadata.prototype, "User", void 0);
29
+ exports.UserMetadata = UserMetadata = __decorate([
30
+ (0, orm_1.Connection)('default'),
31
+ (0, orm_1.Model)('users_metadata')
32
+ ], UserMetadata);
33
33
  //# sourceMappingURL=UserMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../../src/models/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAoH;AAM7G,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,eAAS;CAa1C,CAAA;AAZC;IAAC,IAAA,aAAO,GAAE;;wCACQ;AAMlB;IAAC,IAAA,wBAAkB,EAAC,MAAM,CAAC;;2CACT;AAElB;IAAC,IAAA,eAAS,EAAC,MAAM,CAAC;8BACL,oBAAc;0CAAO;AAZvB,YAAY;IAFxB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,gBAAgB,CAAC;GACX,YAAY,CAaxB;AAbY,oCAAY"}
1
+ {"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../../src/models/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAoH;AAM7G,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,eAAS;CAa1C,CAAA;AAbY,oCAAY;AAEhB;IADN,IAAA,aAAO,GAAE;;wCACQ;AAOX;IADN,IAAA,wBAAkB,EAAC,MAAM,CAAC;;2CACT;AAGX;IADN,IAAA,eAAS,EAAC,MAAM,CAAC;8BACL,oBAAc;0CAAO;uBAZvB,YAAY;IAFxB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,gBAAgB,CAAC;GACX,YAAY,CAaxB"}
@@ -1,29 +1,29 @@
1
- import { ModelBase, SingleRelation } from '@spinajs/orm';
2
- import { DateTime } from 'luxon';
3
- import type { User } from './User.js';
4
- /**
5
- * Timeline table for storing user actions / interactions
6
- * eg. login attempts, failed logins, resource deletions, alterations etc.
7
- */
8
- export declare class UserAction extends ModelBase<UserAction> {
9
- Id: number;
10
- User: SingleRelation<User>;
11
- Action: string;
12
- Data: string;
13
- /**
14
- * True if this timeline event is persistent
15
- * eg. we clear out login attempts older than 5 days
16
- * but we want to save for eg. events related to payments
17
- */
18
- Persistent: boolean;
19
- /**
20
- * If action is performed on some kind of resource
21
- * Here is stored this resource identifier or primary key in db
22
- */
23
- ResourceId: number;
24
- asNumber(): number;
25
- asFloat(): number;
26
- asJsonObject<T = {}>(): T;
27
- CreatedAt: DateTime;
28
- }
1
+ import { ModelBase, SingleRelation } from '@spinajs/orm';
2
+ import { DateTime } from 'luxon';
3
+ import type { User } from './User.js';
4
+ /**
5
+ * Timeline table for storing user actions / interactions
6
+ * eg. login attempts, failed logins, resource deletions, alterations etc.
7
+ */
8
+ export declare class UserAction extends ModelBase<UserAction> {
9
+ Id: number;
10
+ User: SingleRelation<User>;
11
+ Action: string;
12
+ Data: string;
13
+ /**
14
+ * True if this timeline event is persistent
15
+ * eg. we clear out login attempts older than 5 days
16
+ * but we want to save for eg. events related to payments
17
+ */
18
+ Persistent: boolean;
19
+ /**
20
+ * If action is performed on some kind of resource
21
+ * Here is stored this resource identifier or primary key in db
22
+ */
23
+ ResourceId: number;
24
+ asNumber(): number;
25
+ asFloat(): number;
26
+ asJsonObject<T = {}>(): T;
27
+ CreatedAt: DateTime;
28
+ }
29
29
  //# sourceMappingURL=UserTimeline.d.ts.map