@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
package/lib/mjs/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/mjs/auth.js CHANGED
@@ -1,101 +1,101 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { AthenticationErrorCodes, AuthProvider, PasswordProvider } from './interfaces.js';
11
- import { User } from './models/User.js';
12
- import { Autoinject, Container, Injectable } from '@spinajs/di';
13
- import { AutoinjectService } from '@spinajs/configuration';
14
- let SimpleDbAuthProvider = class SimpleDbAuthProvider {
15
- async exists(userOrEmail) {
16
- const result = await User.where('Email', userOrEmail instanceof User ? userOrEmail.Email : userOrEmail).first();
17
- if (result) {
18
- return true;
19
- }
20
- return false;
21
- }
22
- async getByLogin(login) {
23
- const result = await User.where('Login', login).first();
24
- return result;
25
- }
26
- async getByEmail(email) {
27
- const result = await User.where('Email', email).first();
28
- return result;
29
- }
30
- async getByUUID(uuid) {
31
- const result = await User.where('Uuid', uuid).first();
32
- return result;
33
- }
34
- async authenticate(email, password) {
35
- const result = await User.where({ Email: email, DeletedAt: null }).first();
36
- const eInvalidCredentials = {
37
- Error: {
38
- Code: AthenticationErrorCodes.E_INVALID_CREDENTIALS,
39
- Message: 'Invalid user credentials, or user not exist.',
40
- },
41
- };
42
- /**
43
- * If user not exists, is deleted, or password dont match
44
- * return E_INVALID_CREDENTIALS for security reasons ( so attaker wont now if email is valid, or password don match)
45
- */
46
- if (!result) {
47
- return eInvalidCredentials;
48
- }
49
- const valid = await this.PasswordProvider.verify(result.Password, password);
50
- if (!valid) {
51
- return {
52
- User: undefined,
53
- ...eInvalidCredentials,
54
- };
55
- }
56
- if (result.IsBanned) {
57
- return {
58
- User: result,
59
- Error: {
60
- Code: AthenticationErrorCodes.E_USER_BANNED,
61
- },
62
- };
63
- }
64
- if (result.IsActive) {
65
- return {
66
- User: result,
67
- Error: {
68
- Code: AthenticationErrorCodes.E_USER_NOT_ACTIVE,
69
- },
70
- };
71
- }
72
- return {
73
- User: result,
74
- };
75
- }
76
- async isBanned(email) {
77
- const result = await User.where({ Email: email, IsBanned: true }).first();
78
- return result !== null;
79
- }
80
- async isActive(email) {
81
- const result = await User.where({ Email: email, IsActive: true }).first();
82
- return result !== null;
83
- }
84
- async isDeleted(email) {
85
- const result = await User.where('Email', email).whereNotNull('DeletedAt').first();
86
- return result !== null;
87
- }
88
- };
89
- __decorate([
90
- Autoinject(Container),
91
- __metadata("design:type", Object)
92
- ], SimpleDbAuthProvider.prototype, "Container", void 0);
93
- __decorate([
94
- AutoinjectService('rbac.password'),
95
- __metadata("design:type", PasswordProvider)
96
- ], SimpleDbAuthProvider.prototype, "PasswordProvider", void 0);
97
- SimpleDbAuthProvider = __decorate([
98
- Injectable(AuthProvider)
99
- ], SimpleDbAuthProvider);
100
- export { SimpleDbAuthProvider };
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { AthenticationErrorCodes, AuthProvider, PasswordProvider } from './interfaces.js';
11
+ import { User } from './models/User.js';
12
+ import { Autoinject, Container, Injectable } from '@spinajs/di';
13
+ import { AutoinjectService } from '@spinajs/configuration';
14
+ let SimpleDbAuthProvider = class SimpleDbAuthProvider {
15
+ async exists(userOrEmail) {
16
+ const result = await User.where('Email', userOrEmail instanceof User ? userOrEmail.Email : userOrEmail).first();
17
+ if (result) {
18
+ return true;
19
+ }
20
+ return false;
21
+ }
22
+ async getByLogin(login) {
23
+ const result = await User.where('Login', login).first();
24
+ return result;
25
+ }
26
+ async getByEmail(email) {
27
+ const result = await User.where('Email', email).first();
28
+ return result;
29
+ }
30
+ async getByUUID(uuid) {
31
+ const result = await User.where('Uuid', uuid).first();
32
+ return result;
33
+ }
34
+ async authenticate(email, password) {
35
+ const result = await User.where({ Email: email, DeletedAt: null }).first();
36
+ const eInvalidCredentials = {
37
+ Error: {
38
+ Code: AthenticationErrorCodes.E_INVALID_CREDENTIALS,
39
+ Message: 'Invalid user credentials, or user not exist.',
40
+ },
41
+ };
42
+ /**
43
+ * If user not exists, is deleted, or password dont match
44
+ * return E_INVALID_CREDENTIALS for security reasons ( so attaker wont now if email is valid, or password don match)
45
+ */
46
+ if (!result) {
47
+ return eInvalidCredentials;
48
+ }
49
+ const valid = await this.PasswordProvider.verify(result.Password, password);
50
+ if (!valid) {
51
+ return {
52
+ User: undefined,
53
+ ...eInvalidCredentials,
54
+ };
55
+ }
56
+ if (result.IsBanned) {
57
+ return {
58
+ User: result,
59
+ Error: {
60
+ Code: AthenticationErrorCodes.E_USER_BANNED,
61
+ },
62
+ };
63
+ }
64
+ if (result.IsActive) {
65
+ return {
66
+ User: result,
67
+ Error: {
68
+ Code: AthenticationErrorCodes.E_USER_NOT_ACTIVE,
69
+ },
70
+ };
71
+ }
72
+ return {
73
+ User: result,
74
+ };
75
+ }
76
+ async isBanned(email) {
77
+ const result = await User.where({ Email: email, IsBanned: true }).first();
78
+ return result !== null;
79
+ }
80
+ async isActive(email) {
81
+ const result = await User.where({ Email: email, IsActive: true }).first();
82
+ return result !== null;
83
+ }
84
+ async isDeleted(email) {
85
+ const result = await User.where('Email', email).whereNotNull('DeletedAt').first();
86
+ return result !== null;
87
+ }
88
+ };
89
+ __decorate([
90
+ Autoinject(Container),
91
+ __metadata("design:type", Object)
92
+ ], SimpleDbAuthProvider.prototype, "Container", void 0);
93
+ __decorate([
94
+ AutoinjectService('rbac.password'),
95
+ __metadata("design:type", PasswordProvider)
96
+ ], SimpleDbAuthProvider.prototype, "PasswordProvider", void 0);
97
+ SimpleDbAuthProvider = __decorate([
98
+ Injectable(AuthProvider)
99
+ ], SimpleDbAuthProvider);
100
+ export { SimpleDbAuthProvider };
101
101
  //# 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,45 +1,45 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { UserDeactivated } from './../events/UserDeactivated.js';
11
- //import { UserBannedMessage } from './../messages/UserBanned';
12
- import { QueueService } from '@spinajs/Queue';
13
- import { Log, Logger } from '@spinajs/log';
14
- import { Argument, CliCommand, Command } from '@spinajs/cli';
15
- import { Autoinject } from '@spinajs/di';
16
- import { User } from '../models/User.js';
17
- import { UserActivated } from '../events/UserActivated.js';
18
- let ActivateUser = class ActivateUser extends CliCommand {
19
- async execute(idOrUuid, active) {
20
- const result = await User.update({ IsActive: active }).where('Id', idOrUuid).orWhere('Uuid', idOrUuid);
21
- if (result.RowsAffected > 0) {
22
- const event = active ? new UserActivated(idOrUuid) : new UserDeactivated(idOrUuid);
23
- this.Queue.emit(event);
24
- this.Log.success(`User activation status changed to ${active}`);
25
- }
26
- else {
27
- this.Log.warn(`No user with id: ${idOrUuid} found`);
28
- }
29
- }
30
- };
31
- __decorate([
32
- Logger('rbac'),
33
- __metadata("design:type", Log)
34
- ], ActivateUser.prototype, "Log", void 0);
35
- __decorate([
36
- Autoinject(QueueService),
37
- __metadata("design:type", QueueService)
38
- ], ActivateUser.prototype, "Queue", void 0);
39
- ActivateUser = __decorate([
40
- Command('rbac:user-activate', 'Sets active or inactive user'),
41
- Argument('idOrUuid', 'numeric id or uuid'),
42
- Argument('active', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false))
43
- ], ActivateUser);
44
- export { ActivateUser };
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { UserDeactivated } from './../events/UserDeactivated.js';
11
+ //import { UserBannedMessage } from './../messages/UserBanned';
12
+ import { QueueService } from '@spinajs/Queue';
13
+ import { Log, Logger } from '@spinajs/log';
14
+ import { Argument, CliCommand, Command } from '@spinajs/cli';
15
+ import { Autoinject } from '@spinajs/di';
16
+ import { User } from '../models/User.js';
17
+ import { UserActivated } from '../events/UserActivated.js';
18
+ let ActivateUser = class ActivateUser extends CliCommand {
19
+ async execute(idOrUuid, active) {
20
+ const result = await User.update({ IsActive: active }).where('Id', idOrUuid).orWhere('Uuid', idOrUuid);
21
+ if (result.RowsAffected > 0) {
22
+ const event = active ? new UserActivated(idOrUuid) : new UserDeactivated(idOrUuid);
23
+ this.Queue.emit(event);
24
+ this.Log.success(`User activation status changed to ${active}`);
25
+ }
26
+ else {
27
+ this.Log.warn(`No user with id: ${idOrUuid} found`);
28
+ }
29
+ }
30
+ };
31
+ __decorate([
32
+ Logger('rbac'),
33
+ __metadata("design:type", Log)
34
+ ], ActivateUser.prototype, "Log", void 0);
35
+ __decorate([
36
+ Autoinject(QueueService),
37
+ __metadata("design:type", QueueService)
38
+ ], ActivateUser.prototype, "Queue", void 0);
39
+ ActivateUser = __decorate([
40
+ Command('rbac:user-activate', 'Sets active or inactive user'),
41
+ Argument('idOrUuid', 'numeric id or uuid'),
42
+ Argument('active', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false))
43
+ ], ActivateUser);
44
+ export { ActivateUser };
45
45
  //# sourceMappingURL=ActivateUser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,+DAA+D;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAKpD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,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,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,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,MAAM,CAAC,MAAM,CAAC;8BACA,GAAG;yCAAC;AAEnB;IAAC,UAAU,CAAC,YAAY,CAAC;8BACR,YAAY;2CAAC;AALnB,YAAY;IAHxB,OAAO,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,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;SApBY,YAAY"}
1
+ {"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,+DAA+D;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAKpD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,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,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,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;AAlBW;IADT,MAAM,CAAC,MAAM,CAAC;8BACA,GAAG;yCAAC;AAGT;IADT,UAAU,CAAC,YAAY,CAAC;8BACR,YAAY;2CAAC;AALnB,YAAY;IAHxB,OAAO,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,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,61 +1,61 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { UserUnbanned } from './../events/UserUnbanned.js';
11
- import { QueueService } from '@spinajs/Queue';
12
- import { Log, Logger } from '@spinajs/log';
13
- import { Argument, CliCommand, Command } from '@spinajs/cli';
14
- import { Autoinject } from '@spinajs/di';
15
- import { User } from '../models/User.js';
16
- import { UserBanned } from '../events/UserBanned.js';
17
- import { UserMetadata } from '../models/UserMetadata.js';
18
- import { UnbanUser } from '../jobs/UnbanUser.js';
19
- import { DateTime } from 'luxon';
20
- let BanUser = class BanUser extends CliCommand {
21
- async execute(idOrUuid, ban, duration) {
22
- const user = await User.where('Id', idOrUuid).orWhere('Uuid', idOrUuid).firstOrThrow(new Error('User not found'));
23
- user.IsBanned = ban;
24
- await user.update();
25
- if (ban) {
26
- await (user.Metadata['ban:duration'] = duration);
27
- await (user.Metadata['ban:issued'] = DateTime.now().toISO());
28
- this.Queue.emit(new UserBanned(idOrUuid, duration));
29
- if (duration !== 0) {
30
- // schedule job with delay equals ban duration
31
- // to automattically unban user after this time
32
- const job = new UnbanUser(idOrUuid);
33
- job.ScheduleDelay = duration * 60 * 1000;
34
- this.Queue.emit(job);
35
- }
36
- this.Log.success(`User ban status changed to ${ban}`);
37
- }
38
- else {
39
- // cleanup meta
40
- await UserMetadata.destroy().where('Key', 'like', 'user:ban:%').andWhere('User', user);
41
- this.Queue.emit(new UserUnbanned(idOrUuid));
42
- this.Log.warn(`No user with id: ${idOrUuid} found`);
43
- }
44
- }
45
- };
46
- __decorate([
47
- Logger('rbac'),
48
- __metadata("design:type", Log)
49
- ], BanUser.prototype, "Log", void 0);
50
- __decorate([
51
- Autoinject(QueueService),
52
- __metadata("design:type", QueueService)
53
- ], BanUser.prototype, "Queue", void 0);
54
- BanUser = __decorate([
55
- Command('rbac:user-ban', 'Sets active or inactive user'),
56
- Argument('idOrUuid', 'numeric id or uuid'),
57
- Argument('ban', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false)),
58
- Argument('duration', 'how long should ban last ( in minutes )', 24 * 60, (opt) => parseInt(opt))
59
- ], BanUser);
60
- export { BanUser };
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { UserUnbanned } from './../events/UserUnbanned.js';
11
+ import { QueueService } from '@spinajs/Queue';
12
+ import { Log, Logger } from '@spinajs/log';
13
+ import { Argument, CliCommand, Command } from '@spinajs/cli';
14
+ import { Autoinject } from '@spinajs/di';
15
+ import { User } from '../models/User.js';
16
+ import { UserBanned } from '../events/UserBanned.js';
17
+ import { UserMetadata } from '../models/UserMetadata.js';
18
+ import { UnbanUser } from '../jobs/UnbanUser.js';
19
+ import { DateTime } from 'luxon';
20
+ let BanUser = class BanUser extends CliCommand {
21
+ async execute(idOrUuid, ban, duration) {
22
+ const user = await User.where('Id', idOrUuid).orWhere('Uuid', idOrUuid).firstOrThrow(new Error('User not found'));
23
+ user.IsBanned = ban;
24
+ await user.update();
25
+ if (ban) {
26
+ await (user.Metadata['ban:duration'] = duration);
27
+ await (user.Metadata['ban:issued'] = DateTime.now().toISO());
28
+ this.Queue.emit(new UserBanned(idOrUuid, duration));
29
+ if (duration !== 0) {
30
+ // schedule job with delay equals ban duration
31
+ // to automattically unban user after this time
32
+ const job = new UnbanUser(idOrUuid);
33
+ job.ScheduleDelay = duration * 60 * 1000;
34
+ this.Queue.emit(job);
35
+ }
36
+ this.Log.success(`User ban status changed to ${ban}`);
37
+ }
38
+ else {
39
+ // cleanup meta
40
+ await UserMetadata.destroy().where('Key', 'like', 'user:ban:%').andWhere('User', user);
41
+ this.Queue.emit(new UserUnbanned(idOrUuid));
42
+ this.Log.warn(`No user with id: ${idOrUuid} found`);
43
+ }
44
+ }
45
+ };
46
+ __decorate([
47
+ Logger('rbac'),
48
+ __metadata("design:type", Log)
49
+ ], BanUser.prototype, "Log", void 0);
50
+ __decorate([
51
+ Autoinject(QueueService),
52
+ __metadata("design:type", QueueService)
53
+ ], BanUser.prototype, "Queue", void 0);
54
+ BanUser = __decorate([
55
+ Command('rbac:user-ban', 'Sets active or inactive user'),
56
+ Argument('idOrUuid', 'numeric id or uuid'),
57
+ Argument('ban', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false)),
58
+ Argument('duration', 'how long should ban last ( in minutes )', 24 * 60, (opt) => parseInt(opt))
59
+ ], BanUser);
60
+ export { BanUser };
61
61
  //# sourceMappingURL=BanUser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BanUser.js","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BanUser.js","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":"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"}
@@ -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