@spinajs/rbac 2.0.28 → 2.0.44

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 (131) hide show
  1. package/lib/auth.d.ts +10 -3
  2. package/lib/auth.js +64 -8
  3. package/lib/auth.js.map +1 -1
  4. package/lib/cli/ActivateUser.d.ts +8 -0
  5. package/lib/cli/ActivateUser.js +48 -0
  6. package/lib/cli/ActivateUser.js.map +1 -0
  7. package/lib/cli/BanUser.d.ts +8 -0
  8. package/lib/cli/BanUser.js +64 -0
  9. package/lib/cli/BanUser.js.map +1 -0
  10. package/lib/cli/ChangePassword.d.ts +0 -0
  11. package/lib/cli/ChangePassword.js +1 -0
  12. package/lib/cli/ChangePassword.js.map +1 -0
  13. package/lib/cli/ChangeUserPassword.d.ts +11 -0
  14. package/lib/cli/ChangeUserPassword.js +59 -0
  15. package/lib/cli/ChangeUserPassword.js.map +1 -0
  16. package/lib/cli/ClearUserTimelineSchedule.d.ts +8 -0
  17. package/lib/cli/ClearUserTimelineSchedule.js +55 -0
  18. package/lib/cli/ClearUserTimelineSchedule.js.map +1 -0
  19. package/lib/cli/CreateUser.d.ts +17 -0
  20. package/lib/cli/CreateUser.js +72 -0
  21. package/lib/cli/CreateUser.js.map +1 -0
  22. package/lib/cli/DeleteUser.d.ts +8 -0
  23. package/lib/cli/DeleteUser.js +41 -0
  24. package/lib/cli/DeleteUser.js.map +1 -0
  25. package/lib/cli/Find.d.ts +12 -0
  26. package/lib/cli/Find.js +45 -0
  27. package/lib/cli/Find.js.map +1 -0
  28. package/lib/cli/FindUser.d.ts +12 -0
  29. package/lib/cli/FindUser.js +45 -0
  30. package/lib/cli/FindUser.js.map +1 -0
  31. package/lib/cli/GrantUserRole.d.ts +8 -0
  32. package/lib/cli/GrantUserRole.js +48 -0
  33. package/lib/cli/GrantUserRole.js.map +1 -0
  34. package/lib/cli/LatestUserEvents.d.ts +6 -0
  35. package/lib/cli/LatestUserEvents.js +38 -0
  36. package/lib/cli/LatestUserEvents.js.map +1 -0
  37. package/lib/cli/RevokeUserRole.d.ts +8 -0
  38. package/lib/cli/RevokeUserRole.js +47 -0
  39. package/lib/cli/RevokeUserRole.js.map +1 -0
  40. package/lib/cli/UnbanUserSchedule.d.ts +8 -0
  41. package/lib/cli/UnbanUserSchedule.js +55 -0
  42. package/lib/cli/UnbanUserSchedule.js.map +1 -0
  43. package/lib/config/rbac.js +67 -2
  44. package/lib/config/rbac.js.map +1 -1
  45. package/lib/events/NewUser.d.ts +12 -0
  46. package/lib/events/NewUser.js +17 -0
  47. package/lib/events/NewUser.js.map +1 -0
  48. package/lib/events/UserActivated.d.ts +5 -0
  49. package/lib/events/UserActivated.js +25 -0
  50. package/lib/events/UserActivated.js.map +1 -0
  51. package/lib/events/UserBanned.d.ts +6 -0
  52. package/lib/events/UserBanned.js +26 -0
  53. package/lib/events/UserBanned.js.map +1 -0
  54. package/lib/events/UserDeactivated.d.ts +5 -0
  55. package/lib/events/UserDeactivated.js +25 -0
  56. package/lib/events/UserDeactivated.js.map +1 -0
  57. package/lib/events/UserDeleted.d.ts +5 -0
  58. package/lib/events/UserDeleted.js +25 -0
  59. package/lib/events/UserDeleted.js.map +1 -0
  60. package/lib/events/UserMetadataAdded.d.ts +5 -0
  61. package/lib/events/UserMetadataAdded.js +25 -0
  62. package/lib/events/UserMetadataAdded.js.map +1 -0
  63. package/lib/events/UserMetadataChanged.d.ts +5 -0
  64. package/lib/events/UserMetadataChanged.js +25 -0
  65. package/lib/events/UserMetadataChanged.js.map +1 -0
  66. package/lib/events/UserMetadataDeleted.d.ts +5 -0
  67. package/lib/events/UserMetadataDeleted.js +25 -0
  68. package/lib/events/UserMetadataDeleted.js.map +1 -0
  69. package/lib/events/UserPasswordChanged.d.ts +5 -0
  70. package/lib/events/UserPasswordChanged.js +25 -0
  71. package/lib/events/UserPasswordChanged.js.map +1 -0
  72. package/lib/events/UserPropertyChange.d.ts +7 -0
  73. package/lib/events/UserPropertyChange.js +17 -0
  74. package/lib/events/UserPropertyChange.js.map +1 -0
  75. package/lib/events/UserPropertyChanged.d.ts +7 -0
  76. package/lib/events/UserPropertyChanged.js +17 -0
  77. package/lib/events/UserPropertyChanged.js.map +1 -0
  78. package/lib/events/UserRoleGranted.d.ts +6 -0
  79. package/lib/events/UserRoleGranted.js +26 -0
  80. package/lib/events/UserRoleGranted.js.map +1 -0
  81. package/lib/events/UserRoleRevoked.d.ts +6 -0
  82. package/lib/events/UserRoleRevoked.js +26 -0
  83. package/lib/events/UserRoleRevoked.js.map +1 -0
  84. package/lib/events/UserUnbanned.d.ts +5 -0
  85. package/lib/events/UserUnbanned.js +25 -0
  86. package/lib/events/UserUnbanned.js.map +1 -0
  87. package/lib/events/index.d.ts +13 -0
  88. package/lib/events/index.js +30 -0
  89. package/lib/events/index.js.map +1 -0
  90. package/lib/index.d.ts +3 -0
  91. package/lib/index.js +3 -0
  92. package/lib/index.js.map +1 -1
  93. package/lib/interfaces.d.ts +151 -6
  94. package/lib/interfaces.js +31 -2
  95. package/lib/interfaces.js.map +1 -1
  96. package/lib/jobs/UnbanUser.d.ts +9 -0
  97. package/lib/jobs/UnbanUser.js +44 -0
  98. package/lib/jobs/UnbanUser.js.map +1 -0
  99. package/lib/messages/ChangedProperties.d.ts +6 -0
  100. package/lib/messages/ChangedProperties.js +8 -0
  101. package/lib/messages/ChangedProperties.js.map +1 -0
  102. package/lib/messages/NewUser.d.ts +14 -0
  103. package/lib/messages/NewUser.js +21 -0
  104. package/lib/messages/NewUser.js.map +1 -0
  105. package/lib/messages/UserActivated.d.ts +7 -0
  106. package/lib/messages/UserActivated.js +13 -0
  107. package/lib/messages/UserActivated.js.map +1 -0
  108. package/lib/messages/UserBanned.d.ts +7 -0
  109. package/lib/messages/UserBanned.js +13 -0
  110. package/lib/messages/UserBanned.js.map +1 -0
  111. package/lib/middleware.d.ts +4 -0
  112. package/lib/middleware.js +23 -0
  113. package/lib/middleware.js.map +1 -0
  114. package/lib/migrations/RBACInitial_2022_06_28_01_13_00.js +17 -1
  115. package/lib/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  116. package/lib/models/User.d.ts +41 -3
  117. package/lib/models/User.js +140 -5
  118. package/lib/models/User.js.map +1 -1
  119. package/lib/models/UserMetadata.d.ts +3 -2
  120. package/lib/models/UserMetadata.js +4 -0
  121. package/lib/models/UserMetadata.js.map +1 -1
  122. package/lib/models/UserTimeline.d.ts +28 -0
  123. package/lib/models/UserTimeline.js +47 -0
  124. package/lib/models/UserTimeline.js.map +1 -0
  125. package/lib/password.d.ts +10 -1
  126. package/lib/password.js +27 -1
  127. package/lib/password.js.map +1 -1
  128. package/lib/session.d.ts +3 -3
  129. package/lib/session.js +20 -6
  130. package/lib/session.js.map +1 -1
  131. package/package.json +12 -10
@@ -0,0 +1,25 @@
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.UserDeleted = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserDeleted = class UserDeleted extends queue_1.QueueEvent {
15
+ constructor(UserUUID) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ }
19
+ };
20
+ UserDeleted = __decorate([
21
+ (0, queue_1.Event)(),
22
+ __metadata("design:paramtypes", [String])
23
+ ], UserDeleted);
24
+ exports.UserDeleted = UserDeleted;
25
+ //# sourceMappingURL=UserDeleted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDeleted.js","sourceRoot":"","sources":["../../src/events/UserDeleted.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,kBAAU;IACzC,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,WAAW;IADvB,IAAA,aAAK,GAAE;;GACK,WAAW,CAIvB;AAJY,kCAAW"}
@@ -0,0 +1,5 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserMetadataAdded extends QueueEvent {
3
+ UserUUID: string;
4
+ constructor(UserUUID: string);
5
+ }
@@ -0,0 +1,25 @@
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.UserMetadataAdded = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserMetadataAdded = class UserMetadataAdded extends queue_1.QueueEvent {
15
+ constructor(UserUUID) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ }
19
+ };
20
+ UserMetadataAdded = __decorate([
21
+ (0, queue_1.Event)(),
22
+ __metadata("design:paramtypes", [String])
23
+ ], UserMetadataAdded);
24
+ exports.UserMetadataAdded = UserMetadataAdded;
25
+ //# sourceMappingURL=UserMetadataAdded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserMetadataAdded.js","sourceRoot":"","sources":["../../src/events/UserMetadataAdded.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,kBAAU;IAC/C,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,iBAAiB;IAD7B,IAAA,aAAK,GAAE;;GACK,iBAAiB,CAI7B;AAJY,8CAAiB"}
@@ -0,0 +1,5 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserMetadataChanged extends QueueEvent {
3
+ UserUUID: string;
4
+ constructor(UserUUID: string);
5
+ }
@@ -0,0 +1,25 @@
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.UserMetadataChanged = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserMetadataChanged = class UserMetadataChanged extends queue_1.QueueEvent {
15
+ constructor(UserUUID) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ }
19
+ };
20
+ UserMetadataChanged = __decorate([
21
+ (0, queue_1.Event)(),
22
+ __metadata("design:paramtypes", [String])
23
+ ], UserMetadataChanged);
24
+ exports.UserMetadataChanged = UserMetadataChanged;
25
+ //# sourceMappingURL=UserMetadataChanged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserMetadataChanged.js","sourceRoot":"","sources":["../../src/events/UserMetadataChanged.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,kBAAU;IACjD,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,mBAAmB;IAD/B,IAAA,aAAK,GAAE;;GACK,mBAAmB,CAI/B;AAJY,kDAAmB"}
@@ -0,0 +1,5 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserMetadataDeleted extends QueueEvent {
3
+ UserUUID: string;
4
+ constructor(UserUUID: string);
5
+ }
@@ -0,0 +1,25 @@
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.UserMetadataDeleted = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserMetadataDeleted = class UserMetadataDeleted extends queue_1.QueueEvent {
15
+ constructor(UserUUID) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ }
19
+ };
20
+ UserMetadataDeleted = __decorate([
21
+ (0, queue_1.Event)(),
22
+ __metadata("design:paramtypes", [String])
23
+ ], UserMetadataDeleted);
24
+ exports.UserMetadataDeleted = UserMetadataDeleted;
25
+ //# sourceMappingURL=UserMetadataDeleted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserMetadataDeleted.js","sourceRoot":"","sources":["../../src/events/UserMetadataDeleted.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,kBAAU;IACjD,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,mBAAmB;IAD/B,IAAA,aAAK,GAAE;;GACK,mBAAmB,CAI/B;AAJY,kDAAmB"}
@@ -0,0 +1,5 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserPasswordChanged extends QueueEvent {
3
+ UserUUID: string;
4
+ constructor(UserUUID: string);
5
+ }
@@ -0,0 +1,25 @@
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.UserPasswordChanged = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserPasswordChanged = class UserPasswordChanged extends queue_1.QueueEvent {
15
+ constructor(UserUUID) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ }
19
+ };
20
+ UserPasswordChanged = __decorate([
21
+ (0, queue_1.Event)(),
22
+ __metadata("design:paramtypes", [String])
23
+ ], UserPasswordChanged);
24
+ exports.UserPasswordChanged = UserPasswordChanged;
25
+ //# sourceMappingURL=UserPasswordChanged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserPasswordChanged.js","sourceRoot":"","sources":["../../src/events/UserPasswordChanged.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,kBAAU;IACjD,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,mBAAmB;IAD/B,IAAA,aAAK,GAAE;;GACK,mBAAmB,CAI/B;AAJY,kDAAmB"}
@@ -0,0 +1,7 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserPropertyChanged extends QueueEvent {
3
+ Uuid: string;
4
+ Property: string;
5
+ OldValue: any;
6
+ NewValue: any;
7
+ }
@@ -0,0 +1,17 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserPropertyChanged = void 0;
10
+ const queue_1 = require("@spinajs/queue");
11
+ let UserPropertyChanged = class UserPropertyChanged extends queue_1.QueueEvent {
12
+ };
13
+ UserPropertyChanged = __decorate([
14
+ (0, queue_1.Event)()
15
+ ], UserPropertyChanged);
16
+ exports.UserPropertyChanged = UserPropertyChanged;
17
+ //# sourceMappingURL=UserPropertyChange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserPropertyChange.js","sourceRoot":"","sources":["../../src/events/UserPropertyChange.ts"],"names":[],"mappings":";;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,kBAAU;CAOlD,CAAA;AAPY,mBAAmB;IAD/B,IAAA,aAAK,GAAE;GACK,mBAAmB,CAO/B;AAPY,kDAAmB"}
@@ -0,0 +1,7 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserPropertyChanged extends QueueEvent {
3
+ Uuid: string;
4
+ Property: string;
5
+ OldValue: any;
6
+ NewValue: any;
7
+ }
@@ -0,0 +1,17 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UserPropertyChanged = void 0;
10
+ const queue_1 = require("@spinajs/queue");
11
+ let UserPropertyChanged = class UserPropertyChanged extends queue_1.QueueEvent {
12
+ };
13
+ UserPropertyChanged = __decorate([
14
+ (0, queue_1.Event)()
15
+ ], UserPropertyChanged);
16
+ exports.UserPropertyChanged = UserPropertyChanged;
17
+ //# sourceMappingURL=UserPropertyChanged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserPropertyChanged.js","sourceRoot":"","sources":["../../src/events/UserPropertyChanged.ts"],"names":[],"mappings":";;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,kBAAU;CAOlD,CAAA;AAPY,mBAAmB;IAD/B,IAAA,aAAK,GAAE;GACK,mBAAmB,CAO/B;AAPY,kDAAmB"}
@@ -0,0 +1,6 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserRoleGranted extends QueueEvent {
3
+ UserUUID: string;
4
+ Role: string;
5
+ constructor(UserUUID: string, Role: string);
6
+ }
@@ -0,0 +1,26 @@
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.UserRoleGranted = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserRoleGranted = class UserRoleGranted extends queue_1.QueueEvent {
15
+ constructor(UserUUID, Role) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ this.Role = Role;
19
+ }
20
+ };
21
+ UserRoleGranted = __decorate([
22
+ (0, queue_1.Event)(),
23
+ __metadata("design:paramtypes", [String, String])
24
+ ], UserRoleGranted);
25
+ exports.UserRoleGranted = UserRoleGranted;
26
+ //# sourceMappingURL=UserRoleGranted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserRoleGranted.js","sourceRoot":"","sources":["../../src/events/UserRoleGranted.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,kBAAU;IAC7C,YAAmB,QAAgB,EAAS,IAAY;QACtD,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAQ;IAExD,CAAC;CACF,CAAA;AAJY,eAAe;IAD3B,IAAA,aAAK,GAAE;;GACK,eAAe,CAI3B;AAJY,0CAAe"}
@@ -0,0 +1,6 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserRoleRevoked extends QueueEvent {
3
+ UserUUID: string;
4
+ Role: string;
5
+ constructor(UserUUID: string, Role: string);
6
+ }
@@ -0,0 +1,26 @@
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.UserRoleRevoked = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserRoleRevoked = class UserRoleRevoked extends queue_1.QueueEvent {
15
+ constructor(UserUUID, Role) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ this.Role = Role;
19
+ }
20
+ };
21
+ UserRoleRevoked = __decorate([
22
+ (0, queue_1.Event)(),
23
+ __metadata("design:paramtypes", [String, String])
24
+ ], UserRoleRevoked);
25
+ exports.UserRoleRevoked = UserRoleRevoked;
26
+ //# sourceMappingURL=UserRoleRevoked.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserRoleRevoked.js","sourceRoot":"","sources":["../../src/events/UserRoleRevoked.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,kBAAU;IAC7C,YAAmB,QAAgB,EAAS,IAAY;QACtD,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAQ;IAExD,CAAC;CACF,CAAA;AAJY,eAAe;IAD3B,IAAA,aAAK,GAAE;;GACK,eAAe,CAI3B;AAJY,0CAAe"}
@@ -0,0 +1,5 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserUnbanned extends QueueEvent {
3
+ UserUUID: string;
4
+ constructor(UserUUID: string);
5
+ }
@@ -0,0 +1,25 @@
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.UserUnbanned = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ let UserUnbanned = class UserUnbanned extends queue_1.QueueEvent {
15
+ constructor(UserUUID) {
16
+ super();
17
+ this.UserUUID = UserUUID;
18
+ }
19
+ };
20
+ UserUnbanned = __decorate([
21
+ (0, queue_1.Event)(),
22
+ __metadata("design:paramtypes", [String])
23
+ ], UserUnbanned);
24
+ exports.UserUnbanned = UserUnbanned;
25
+ //# sourceMappingURL=UserUnbanned.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserUnbanned.js","sourceRoot":"","sources":["../../src/events/UserUnbanned.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AAGnD,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,kBAAU;IAC1C,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,YAAY;IADxB,IAAA,aAAK,GAAE;;GACK,YAAY,CAIxB;AAJY,oCAAY"}
@@ -0,0 +1,13 @@
1
+ export * from './NewUser';
2
+ export * from './UserActivated';
3
+ export * from './UserBanned';
4
+ export * from './UserDeactivated';
5
+ export * from './UserDeleted';
6
+ export * from './UserMetadataAdded';
7
+ export * from './UserMetadataChanged';
8
+ export * from './UserMetadataDeleted';
9
+ export * from './UserPasswordChanged';
10
+ export * from './UserPropertyChanged';
11
+ export * from './UserRoleGranted';
12
+ export * from './UserRoleRevoked';
13
+ export * from './UserUnbanned';
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./NewUser"), exports);
18
+ __exportStar(require("./UserActivated"), exports);
19
+ __exportStar(require("./UserBanned"), exports);
20
+ __exportStar(require("./UserDeactivated"), exports);
21
+ __exportStar(require("./UserDeleted"), exports);
22
+ __exportStar(require("./UserMetadataAdded"), exports);
23
+ __exportStar(require("./UserMetadataChanged"), exports);
24
+ __exportStar(require("./UserMetadataDeleted"), exports);
25
+ __exportStar(require("./UserPasswordChanged"), exports);
26
+ __exportStar(require("./UserPropertyChanged"), exports);
27
+ __exportStar(require("./UserRoleGranted"), exports);
28
+ __exportStar(require("./UserRoleRevoked"), exports);
29
+ __exportStar(require("./UserUnbanned"), exports);
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kDAAgC;AAChC,+CAA6B;AAC7B,oDAAkC;AAClC,gDAA8B;AAC9B,sDAAoC;AACpC,wDAAsC;AACtC,wDAAsC;AACtC,wDAAsC;AACtC,wDAAsC;AACtC,oDAAkC;AAClC,oDAAkC;AAClC,iDAA+B"}
package/lib/index.d.ts CHANGED
@@ -8,6 +8,9 @@ export * from './password';
8
8
  export * from './session';
9
9
  export * from './models/User';
10
10
  export * from './models/UserMetadata';
11
+ export * from './models/UserTimeline';
12
+ export * from './migrations/RBACInitial_2022_06_28_01_13_00';
13
+ export * from './events';
11
14
  export { AccessControl } from 'accesscontrol';
12
15
  export declare class RbacBootstrapper extends Bootstrapper {
13
16
  bootstrap(): void;
package/lib/index.js CHANGED
@@ -32,6 +32,9 @@ __exportStar(require("./password"), exports);
32
32
  __exportStar(require("./session"), exports);
33
33
  __exportStar(require("./models/User"), exports);
34
34
  __exportStar(require("./models/UserMetadata"), exports);
35
+ __exportStar(require("./models/UserTimeline"), exports);
36
+ __exportStar(require("./migrations/RBACInitial_2022_06_28_01_13_00"), exports);
37
+ __exportStar(require("./events"), exports);
35
38
  var accesscontrol_2 = require("accesscontrol");
36
39
  Object.defineProperty(exports, "AccessControl", { enumerable: true, get: function () { return accesscontrol_2.AccessControl; } });
37
40
  let RbacBootstrapper = class RbacBootstrapper extends di_1.Bootstrapper {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAuE;AACvE,kBAAgB;AAChB,sBAAoB;AACpB,qBAAmB;AACnB,iDAA8C;AAG9C,+CAA6B;AAC7B,yCAAuB;AACvB,6CAA2B;AAC3B,4CAA0B;AAC1B,gDAA8B;AAC9B,wDAAsC;AACtC,+CAA8C;AAArC,8GAAA,aAAa,OAAA;AAGtB,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,iBAAY;IACzC,SAAS;QACd,MAAM,EAAE,GAAG,IAAI,6BAAa,EAAE,CAAC;QAC/B,OAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACzC,OAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,SAAqB,EAAE,aAA4B,EAAE,EAAE;YAC3F,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAgB,eAAe,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE;gBACV,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAZY,gBAAgB;IAD5B,IAAA,eAAU,EAAC,iBAAY,CAAC;GACZ,gBAAgB,CAY5B;AAZY,4CAAgB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAuE;AACvE,kBAAgB;AAChB,sBAAoB;AACpB,qBAAmB;AACnB,iDAA8C;AAG9C,+CAA6B;AAC7B,yCAAuB;AACvB,6CAA2B;AAC3B,4CAA0B;AAC1B,gDAA8B;AAC9B,wDAAsC;AACtC,wDAAsC;AACtC,+EAA6D;AAC7D,2CAAyB;AACzB,+CAA8C;AAArC,8GAAA,aAAa,OAAA;AAGtB,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,iBAAY;IACzC,SAAS;QACd,MAAM,EAAE,GAAG,IAAI,6BAAa,EAAE,CAAC;QAC/B,OAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACzC,OAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,SAAqB,EAAE,aAA4B,EAAE,EAAE;YAC3F,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAgB,eAAe,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE;gBACV,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAZY,gBAAgB;IAD5B,IAAA,eAAU,EAAC,iBAAY,CAAC;GACZ,gBAAgB,CAY5B;AAZY,4CAAgB"}
@@ -1,5 +1,5 @@
1
1
  import { User } from './models/User';
2
- import { AsyncModule } from '@spinajs/di';
2
+ import { AsyncService } from '@spinajs/di';
3
3
  import { DateTime } from 'luxon';
4
4
  export interface ISession {
5
5
  /**
@@ -22,9 +22,9 @@ export interface ISession {
22
22
  *
23
23
  * Extends session lifetime
24
24
  *
25
- * @param minutes - how mutch to extend, if value not provided, default value from config is used
25
+ * @param seconds - how mutch to extend, if value not provided, default value from config is used
26
26
  */
27
- extend(minutes?: number): void;
27
+ extend(seconds?: number): void;
28
28
  }
29
29
  /**
30
30
  * Service used for generating random password & for hash raw string
@@ -50,11 +50,101 @@ export declare abstract class PasswordProvider {
50
50
  */
51
51
  abstract generate(): string;
52
52
  }
53
+ /**
54
+ * Provides standard authentication based on login & password
55
+ *
56
+ * Unlike federated auth providers, it check local db for user,
57
+ * or some kind of other source
58
+ */
53
59
  export declare abstract class AuthProvider<U = User> {
54
- abstract exists(user: U): Promise<boolean>;
55
- abstract authenticate(email: string, password: string): Promise<U>;
60
+ /**
61
+ *
62
+ * Checks if user is already exists with given email
63
+ *
64
+ * @param emailOrUser - email or user object
65
+ */
66
+ abstract exists(emailOrUser: U | string): Promise<boolean>;
67
+ /**
68
+ *
69
+ * Authenticate user with login and pass, if succeded auth result contains user object
70
+ *
71
+ * @param login - user login
72
+ * @param password - user password
73
+ */
74
+ abstract authenticate(login: string, password: string): Promise<IAuthenticationResult<U>>;
75
+ /**
76
+ *
77
+ * Checks if user is banned
78
+ *
79
+ * @param login - user login
80
+ */
81
+ abstract isBanned(login: string): Promise<boolean>;
82
+ /**
83
+ * Checks if user is active
84
+ *
85
+ * @param login - user login
86
+ */
87
+ abstract isActive(login: string): Promise<boolean>;
88
+ /**
89
+ *
90
+ * Cheks if user is deleted
91
+ *
92
+ * @param login - user login
93
+ */
94
+ abstract isDeleted(login: string): Promise<boolean>;
95
+ /**
96
+ *
97
+ * Gets user from auth store
98
+ *
99
+ * @param login - user login
100
+ */
101
+ abstract getByLogin(login: string): Promise<U>;
102
+ /**
103
+ *
104
+ * Gets user from auth store
105
+ *
106
+ * @param email - user email
107
+ */
108
+ abstract getByEmail(email: string): Promise<U>;
109
+ /**
110
+ *
111
+ * Gets user from auth store
112
+ *
113
+ * @param uuid - user uuid
114
+ */
115
+ abstract getByUUID(uuid: string): Promise<U>;
116
+ }
117
+ /**
118
+ * Used for implementign authentication with external services
119
+ * eg. slack or facebook that uses openid or similar auth
120
+ *
121
+ * NOTE: it should only authorize user, it should not register new one if
122
+ * not exists in use DB.
123
+ */
124
+ export declare abstract class FederatedAuthProvider<C, U = User> {
125
+ /**
126
+ * Name of strategy
127
+ */
128
+ abstract get Name(): string;
129
+ /**
130
+ *
131
+ * login service provides Host header for check
132
+ * whitch service is trying to authenticate
133
+ *
134
+ * Base on host adress we choose auth provider
135
+ *
136
+ * @param caller - caller url
137
+ */
138
+ abstract callerCheck(caller: string): boolean;
139
+ /**
140
+ *
141
+ * Authenticates user based on response from external auth service
142
+ *
143
+ * @param credentials - provided credentials eg. data with token
144
+ */
145
+ abstract authenticate(credentials: C): Promise<IAuthenticationResult<U>>;
56
146
  }
57
- export declare abstract class SessionProvider<T = ISession> extends AsyncModule {
147
+ export declare abstract class SessionProvider<T = ISession> extends AsyncService {
58
148
  /**
59
149
  *
60
150
  * Load session from store. If not exists or expired returns null
@@ -76,4 +166,59 @@ export declare abstract class SessionProvider<T = ISession> extends AsyncModule
76
166
  * @param session - session to update / insert
77
167
  */
78
168
  abstract save(session: ISession): Promise<void>;
169
+ /**
170
+ *
171
+ * Updates session data for given id
172
+ *
173
+ * @param id - session id
174
+ * @param data - key - value pair of data
175
+ */
176
+ abstract save(id: string, data: object): Promise<void>;
177
+ /**
178
+ *
179
+ * Updates only EXPIRATION TIME of session, not changing other data
180
+ *
181
+ * @param session - session to update
182
+ */
183
+ abstract touch(session: ISession): Promise<void>;
184
+ /**
185
+ *
186
+ * Deletes all session table data
187
+ *
188
+ */
189
+ abstract truncate(): Promise<void>;
190
+ }
191
+ export declare enum AthenticationErrorCodes {
192
+ E_USER_BANNED = "E_USER_BANNED",
193
+ E_USER_NOT_ACTIVE = "E_USER_NOT_ACTIVE",
194
+ E_INVALID_CREDENTIALS = "E_INVALID_CREDENTIALS",
195
+ E_LOGIN_ATTEMPTS_EXCEEDED = "E_LOGIN_ATTEMPTS_EXCEEDED"
196
+ }
197
+ /**
198
+ * Authentication result
199
+ */
200
+ export interface IAuthenticationResult<U = User> {
201
+ /**
202
+ * If auth is succeded, user field is not null
203
+ */
204
+ User?: U;
205
+ /**
206
+ * If result failed, Error field is not null
207
+ */
208
+ Error?: {
209
+ /**
210
+ * Error code eg E_IS_BANNED
211
+ */
212
+ Code: string | AthenticationErrorCodes;
213
+ /**
214
+ * Optional message
215
+ */
216
+ Message?: string;
217
+ };
218
+ }
219
+ /**
220
+ * Interface to provide implementation of password rule validation
221
+ */
222
+ export declare abstract class PasswordValidationProvider {
223
+ abstract check(password: string): boolean;
79
224
  }