@spinajs/rbac 2.0.180 → 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.
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
package/lib/cjs/auth.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- import { AuthProvider, IAuthenticationResult, PasswordProvider } from './interfaces.js';
2
- import { User } from './models/User.js';
3
- import { IContainer } from '@spinajs/di';
4
- export declare class SimpleDbAuthProvider implements AuthProvider<User> {
5
- protected Container: IContainer;
6
- protected PasswordProvider: PasswordProvider;
7
- exists(userOrEmail: User | string): Promise<boolean>;
8
- getByLogin(login: string): Promise<User>;
9
- getByEmail(email: string): Promise<User>;
10
- getByUUID(uuid: string): Promise<User>;
11
- authenticate(email: string, password: string): Promise<IAuthenticationResult<User>>;
12
- isBanned(email: string): Promise<boolean>;
13
- isActive(email: string): Promise<boolean>;
14
- isDeleted(email: string): Promise<boolean>;
15
- }
1
+ import { AuthProvider, IAuthenticationResult, PasswordProvider } from './interfaces.js';
2
+ import { User } from './models/User.js';
3
+ import { IContainer } from '@spinajs/di';
4
+ export declare class SimpleDbAuthProvider implements AuthProvider<User> {
5
+ protected Container: IContainer;
6
+ protected PasswordProvider: PasswordProvider;
7
+ exists(userOrEmail: User | string): Promise<boolean>;
8
+ getByLogin(login: string): Promise<User>;
9
+ getByEmail(email: string): Promise<User>;
10
+ getByUUID(uuid: string): Promise<User>;
11
+ authenticate(email: string, password: string): Promise<IAuthenticationResult<User>>;
12
+ isBanned(email: string): Promise<boolean>;
13
+ isActive(email: string): Promise<boolean>;
14
+ isDeleted(email: string): Promise<boolean>;
15
+ }
16
16
  //# sourceMappingURL=auth.d.ts.map
package/lib/cjs/auth.js CHANGED
@@ -1,104 +1,104 @@
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.SimpleDbAuthProvider = void 0;
13
- const interfaces_js_1 = require("./interfaces.js");
14
- const User_js_1 = require("./models/User.js");
15
- const di_1 = require("@spinajs/di");
16
- const configuration_1 = require("@spinajs/configuration");
17
- let SimpleDbAuthProvider = class SimpleDbAuthProvider {
18
- async exists(userOrEmail) {
19
- const result = await User_js_1.User.where('Email', userOrEmail instanceof User_js_1.User ? userOrEmail.Email : userOrEmail).first();
20
- if (result) {
21
- return true;
22
- }
23
- return false;
24
- }
25
- async getByLogin(login) {
26
- const result = await User_js_1.User.where('Login', login).first();
27
- return result;
28
- }
29
- async getByEmail(email) {
30
- const result = await User_js_1.User.where('Email', email).first();
31
- return result;
32
- }
33
- async getByUUID(uuid) {
34
- const result = await User_js_1.User.where('Uuid', uuid).first();
35
- return result;
36
- }
37
- async authenticate(email, password) {
38
- const result = await User_js_1.User.where({ Email: email, DeletedAt: null }).first();
39
- const eInvalidCredentials = {
40
- Error: {
41
- Code: interfaces_js_1.AthenticationErrorCodes.E_INVALID_CREDENTIALS,
42
- Message: 'Invalid user credentials, or user not exist.',
43
- },
44
- };
45
- /**
46
- * If user not exists, is deleted, or password dont match
47
- * return E_INVALID_CREDENTIALS for security reasons ( so attaker wont now if email is valid, or password don match)
48
- */
49
- if (!result) {
50
- return eInvalidCredentials;
51
- }
52
- const valid = await this.PasswordProvider.verify(result.Password, password);
53
- if (!valid) {
54
- return {
55
- User: undefined,
56
- ...eInvalidCredentials,
57
- };
58
- }
59
- if (result.IsBanned) {
60
- return {
61
- User: result,
62
- Error: {
63
- Code: interfaces_js_1.AthenticationErrorCodes.E_USER_BANNED,
64
- },
65
- };
66
- }
67
- if (result.IsActive) {
68
- return {
69
- User: result,
70
- Error: {
71
- Code: interfaces_js_1.AthenticationErrorCodes.E_USER_NOT_ACTIVE,
72
- },
73
- };
74
- }
75
- return {
76
- User: result,
77
- };
78
- }
79
- async isBanned(email) {
80
- const result = await User_js_1.User.where({ Email: email, IsBanned: true }).first();
81
- return result !== null;
82
- }
83
- async isActive(email) {
84
- const result = await User_js_1.User.where({ Email: email, IsActive: true }).first();
85
- return result !== null;
86
- }
87
- async isDeleted(email) {
88
- const result = await User_js_1.User.where('Email', email).whereNotNull('DeletedAt').first();
89
- return result !== null;
90
- }
91
- };
92
- __decorate([
93
- (0, di_1.Autoinject)(di_1.Container),
94
- __metadata("design:type", Object)
95
- ], SimpleDbAuthProvider.prototype, "Container", void 0);
96
- __decorate([
97
- (0, configuration_1.AutoinjectService)('rbac.password'),
98
- __metadata("design:type", interfaces_js_1.PasswordProvider)
99
- ], SimpleDbAuthProvider.prototype, "PasswordProvider", void 0);
100
- SimpleDbAuthProvider = __decorate([
101
- (0, di_1.Injectable)(interfaces_js_1.AuthProvider)
102
- ], SimpleDbAuthProvider);
103
- exports.SimpleDbAuthProvider = SimpleDbAuthProvider;
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.SimpleDbAuthProvider = void 0;
13
+ const interfaces_js_1 = require("./interfaces.js");
14
+ const User_js_1 = require("./models/User.js");
15
+ const di_1 = require("@spinajs/di");
16
+ const configuration_1 = require("@spinajs/configuration");
17
+ let SimpleDbAuthProvider = class SimpleDbAuthProvider {
18
+ async exists(userOrEmail) {
19
+ const result = await User_js_1.User.where('Email', userOrEmail instanceof User_js_1.User ? userOrEmail.Email : userOrEmail).first();
20
+ if (result) {
21
+ return true;
22
+ }
23
+ return false;
24
+ }
25
+ async getByLogin(login) {
26
+ const result = await User_js_1.User.where('Login', login).first();
27
+ return result;
28
+ }
29
+ async getByEmail(email) {
30
+ const result = await User_js_1.User.where('Email', email).first();
31
+ return result;
32
+ }
33
+ async getByUUID(uuid) {
34
+ const result = await User_js_1.User.where('Uuid', uuid).first();
35
+ return result;
36
+ }
37
+ async authenticate(email, password) {
38
+ const result = await User_js_1.User.where({ Email: email, DeletedAt: null }).first();
39
+ const eInvalidCredentials = {
40
+ Error: {
41
+ Code: interfaces_js_1.AthenticationErrorCodes.E_INVALID_CREDENTIALS,
42
+ Message: 'Invalid user credentials, or user not exist.',
43
+ },
44
+ };
45
+ /**
46
+ * If user not exists, is deleted, or password dont match
47
+ * return E_INVALID_CREDENTIALS for security reasons ( so attaker wont now if email is valid, or password don match)
48
+ */
49
+ if (!result) {
50
+ return eInvalidCredentials;
51
+ }
52
+ const valid = await this.PasswordProvider.verify(result.Password, password);
53
+ if (!valid) {
54
+ return {
55
+ User: undefined,
56
+ ...eInvalidCredentials,
57
+ };
58
+ }
59
+ if (result.IsBanned) {
60
+ return {
61
+ User: result,
62
+ Error: {
63
+ Code: interfaces_js_1.AthenticationErrorCodes.E_USER_BANNED,
64
+ },
65
+ };
66
+ }
67
+ if (result.IsActive) {
68
+ return {
69
+ User: result,
70
+ Error: {
71
+ Code: interfaces_js_1.AthenticationErrorCodes.E_USER_NOT_ACTIVE,
72
+ },
73
+ };
74
+ }
75
+ return {
76
+ User: result,
77
+ };
78
+ }
79
+ async isBanned(email) {
80
+ const result = await User_js_1.User.where({ Email: email, IsBanned: true }).first();
81
+ return result !== null;
82
+ }
83
+ async isActive(email) {
84
+ const result = await User_js_1.User.where({ Email: email, IsActive: true }).first();
85
+ return result !== null;
86
+ }
87
+ async isDeleted(email) {
88
+ const result = await User_js_1.User.where('Email', email).whereNotNull('DeletedAt').first();
89
+ return result !== null;
90
+ }
91
+ };
92
+ exports.SimpleDbAuthProvider = SimpleDbAuthProvider;
93
+ __decorate([
94
+ (0, di_1.Autoinject)(di_1.Container),
95
+ __metadata("design:type", Object)
96
+ ], SimpleDbAuthProvider.prototype, "Container", void 0);
97
+ __decorate([
98
+ (0, configuration_1.AutoinjectService)('rbac.password'),
99
+ __metadata("design:type", interfaces_js_1.PasswordProvider)
100
+ ], SimpleDbAuthProvider.prototype, "PasswordProvider", void 0);
101
+ exports.SimpleDbAuthProvider = SimpleDbAuthProvider = __decorate([
102
+ (0, di_1.Injectable)(interfaces_js_1.AuthProvider)
103
+ ], SimpleDbAuthProvider);
104
104
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { QueueService } from '@spinajs/Queue';
2
- import { Log } from '@spinajs/log';
3
- import { CliCommand } from '@spinajs/cli';
4
- export declare class ActivateUser extends CliCommand {
5
- protected Log: Log;
6
- protected Queue: QueueService;
7
- execute(idOrUuid: string, active: boolean): Promise<void>;
8
- }
1
+ import { QueueService } from '@spinajs/Queue';
2
+ import { Log } from '@spinajs/log';
3
+ import { CliCommand } from '@spinajs/cli';
4
+ export declare class ActivateUser extends CliCommand {
5
+ protected Log: Log;
6
+ protected Queue: QueueService;
7
+ execute(idOrUuid: string, active: boolean): Promise<void>;
8
+ }
9
9
  //# sourceMappingURL=ActivateUser.d.ts.map
@@ -1,48 +1,48 @@
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.ActivateUser = void 0;
13
- const UserDeactivated_js_1 = require("./../events/UserDeactivated.js");
14
- //import { UserBannedMessage } from './../messages/UserBanned';
15
- const Queue_1 = require("@spinajs/Queue");
16
- const log_1 = require("@spinajs/log");
17
- const cli_1 = require("@spinajs/cli");
18
- const di_1 = require("@spinajs/di");
19
- const User_js_1 = require("../models/User.js");
20
- const UserActivated_js_1 = require("../events/UserActivated.js");
21
- let ActivateUser = class ActivateUser extends cli_1.CliCommand {
22
- async execute(idOrUuid, active) {
23
- const result = await User_js_1.User.update({ IsActive: active }).where('Id', idOrUuid).orWhere('Uuid', idOrUuid);
24
- if (result.RowsAffected > 0) {
25
- const event = active ? new UserActivated_js_1.UserActivated(idOrUuid) : new UserDeactivated_js_1.UserDeactivated(idOrUuid);
26
- this.Queue.emit(event);
27
- this.Log.success(`User activation status changed to ${active}`);
28
- }
29
- else {
30
- this.Log.warn(`No user with id: ${idOrUuid} found`);
31
- }
32
- }
33
- };
34
- __decorate([
35
- (0, log_1.Logger)('rbac'),
36
- __metadata("design:type", log_1.Log)
37
- ], ActivateUser.prototype, "Log", void 0);
38
- __decorate([
39
- (0, di_1.Autoinject)(Queue_1.QueueService),
40
- __metadata("design:type", Queue_1.QueueService)
41
- ], ActivateUser.prototype, "Queue", void 0);
42
- ActivateUser = __decorate([
43
- (0, cli_1.Command)('rbac:user-activate', 'Sets active or inactive user'),
44
- (0, cli_1.Argument)('idOrUuid', 'numeric id or uuid'),
45
- (0, cli_1.Argument)('active', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false))
46
- ], ActivateUser);
47
- exports.ActivateUser = ActivateUser;
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.ActivateUser = void 0;
13
+ const UserDeactivated_js_1 = require("./../events/UserDeactivated.js");
14
+ //import { UserBannedMessage } from './../messages/UserBanned';
15
+ const Queue_1 = require("@spinajs/Queue");
16
+ const log_1 = require("@spinajs/log");
17
+ const cli_1 = require("@spinajs/cli");
18
+ const di_1 = require("@spinajs/di");
19
+ const User_js_1 = require("../models/User.js");
20
+ const UserActivated_js_1 = require("../events/UserActivated.js");
21
+ let ActivateUser = class ActivateUser extends cli_1.CliCommand {
22
+ async execute(idOrUuid, active) {
23
+ const result = await User_js_1.User.update({ IsActive: active }).where('Id', idOrUuid).orWhere('Uuid', idOrUuid);
24
+ if (result.RowsAffected > 0) {
25
+ const event = active ? new UserActivated_js_1.UserActivated(idOrUuid) : new UserDeactivated_js_1.UserDeactivated(idOrUuid);
26
+ this.Queue.emit(event);
27
+ this.Log.success(`User activation status changed to ${active}`);
28
+ }
29
+ else {
30
+ this.Log.warn(`No user with id: ${idOrUuid} found`);
31
+ }
32
+ }
33
+ };
34
+ exports.ActivateUser = ActivateUser;
35
+ __decorate([
36
+ (0, log_1.Logger)('rbac'),
37
+ __metadata("design:type", log_1.Log)
38
+ ], ActivateUser.prototype, "Log", void 0);
39
+ __decorate([
40
+ (0, di_1.Autoinject)(Queue_1.QueueService),
41
+ __metadata("design:type", Queue_1.QueueService)
42
+ ], ActivateUser.prototype, "Queue", void 0);
43
+ exports.ActivateUser = ActivateUser = __decorate([
44
+ (0, cli_1.Command)('rbac:user-activate', 'Sets active or inactive user'),
45
+ (0, cli_1.Argument)('idOrUuid', 'numeric id or uuid'),
46
+ (0, cli_1.Argument)('active', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false))
47
+ ], ActivateUser);
48
48
  //# sourceMappingURL=ActivateUser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAiE;AACjE,+DAA+D;AAC/D,0CAA8C;AAC9C,sCAA2C;AAC3C,sCAA6D;AAC7D,oCAAyC;AACzC,+CAAyC;AACzC,iEAA2D;AAKpD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,gBAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,MAAM,cAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvG,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gCAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,oCAAe,CAAC,QAAQ,CAAC,CAAC;YAEnF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;SACjE;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;AAnBC;IAAC,IAAA,YAAM,EAAC,MAAM,CAAC;8BACA,SAAG;yCAAC;AAEnB;IAAC,IAAA,eAAU,EAAC,oBAAY,CAAC;8BACR,oBAAY;2CAAC;AALnB,YAAY;IAHxB,IAAA,aAAO,EAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC7D,IAAA,cAAQ,EAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,IAAA,cAAQ,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GAC9F,YAAY,CAoBxB;AApBY,oCAAY"}
1
+ {"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAiE;AACjE,+DAA+D;AAC/D,0CAA8C;AAC9C,sCAA2C;AAC3C,sCAA6D;AAC7D,oCAAyC;AACzC,+CAAyC;AACzC,iEAA2D;AAKpD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,gBAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,MAAM,cAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvG,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gCAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,oCAAe,CAAC,QAAQ,CAAC,CAAC;YAEnF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;SACjE;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;AApBY,oCAAY;AAEb;IADT,IAAA,YAAM,EAAC,MAAM,CAAC;8BACA,SAAG;yCAAC;AAGT;IADT,IAAA,eAAU,EAAC,oBAAY,CAAC;8BACR,oBAAY;2CAAC;uBALnB,YAAY;IAHxB,IAAA,aAAO,EAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC7D,IAAA,cAAQ,EAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,IAAA,cAAQ,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GAC9F,YAAY,CAoBxB"}
@@ -1,9 +1,9 @@
1
- import { QueueService } from '@spinajs/Queue';
2
- import { Log } from '@spinajs/log';
3
- import { CliCommand } from '@spinajs/cli';
4
- export declare class BanUser extends CliCommand {
5
- protected Log: Log;
6
- protected Queue: QueueService;
7
- execute(idOrUuid: string, ban: boolean, duration: number): Promise<void>;
8
- }
1
+ import { QueueService } from '@spinajs/Queue';
2
+ import { Log } from '@spinajs/log';
3
+ import { CliCommand } from '@spinajs/cli';
4
+ export declare class BanUser extends CliCommand {
5
+ protected Log: Log;
6
+ protected Queue: QueueService;
7
+ execute(idOrUuid: string, ban: boolean, duration: number): Promise<void>;
8
+ }
9
9
  //# sourceMappingURL=BanUser.d.ts.map
@@ -1,64 +1,64 @@
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.BanUser = void 0;
13
- const UserUnbanned_js_1 = require("./../events/UserUnbanned.js");
14
- const Queue_1 = require("@spinajs/Queue");
15
- const log_1 = require("@spinajs/log");
16
- const cli_1 = require("@spinajs/cli");
17
- const di_1 = require("@spinajs/di");
18
- const User_js_1 = require("../models/User.js");
19
- const UserBanned_js_1 = require("../events/UserBanned.js");
20
- const UserMetadata_js_1 = require("../models/UserMetadata.js");
21
- const UnbanUser_js_1 = require("../jobs/UnbanUser.js");
22
- const luxon_1 = require("luxon");
23
- let BanUser = class BanUser extends cli_1.CliCommand {
24
- async execute(idOrUuid, ban, duration) {
25
- const user = await User_js_1.User.where('Id', idOrUuid).orWhere('Uuid', idOrUuid).firstOrThrow(new Error('User not found'));
26
- user.IsBanned = ban;
27
- await user.update();
28
- if (ban) {
29
- await (user.Metadata['ban:duration'] = duration);
30
- await (user.Metadata['ban:issued'] = luxon_1.DateTime.now().toISO());
31
- this.Queue.emit(new UserBanned_js_1.UserBanned(idOrUuid, duration));
32
- if (duration !== 0) {
33
- // schedule job with delay equals ban duration
34
- // to automattically unban user after this time
35
- const job = new UnbanUser_js_1.UnbanUser(idOrUuid);
36
- job.ScheduleDelay = duration * 60 * 1000;
37
- this.Queue.emit(job);
38
- }
39
- this.Log.success(`User ban status changed to ${ban}`);
40
- }
41
- else {
42
- // cleanup meta
43
- await UserMetadata_js_1.UserMetadata.destroy().where('Key', 'like', 'user:ban:%').andWhere('User', user);
44
- this.Queue.emit(new UserUnbanned_js_1.UserUnbanned(idOrUuid));
45
- this.Log.warn(`No user with id: ${idOrUuid} found`);
46
- }
47
- }
48
- };
49
- __decorate([
50
- (0, log_1.Logger)('rbac'),
51
- __metadata("design:type", log_1.Log)
52
- ], BanUser.prototype, "Log", void 0);
53
- __decorate([
54
- (0, di_1.Autoinject)(Queue_1.QueueService),
55
- __metadata("design:type", Queue_1.QueueService)
56
- ], BanUser.prototype, "Queue", void 0);
57
- BanUser = __decorate([
58
- (0, cli_1.Command)('rbac:user-ban', 'Sets active or inactive user'),
59
- (0, cli_1.Argument)('idOrUuid', 'numeric id or uuid'),
60
- (0, cli_1.Argument)('ban', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false)),
61
- (0, cli_1.Argument)('duration', 'how long should ban last ( in minutes )', 24 * 60, (opt) => parseInt(opt))
62
- ], BanUser);
63
- exports.BanUser = BanUser;
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.BanUser = void 0;
13
+ const UserUnbanned_js_1 = require("./../events/UserUnbanned.js");
14
+ const Queue_1 = require("@spinajs/Queue");
15
+ const log_1 = require("@spinajs/log");
16
+ const cli_1 = require("@spinajs/cli");
17
+ const di_1 = require("@spinajs/di");
18
+ const User_js_1 = require("../models/User.js");
19
+ const UserBanned_js_1 = require("../events/UserBanned.js");
20
+ const UserMetadata_js_1 = require("../models/UserMetadata.js");
21
+ const UnbanUser_js_1 = require("../jobs/UnbanUser.js");
22
+ const luxon_1 = require("luxon");
23
+ let BanUser = class BanUser extends cli_1.CliCommand {
24
+ async execute(idOrUuid, ban, duration) {
25
+ const user = await User_js_1.User.where('Id', idOrUuid).orWhere('Uuid', idOrUuid).firstOrThrow(new Error('User not found'));
26
+ user.IsBanned = ban;
27
+ await user.update();
28
+ if (ban) {
29
+ await (user.Metadata['ban:duration'] = duration);
30
+ await (user.Metadata['ban:issued'] = luxon_1.DateTime.now().toISO());
31
+ this.Queue.emit(new UserBanned_js_1.UserBanned(idOrUuid, duration));
32
+ if (duration !== 0) {
33
+ // schedule job with delay equals ban duration
34
+ // to automattically unban user after this time
35
+ const job = new UnbanUser_js_1.UnbanUser(idOrUuid);
36
+ job.ScheduleDelay = duration * 60 * 1000;
37
+ this.Queue.emit(job);
38
+ }
39
+ this.Log.success(`User ban status changed to ${ban}`);
40
+ }
41
+ else {
42
+ // cleanup meta
43
+ await UserMetadata_js_1.UserMetadata.destroy().where('Key', 'like', 'user:ban:%').andWhere('User', user);
44
+ this.Queue.emit(new UserUnbanned_js_1.UserUnbanned(idOrUuid));
45
+ this.Log.warn(`No user with id: ${idOrUuid} found`);
46
+ }
47
+ }
48
+ };
49
+ exports.BanUser = BanUser;
50
+ __decorate([
51
+ (0, log_1.Logger)('rbac'),
52
+ __metadata("design:type", log_1.Log)
53
+ ], BanUser.prototype, "Log", void 0);
54
+ __decorate([
55
+ (0, di_1.Autoinject)(Queue_1.QueueService),
56
+ __metadata("design:type", Queue_1.QueueService)
57
+ ], BanUser.prototype, "Queue", void 0);
58
+ exports.BanUser = BanUser = __decorate([
59
+ (0, cli_1.Command)('rbac:user-ban', 'Sets active or inactive user'),
60
+ (0, cli_1.Argument)('idOrUuid', 'numeric id or uuid'),
61
+ (0, cli_1.Argument)('ban', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false)),
62
+ (0, cli_1.Argument)('duration', 'how long should ban last ( in minutes )', 24 * 60, (opt) => parseInt(opt))
63
+ ], BanUser);
64
64
  //# sourceMappingURL=BanUser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BanUser.js","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA2D;AAC3D,0CAA8C;AAC9C,sCAA2C;AAC3C,sCAA6D;AAC7D,oCAAyC;AACzC,+CAAyC;AACzC,2DAAqD;AACrD,+DAAyD;AACzD,uDAAiD;AACjD,iCAAiC;AAM1B,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,gBAAU;IAO9B,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,GAAY,EAAE,QAAgB;QACnE,MAAM,IAAI,GAAG,MAAM,cAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,IAAI,GAAG,EAAE;YACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAE7D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,0BAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEpD,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,8CAA8C;gBAC9C,+CAA+C;gBAC/C,MAAM,GAAG,GAAG,IAAI,wBAAS,CAAC,QAAQ,CAAC,CAAC;gBACpC,GAAG,CAAC,aAAa,GAAG,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;gBAEzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACtB;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;SACvD;aAAM;YACL,eAAe;YACf,MAAM,8BAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8BAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;AApCC;IAAC,IAAA,YAAM,EAAC,MAAM,CAAC;8BACA,SAAG;oCAAC;AAEnB;IAAC,IAAA,eAAU,EAAC,oBAAY,CAAC;8BACR,oBAAY;sCAAC;AALnB,OAAO;IAJnB,IAAA,aAAO,EAAC,eAAe,EAAE,8BAA8B,CAAC;IACxD,IAAA,cAAQ,EAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,IAAA,cAAQ,EAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvG,IAAA,cAAQ,EAAC,UAAU,EAAE,yCAAyC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;GAC5F,OAAO,CAqCnB;AArCY,0BAAO"}
1
+ {"version":3,"file":"BanUser.js","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA2D;AAC3D,0CAA8C;AAC9C,sCAA2C;AAC3C,sCAA6D;AAC7D,oCAAyC;AACzC,+CAAyC;AACzC,2DAAqD;AACrD,+DAAyD;AACzD,uDAAiD;AACjD,iCAAiC;AAM1B,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,gBAAU;IAO9B,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,GAAY,EAAE,QAAgB;QACnE,MAAM,IAAI,GAAG,MAAM,cAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,IAAI,GAAG,EAAE;YACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAE7D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,0BAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEpD,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,8CAA8C;gBAC9C,+CAA+C;gBAC/C,MAAM,GAAG,GAAG,IAAI,wBAAS,CAAC,QAAQ,CAAC,CAAC;gBACpC,GAAG,CAAC,aAAa,GAAG,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;gBAEzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACtB;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;SACvD;aAAM;YACL,eAAe;YACf,MAAM,8BAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8BAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;AArCY,0BAAO;AAER;IADT,IAAA,YAAM,EAAC,MAAM,CAAC;8BACA,SAAG;oCAAC;AAGT;IADT,IAAA,eAAU,EAAC,oBAAY,CAAC;8BACR,oBAAY;sCAAC;kBALnB,OAAO;IAJnB,IAAA,aAAO,EAAC,eAAe,EAAE,8BAA8B,CAAC;IACxD,IAAA,cAAQ,EAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,IAAA,cAAQ,EAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvG,IAAA,cAAQ,EAAC,UAAU,EAAE,yCAAyC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;GAC5F,OAAO,CAqCnB"}
@@ -1,12 +1,12 @@
1
- import { QueueService } from '@spinajs/Queue';
2
- import { Log } from '@spinajs/log';
3
- import { CliCommand } from '@spinajs/cli';
4
- import { PasswordProvider, PasswordValidationProvider } from '../interfaces.js';
5
- export declare class ChangeUserPassword extends CliCommand {
6
- protected Log: Log;
7
- protected Queue: QueueService;
8
- protected PasswordProvider: PasswordProvider;
9
- protected PasswordValidation: PasswordValidationProvider;
10
- execute(idOrUuid: string, newPassword: string): Promise<void>;
11
- }
1
+ import { QueueService } from '@spinajs/Queue';
2
+ import { Log } from '@spinajs/log';
3
+ import { CliCommand } from '@spinajs/cli';
4
+ import { PasswordProvider, PasswordValidationProvider } from '../interfaces.js';
5
+ export declare class ChangeUserPassword extends CliCommand {
6
+ protected Log: Log;
7
+ protected Queue: QueueService;
8
+ protected PasswordProvider: PasswordProvider;
9
+ protected PasswordValidation: PasswordValidationProvider;
10
+ execute(idOrUuid: string, newPassword: string): Promise<void>;
11
+ }
12
12
  //# sourceMappingURL=ChangeUserPassword.d.ts.map