@spinajs/rbac 2.0.180 → 2.0.182

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/lib/cjs/auth.d.ts +15 -15
  2. package/lib/cjs/auth.js +103 -103
  3. package/lib/cjs/auth.js.map +1 -1
  4. package/lib/cjs/cli/ActivateUser.d.ts +8 -8
  5. package/lib/cjs/cli/ActivateUser.js +47 -47
  6. package/lib/cjs/cli/ActivateUser.js.map +1 -1
  7. package/lib/cjs/cli/BanUser.d.ts +8 -8
  8. package/lib/cjs/cli/BanUser.js +63 -63
  9. package/lib/cjs/cli/BanUser.js.map +1 -1
  10. package/lib/cjs/cli/ChangeUserPassword.d.ts +11 -11
  11. package/lib/cjs/cli/ChangeUserPassword.js +58 -58
  12. package/lib/cjs/cli/ChangeUserPassword.js.map +1 -1
  13. package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
  14. package/lib/cjs/cli/ClearUserTimelineSchedule.js +54 -54
  15. package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +1 -1
  16. package/lib/cjs/cli/CreateUser.d.ts +17 -17
  17. package/lib/cjs/cli/CreateUser.js +69 -69
  18. package/lib/cjs/cli/CreateUser.js.map +1 -1
  19. package/lib/cjs/cli/DeleteUser.d.ts +8 -8
  20. package/lib/cjs/cli/DeleteUser.js +40 -40
  21. package/lib/cjs/cli/DeleteUser.js.map +1 -1
  22. package/lib/cjs/cli/FindUser.d.ts +12 -12
  23. package/lib/cjs/cli/FindUser.js +44 -44
  24. package/lib/cjs/cli/FindUser.js.map +1 -1
  25. package/lib/cjs/cli/GrantUserRole.d.ts +8 -8
  26. package/lib/cjs/cli/GrantUserRole.js +47 -47
  27. package/lib/cjs/cli/GrantUserRole.js.map +1 -1
  28. package/lib/cjs/cli/LatestUserEvents.d.ts +6 -6
  29. package/lib/cjs/cli/LatestUserEvents.js +37 -37
  30. package/lib/cjs/cli/LatestUserEvents.js.map +1 -1
  31. package/lib/cjs/cli/RevokeUserRole.d.ts +8 -8
  32. package/lib/cjs/cli/RevokeUserRole.js +46 -46
  33. package/lib/cjs/cli/RevokeUserRole.js.map +1 -1
  34. package/lib/cjs/cli/UnbanUserSchedule.d.ts +8 -8
  35. package/lib/cjs/cli/UnbanUserSchedule.js +54 -54
  36. package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -1
  37. package/lib/cjs/config/rbac.d.ts +115 -115
  38. package/lib/cjs/config/rbac.js +120 -120
  39. package/lib/cjs/decorators/Resource.d.ts +8 -8
  40. package/lib/cjs/decorators/Resource.js +17 -17
  41. package/lib/cjs/events/NewUser.d.ts +12 -12
  42. package/lib/cjs/events/NewUser.js +16 -16
  43. package/lib/cjs/events/NewUser.js.map +1 -1
  44. package/lib/cjs/events/UserActivated.d.ts +5 -5
  45. package/lib/cjs/events/UserActivated.js +24 -24
  46. package/lib/cjs/events/UserActivated.js.map +1 -1
  47. package/lib/cjs/events/UserBanned.d.ts +6 -6
  48. package/lib/cjs/events/UserBanned.js +25 -25
  49. package/lib/cjs/events/UserBanned.js.map +1 -1
  50. package/lib/cjs/events/UserDeactivated.d.ts +5 -5
  51. package/lib/cjs/events/UserDeactivated.js +24 -24
  52. package/lib/cjs/events/UserDeactivated.js.map +1 -1
  53. package/lib/cjs/events/UserDeleted.d.ts +5 -5
  54. package/lib/cjs/events/UserDeleted.js +24 -24
  55. package/lib/cjs/events/UserDeleted.js.map +1 -1
  56. package/lib/cjs/events/UserMetadataAdded.d.ts +5 -5
  57. package/lib/cjs/events/UserMetadataAdded.js +24 -24
  58. package/lib/cjs/events/UserMetadataAdded.js.map +1 -1
  59. package/lib/cjs/events/UserMetadataChanged.d.ts +5 -5
  60. package/lib/cjs/events/UserMetadataChanged.js +24 -24
  61. package/lib/cjs/events/UserMetadataChanged.js.map +1 -1
  62. package/lib/cjs/events/UserMetadataDeleted.d.ts +5 -5
  63. package/lib/cjs/events/UserMetadataDeleted.js +24 -24
  64. package/lib/cjs/events/UserMetadataDeleted.js.map +1 -1
  65. package/lib/cjs/events/UserPasswordChanged.d.ts +5 -5
  66. package/lib/cjs/events/UserPasswordChanged.js +24 -24
  67. package/lib/cjs/events/UserPasswordChanged.js.map +1 -1
  68. package/lib/cjs/events/UserPropertyChanged.d.ts +7 -7
  69. package/lib/cjs/events/UserPropertyChanged.js +16 -16
  70. package/lib/cjs/events/UserPropertyChanged.js.map +1 -1
  71. package/lib/cjs/events/UserRoleGranted.d.ts +6 -6
  72. package/lib/cjs/events/UserRoleGranted.js +25 -25
  73. package/lib/cjs/events/UserRoleGranted.js.map +1 -1
  74. package/lib/cjs/events/UserRoleRevoked.d.ts +6 -6
  75. package/lib/cjs/events/UserRoleRevoked.js +25 -25
  76. package/lib/cjs/events/UserRoleRevoked.js.map +1 -1
  77. package/lib/cjs/events/UserUnbanned.d.ts +5 -5
  78. package/lib/cjs/events/UserUnbanned.js +24 -24
  79. package/lib/cjs/events/UserUnbanned.js.map +1 -1
  80. package/lib/cjs/events/index.d.ts +13 -13
  81. package/lib/cjs/events/index.js +29 -29
  82. package/lib/cjs/index.d.ts +20 -20
  83. package/lib/cjs/index.js +85 -85
  84. package/lib/cjs/index.js.map +1 -1
  85. package/lib/cjs/interfaces.d.ts +259 -259
  86. package/lib/cjs/interfaces.js +45 -45
  87. package/lib/cjs/interfaces.js.map +1 -1
  88. package/lib/cjs/jobs/UnbanUser.d.ts +9 -9
  89. package/lib/cjs/jobs/UnbanUser.js +43 -43
  90. package/lib/cjs/jobs/UnbanUser.js.map +1 -1
  91. package/lib/cjs/middleware.d.ts +5 -5
  92. package/lib/cjs/middleware.js +24 -24
  93. package/lib/cjs/middleware.js.map +1 -1
  94. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
  95. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +56 -56
  96. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  97. package/lib/cjs/models/User.d.ts +96 -96
  98. package/lib/cjs/models/User.js +229 -229
  99. package/lib/cjs/models/User.js.map +1 -1
  100. package/lib/cjs/models/UserMetadata.d.ts +9 -9
  101. package/lib/cjs/models/UserMetadata.js +32 -32
  102. package/lib/cjs/models/UserMetadata.js.map +1 -1
  103. package/lib/cjs/models/UserTimeline.d.ts +28 -28
  104. package/lib/cjs/models/UserTimeline.js +46 -46
  105. package/lib/cjs/models/UserTimeline.js.map +1 -1
  106. package/lib/cjs/password.d.ts +25 -25
  107. package/lib/cjs/password.js +91 -91
  108. package/lib/cjs/password.js.map +1 -1
  109. package/lib/cjs/session.d.ts +33 -33
  110. package/lib/cjs/session.js +100 -100
  111. package/lib/cjs/session.js.map +1 -1
  112. package/lib/mjs/auth.d.ts +15 -15
  113. package/lib/mjs/auth.js +100 -100
  114. package/lib/mjs/auth.js.map +1 -1
  115. package/lib/mjs/cli/ActivateUser.d.ts +8 -8
  116. package/lib/mjs/cli/ActivateUser.js +44 -44
  117. package/lib/mjs/cli/ActivateUser.js.map +1 -1
  118. package/lib/mjs/cli/BanUser.d.ts +8 -8
  119. package/lib/mjs/cli/BanUser.js +60 -60
  120. package/lib/mjs/cli/BanUser.js.map +1 -1
  121. package/lib/mjs/cli/ChangeUserPassword.d.ts +11 -11
  122. package/lib/mjs/cli/ChangeUserPassword.js +55 -55
  123. package/lib/mjs/cli/ChangeUserPassword.js.map +1 -1
  124. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
  125. package/lib/mjs/cli/ClearUserTimelineSchedule.js +51 -51
  126. package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +1 -1
  127. package/lib/mjs/cli/CreateUser.d.ts +17 -17
  128. package/lib/mjs/cli/CreateUser.js +66 -66
  129. package/lib/mjs/cli/CreateUser.js.map +1 -1
  130. package/lib/mjs/cli/DeleteUser.d.ts +8 -8
  131. package/lib/mjs/cli/DeleteUser.js +37 -37
  132. package/lib/mjs/cli/DeleteUser.js.map +1 -1
  133. package/lib/mjs/cli/FindUser.d.ts +12 -12
  134. package/lib/mjs/cli/FindUser.js +41 -41
  135. package/lib/mjs/cli/FindUser.js.map +1 -1
  136. package/lib/mjs/cli/GrantUserRole.d.ts +8 -8
  137. package/lib/mjs/cli/GrantUserRole.js +41 -41
  138. package/lib/mjs/cli/GrantUserRole.js.map +1 -1
  139. package/lib/mjs/cli/LatestUserEvents.d.ts +6 -6
  140. package/lib/mjs/cli/LatestUserEvents.js +34 -34
  141. package/lib/mjs/cli/LatestUserEvents.js.map +1 -1
  142. package/lib/mjs/cli/RevokeUserRole.d.ts +8 -8
  143. package/lib/mjs/cli/RevokeUserRole.js +40 -40
  144. package/lib/mjs/cli/RevokeUserRole.js.map +1 -1
  145. package/lib/mjs/cli/UnbanUserSchedule.d.ts +8 -8
  146. package/lib/mjs/cli/UnbanUserSchedule.js +51 -51
  147. package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -1
  148. package/lib/mjs/config/rbac.d.ts +115 -115
  149. package/lib/mjs/config/rbac.js +118 -118
  150. package/lib/mjs/decorators/Resource.d.ts +8 -8
  151. package/lib/mjs/decorators/Resource.js +13 -13
  152. package/lib/mjs/events/NewUser.d.ts +12 -12
  153. package/lib/mjs/events/NewUser.js +13 -13
  154. package/lib/mjs/events/NewUser.js.map +1 -1
  155. package/lib/mjs/events/UserActivated.d.ts +5 -5
  156. package/lib/mjs/events/UserActivated.js +21 -21
  157. package/lib/mjs/events/UserActivated.js.map +1 -1
  158. package/lib/mjs/events/UserBanned.d.ts +6 -6
  159. package/lib/mjs/events/UserBanned.js +22 -22
  160. package/lib/mjs/events/UserBanned.js.map +1 -1
  161. package/lib/mjs/events/UserDeactivated.d.ts +5 -5
  162. package/lib/mjs/events/UserDeactivated.js +21 -21
  163. package/lib/mjs/events/UserDeactivated.js.map +1 -1
  164. package/lib/mjs/events/UserDeleted.d.ts +5 -5
  165. package/lib/mjs/events/UserDeleted.js +21 -21
  166. package/lib/mjs/events/UserDeleted.js.map +1 -1
  167. package/lib/mjs/events/UserMetadataAdded.d.ts +5 -5
  168. package/lib/mjs/events/UserMetadataAdded.js +21 -21
  169. package/lib/mjs/events/UserMetadataAdded.js.map +1 -1
  170. package/lib/mjs/events/UserMetadataChanged.d.ts +5 -5
  171. package/lib/mjs/events/UserMetadataChanged.js +21 -21
  172. package/lib/mjs/events/UserMetadataChanged.js.map +1 -1
  173. package/lib/mjs/events/UserMetadataDeleted.d.ts +5 -5
  174. package/lib/mjs/events/UserMetadataDeleted.js +21 -21
  175. package/lib/mjs/events/UserMetadataDeleted.js.map +1 -1
  176. package/lib/mjs/events/UserPasswordChanged.d.ts +5 -5
  177. package/lib/mjs/events/UserPasswordChanged.js +21 -21
  178. package/lib/mjs/events/UserPasswordChanged.js.map +1 -1
  179. package/lib/mjs/events/UserPropertyChanged.d.ts +7 -7
  180. package/lib/mjs/events/UserPropertyChanged.js +13 -13
  181. package/lib/mjs/events/UserPropertyChanged.js.map +1 -1
  182. package/lib/mjs/events/UserRoleGranted.d.ts +6 -6
  183. package/lib/mjs/events/UserRoleGranted.js +22 -22
  184. package/lib/mjs/events/UserRoleGranted.js.map +1 -1
  185. package/lib/mjs/events/UserRoleRevoked.d.ts +6 -6
  186. package/lib/mjs/events/UserRoleRevoked.js +22 -22
  187. package/lib/mjs/events/UserRoleRevoked.js.map +1 -1
  188. package/lib/mjs/events/UserUnbanned.d.ts +5 -5
  189. package/lib/mjs/events/UserUnbanned.js +21 -21
  190. package/lib/mjs/events/UserUnbanned.js.map +1 -1
  191. package/lib/mjs/events/index.d.ts +13 -13
  192. package/lib/mjs/events/index.js +13 -13
  193. package/lib/mjs/index.d.ts +20 -20
  194. package/lib/mjs/index.js +64 -64
  195. package/lib/mjs/index.js.map +1 -1
  196. package/lib/mjs/interfaces.d.ts +259 -259
  197. package/lib/mjs/interfaces.js +37 -37
  198. package/lib/mjs/interfaces.js.map +1 -1
  199. package/lib/mjs/jobs/UnbanUser.d.ts +9 -9
  200. package/lib/mjs/jobs/UnbanUser.js +40 -40
  201. package/lib/mjs/jobs/UnbanUser.js.map +1 -1
  202. package/lib/mjs/middleware.d.ts +5 -5
  203. package/lib/mjs/middleware.js +21 -21
  204. package/lib/mjs/middleware.js.map +1 -1
  205. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
  206. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js +53 -53
  207. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  208. package/lib/mjs/models/User.d.ts +96 -96
  209. package/lib/mjs/models/User.js +225 -225
  210. package/lib/mjs/models/User.js.map +1 -1
  211. package/lib/mjs/models/UserMetadata.d.ts +9 -9
  212. package/lib/mjs/models/UserMetadata.js +29 -29
  213. package/lib/mjs/models/UserMetadata.js.map +1 -1
  214. package/lib/mjs/models/UserTimeline.d.ts +28 -28
  215. package/lib/mjs/models/UserTimeline.js +43 -43
  216. package/lib/mjs/models/UserTimeline.js.map +1 -1
  217. package/lib/mjs/password.d.ts +25 -25
  218. package/lib/mjs/password.js +65 -65
  219. package/lib/mjs/password.js.map +1 -1
  220. package/lib/mjs/session.d.ts +33 -33
  221. package/lib/mjs/session.js +94 -94
  222. package/lib/mjs/session.js.map +1 -1
  223. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  224. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  225. package/package.json +10 -10
@@ -1,116 +1,116 @@
1
- declare const rbac: {
2
- system: {
3
- dirs: {
4
- cli: string[];
5
- };
6
- };
7
- queue: {
8
- routing: {
9
- NewUser: {
10
- connection: string;
11
- };
12
- UserActivated: {
13
- connection: string;
14
- };
15
- UserBanned: {
16
- connection: string;
17
- };
18
- UserDeactivated: {
19
- connection: string;
20
- };
21
- UserDeleted: {
22
- connection: string;
23
- };
24
- UserLoginFailed: {
25
- connection: string;
26
- };
27
- UserMetadataAdded: {
28
- connection: string;
29
- };
30
- UserMetadataChanged: {
31
- connection: string;
32
- };
33
- UserMetadataDeleted: {
34
- connection: string;
35
- };
36
- UserPropertyChanged: {
37
- connection: string;
38
- };
39
- UserUnbanned: {
40
- connection: string;
41
- };
42
- UserPasswordChanged: {
43
- connection: string;
44
- };
45
- UserRoleGranted: {
46
- connection: string;
47
- };
48
- UserRoleRevoked: {
49
- connection: string;
50
- };
51
- };
52
- connections: {
53
- name: string;
54
- service: string;
55
- defaultQueueChannel: string;
56
- defaultTopicChannel: string;
57
- }[];
58
- };
59
- rbac: {
60
- enableGuestAccount: boolean;
61
- timeline: {
62
- schedule: string;
63
- ttl: number;
64
- };
65
- users: {
66
- emailConfimationOnCreation: boolean;
67
- };
68
- roles: {
69
- Name: string;
70
- Description: string;
71
- }[];
72
- grants: {
73
- 'admin.users': {
74
- users: {
75
- 'create:any': string[];
76
- 'read:any': string[];
77
- 'update:any': string[];
78
- 'delete:any': string[];
79
- };
80
- };
81
- user: {
82
- users: {
83
- 'read:own': string[];
84
- 'update:own': string[];
85
- };
86
- };
87
- admin: {
88
- $extend: string[];
89
- };
90
- };
91
- defaultRole: string;
92
- auth: {
93
- service: string;
94
- };
95
- password: {
96
- service: string;
97
- validation: {
98
- service: string;
99
- rule: {
100
- pattern: string;
101
- type: string;
102
- };
103
- };
104
- /**
105
- * Should password expire after some time ?
106
- */
107
- passwordExpirationTime: number;
108
- };
109
- session: {
110
- service: string;
111
- expiration: number;
112
- };
113
- };
114
- };
115
- export default rbac;
1
+ declare const rbac: {
2
+ system: {
3
+ dirs: {
4
+ cli: string[];
5
+ };
6
+ };
7
+ queue: {
8
+ routing: {
9
+ NewUser: {
10
+ connection: string;
11
+ };
12
+ UserActivated: {
13
+ connection: string;
14
+ };
15
+ UserBanned: {
16
+ connection: string;
17
+ };
18
+ UserDeactivated: {
19
+ connection: string;
20
+ };
21
+ UserDeleted: {
22
+ connection: string;
23
+ };
24
+ UserLoginFailed: {
25
+ connection: string;
26
+ };
27
+ UserMetadataAdded: {
28
+ connection: string;
29
+ };
30
+ UserMetadataChanged: {
31
+ connection: string;
32
+ };
33
+ UserMetadataDeleted: {
34
+ connection: string;
35
+ };
36
+ UserPropertyChanged: {
37
+ connection: string;
38
+ };
39
+ UserUnbanned: {
40
+ connection: string;
41
+ };
42
+ UserPasswordChanged: {
43
+ connection: string;
44
+ };
45
+ UserRoleGranted: {
46
+ connection: string;
47
+ };
48
+ UserRoleRevoked: {
49
+ connection: string;
50
+ };
51
+ };
52
+ connections: {
53
+ name: string;
54
+ service: string;
55
+ defaultQueueChannel: string;
56
+ defaultTopicChannel: string;
57
+ }[];
58
+ };
59
+ rbac: {
60
+ enableGuestAccount: boolean;
61
+ timeline: {
62
+ schedule: string;
63
+ ttl: number;
64
+ };
65
+ users: {
66
+ emailConfimationOnCreation: boolean;
67
+ };
68
+ roles: {
69
+ Name: string;
70
+ Description: string;
71
+ }[];
72
+ grants: {
73
+ 'admin.users': {
74
+ users: {
75
+ 'create:any': string[];
76
+ 'read:any': string[];
77
+ 'update:any': string[];
78
+ 'delete:any': string[];
79
+ };
80
+ };
81
+ user: {
82
+ users: {
83
+ 'read:own': string[];
84
+ 'update:own': string[];
85
+ };
86
+ };
87
+ admin: {
88
+ $extend: string[];
89
+ };
90
+ };
91
+ defaultRole: string;
92
+ auth: {
93
+ service: string;
94
+ };
95
+ password: {
96
+ service: string;
97
+ validation: {
98
+ service: string;
99
+ rule: {
100
+ pattern: string;
101
+ type: string;
102
+ };
103
+ };
104
+ /**
105
+ * Should password expire after some time ?
106
+ */
107
+ passwordExpirationTime: number;
108
+ };
109
+ session: {
110
+ service: string;
111
+ expiration: number;
112
+ };
113
+ };
114
+ };
115
+ export default rbac;
116
116
  //# sourceMappingURL=rbac.d.ts.map
@@ -1,119 +1,119 @@
1
- import { join, normalize, resolve } from 'path';
2
- import { DI } from '@spinajs/di';
3
- const isESMMode = DI.get('__esmMode__');
4
- function dir(path) {
5
- return resolve(normalize(join(process.cwd(), path)));
6
- }
7
- const rbac = {
8
- system: {
9
- dirs: {
10
- cli: [dir(`node_modules/@spinajs/cli/${isESMMode ? 'mjs/cli' : 'cjs/cli'}`)],
11
- },
12
- },
13
- queue: {
14
- routing: {
15
- NewUser: { connection: 'rbac-user-empty-queue' },
16
- UserActivated: { connection: 'rbac-user-empty-queue' },
17
- UserBanned: { connection: 'rbac-user-empty-queue' },
18
- UserDeactivated: { connection: 'rbac-user-empty-queue' },
19
- UserDeleted: { connection: 'rbac-user-empty-queue' },
20
- UserLoginFailed: { connection: 'rbac-user-empty-queue' },
21
- UserMetadataAdded: { connection: 'rbac-user-empty-queue' },
22
- UserMetadataChanged: { connection: 'rbac-user-empty-queue' },
23
- UserMetadataDeleted: { connection: 'rbac-user-empty-queue' },
24
- UserPropertyChanged: { connection: 'rbac-user-empty-queue' },
25
- UserUnbanned: { connection: 'rbac-user-empty-queue' },
26
- UserPasswordChanged: { connection: 'rbac-user-empty-queue' },
27
- UserRoleGranted: { connection: 'rbac-user-empty-queue' },
28
- UserRoleRevoked: { connection: 'rbac-user-empty-queue' },
29
- },
30
- // by default all events from rbac module are routed to rbac-user-empty-queue
31
- // and is using empty sink ( no events are sent )
32
- connections: [
33
- {
34
- name: 'rbac-user-empty-queue',
35
- service: 'BlackHoleQueueClient',
36
- defaultQueueChannel: 'rbac-jobs',
37
- defaultTopicChannel: 'rbac-events',
38
- },
39
- ],
40
- },
41
- rbac: {
42
- enableGuestAccount: false,
43
- timeline: {
44
- schedule: '1 0 */1 * *',
45
- ttl: 24 * 60,
46
- },
47
- users: {
48
- // when user is created, should he confirm email
49
- // if false, user is acvite at creation,
50
- // when true, first, user will be sent confirmation email
51
- emailConfimationOnCreation: false,
52
- },
53
- // default roles to manage users & guest account
54
- roles: [
55
- {
56
- Name: 'Admin',
57
- Description: 'Administrator',
58
- },
59
- {
60
- Name: 'User',
61
- Description: 'Simple account without any privlidge',
62
- },
63
- ],
64
- grants: {
65
- 'admin.users': {
66
- users: {
67
- 'create:any': ['*'],
68
- 'read:any': ['*'],
69
- 'update:any': ['*'],
70
- 'delete:any': ['*'],
71
- },
72
- },
73
- user: {
74
- users: {
75
- 'read:own': ['Email', 'Login'],
76
- 'update:own': ['Email', 'Login', 'Password'],
77
- },
78
- },
79
- admin: {
80
- $extend: ['admin.users'],
81
- },
82
- },
83
- defaultRole: 'guest',
84
- auth: {
85
- service: 'SimpleDbAuthProvider',
86
- },
87
- password: {
88
- service: 'BasicPasswordProvider',
89
- validation: {
90
- service: 'BasicPasswordValidationProvider',
91
- rule: {
92
- // UNCOMMENT ONE OF BELOW OR MODIFY
93
- // VALIDATION RULE IS JSON SCHEMA
94
- // Minimum eight characters, at least one letter and one number
95
- pattern: '^(?=.*[A-Za-z])(?=.*d)[A-Za-zd]{8,}$',
96
- // Minimum eight characters, at least one letter, one number and one special character:
97
- // pattern: '^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
98
- // Minimum eight characters, at least one uppercase letter, one lowercase letter and one number
99
- // pattern: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$',
100
- // Minimum eight characters, at least one uppercase letter, one lowercase letter and one number
101
- // pattern: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$',
102
- type: 'string',
103
- },
104
- },
105
- /**
106
- * Should password expire after some time ?
107
- */
108
- passwordExpirationTime: 0,
109
- },
110
- session: {
111
- service: 'MemorySessionStore',
112
- // 2h session expiration time
113
- // time in minutes
114
- expiration: 120,
115
- },
116
- },
117
- };
118
- export default rbac;
1
+ import { join, normalize, resolve } from 'path';
2
+ import { DI } from '@spinajs/di';
3
+ const isESMMode = DI.get('__esmMode__');
4
+ function dir(path) {
5
+ return resolve(normalize(join(process.cwd(), path)));
6
+ }
7
+ const rbac = {
8
+ system: {
9
+ dirs: {
10
+ cli: [dir(`node_modules/@spinajs/cli/${isESMMode ? 'mjs/cli' : 'cjs/cli'}`)],
11
+ },
12
+ },
13
+ queue: {
14
+ routing: {
15
+ NewUser: { connection: 'rbac-user-empty-queue' },
16
+ UserActivated: { connection: 'rbac-user-empty-queue' },
17
+ UserBanned: { connection: 'rbac-user-empty-queue' },
18
+ UserDeactivated: { connection: 'rbac-user-empty-queue' },
19
+ UserDeleted: { connection: 'rbac-user-empty-queue' },
20
+ UserLoginFailed: { connection: 'rbac-user-empty-queue' },
21
+ UserMetadataAdded: { connection: 'rbac-user-empty-queue' },
22
+ UserMetadataChanged: { connection: 'rbac-user-empty-queue' },
23
+ UserMetadataDeleted: { connection: 'rbac-user-empty-queue' },
24
+ UserPropertyChanged: { connection: 'rbac-user-empty-queue' },
25
+ UserUnbanned: { connection: 'rbac-user-empty-queue' },
26
+ UserPasswordChanged: { connection: 'rbac-user-empty-queue' },
27
+ UserRoleGranted: { connection: 'rbac-user-empty-queue' },
28
+ UserRoleRevoked: { connection: 'rbac-user-empty-queue' },
29
+ },
30
+ // by default all events from rbac module are routed to rbac-user-empty-queue
31
+ // and is using empty sink ( no events are sent )
32
+ connections: [
33
+ {
34
+ name: 'rbac-user-empty-queue',
35
+ service: 'BlackHoleQueueClient',
36
+ defaultQueueChannel: 'rbac-jobs',
37
+ defaultTopicChannel: 'rbac-events',
38
+ },
39
+ ],
40
+ },
41
+ rbac: {
42
+ enableGuestAccount: false,
43
+ timeline: {
44
+ schedule: '1 0 */1 * *',
45
+ ttl: 24 * 60,
46
+ },
47
+ users: {
48
+ // when user is created, should he confirm email
49
+ // if false, user is acvite at creation,
50
+ // when true, first, user will be sent confirmation email
51
+ emailConfimationOnCreation: false,
52
+ },
53
+ // default roles to manage users & guest account
54
+ roles: [
55
+ {
56
+ Name: 'Admin',
57
+ Description: 'Administrator',
58
+ },
59
+ {
60
+ Name: 'User',
61
+ Description: 'Simple account without any privlidge',
62
+ },
63
+ ],
64
+ grants: {
65
+ 'admin.users': {
66
+ users: {
67
+ 'create:any': ['*'],
68
+ 'read:any': ['*'],
69
+ 'update:any': ['*'],
70
+ 'delete:any': ['*'],
71
+ },
72
+ },
73
+ user: {
74
+ users: {
75
+ 'read:own': ['Email', 'Login'],
76
+ 'update:own': ['Email', 'Login', 'Password'],
77
+ },
78
+ },
79
+ admin: {
80
+ $extend: ['admin.users'],
81
+ },
82
+ },
83
+ defaultRole: 'guest',
84
+ auth: {
85
+ service: 'SimpleDbAuthProvider',
86
+ },
87
+ password: {
88
+ service: 'BasicPasswordProvider',
89
+ validation: {
90
+ service: 'BasicPasswordValidationProvider',
91
+ rule: {
92
+ // UNCOMMENT ONE OF BELOW OR MODIFY
93
+ // VALIDATION RULE IS JSON SCHEMA
94
+ // Minimum eight characters, at least one letter and one number
95
+ pattern: '^(?=.*[A-Za-z])(?=.*d)[A-Za-zd]{8,}$',
96
+ // Minimum eight characters, at least one letter, one number and one special character:
97
+ // pattern: '^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$',
98
+ // Minimum eight characters, at least one uppercase letter, one lowercase letter and one number
99
+ // pattern: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$',
100
+ // Minimum eight characters, at least one uppercase letter, one lowercase letter and one number
101
+ // pattern: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$',
102
+ type: 'string',
103
+ },
104
+ },
105
+ /**
106
+ * Should password expire after some time ?
107
+ */
108
+ passwordExpirationTime: 0,
109
+ },
110
+ session: {
111
+ service: 'MemorySessionStore',
112
+ // 2h session expiration time
113
+ // time in minutes
114
+ expiration: 120,
115
+ },
116
+ },
117
+ };
118
+ export default rbac;
119
119
  //# sourceMappingURL=rbac.js.map
@@ -1,9 +1,9 @@
1
- /**
2
- * Assign resource name for given model ( RBAC ).
3
- * NOTE: this decorator is optional, if model does not have resource assigned
4
- * model name will be used as default
5
- *
6
- * @param name - table name in database that is referred by this model
7
- */
8
- export declare function OrmResource(resourceName: string): any;
1
+ /**
2
+ * Assign resource name for given model ( RBAC ).
3
+ * NOTE: this decorator is optional, if model does not have resource assigned
4
+ * model name will be used as default
5
+ *
6
+ * @param name - table name in database that is referred by this model
7
+ */
8
+ export declare function OrmResource(resourceName: string): any;
9
9
  //# sourceMappingURL=Resource.d.ts.map
@@ -1,14 +1,14 @@
1
- import { extractDecoratorDescriptor } from '@spinajs/orm';
2
- /**
3
- * Assign resource name for given model ( RBAC ).
4
- * NOTE: this decorator is optional, if model does not have resource assigned
5
- * model name will be used as default
6
- *
7
- * @param name - table name in database that is referred by this model
8
- */
9
- export function OrmResource(resourceName) {
10
- return extractDecoratorDescriptor((model) => {
11
- model.RbacResource = resourceName;
12
- }, false);
13
- }
1
+ import { extractDecoratorDescriptor } from '@spinajs/orm';
2
+ /**
3
+ * Assign resource name for given model ( RBAC ).
4
+ * NOTE: this decorator is optional, if model does not have resource assigned
5
+ * model name will be used as default
6
+ *
7
+ * @param name - table name in database that is referred by this model
8
+ */
9
+ export function OrmResource(resourceName) {
10
+ return extractDecoratorDescriptor((model) => {
11
+ model.RbacResource = resourceName;
12
+ }, false);
13
+ }
14
14
  //# sourceMappingURL=Resource.js.map
@@ -1,13 +1,13 @@
1
- import { QueueEvent } from '@spinajs/queue';
2
- import { DateTime } from 'luxon';
3
- export declare class UserRegisteredMessage extends QueueEvent {
4
- Uuid: string;
5
- Email: string;
6
- Login: string;
7
- Role: string[];
8
- RegisteredAt: DateTime;
9
- IsBanned: boolean;
10
- IsActive: boolean;
11
- Metadata: {};
12
- }
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ import { DateTime } from 'luxon';
3
+ export declare class UserRegisteredMessage extends QueueEvent {
4
+ Uuid: string;
5
+ Email: string;
6
+ Login: string;
7
+ Role: string[];
8
+ RegisteredAt: DateTime;
9
+ IsBanned: boolean;
10
+ IsActive: boolean;
11
+ Metadata: {};
12
+ }
13
13
  //# sourceMappingURL=NewUser.d.ts.map
@@ -1,14 +1,14 @@
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
- import { QueueEvent, Event } from '@spinajs/queue';
8
- let UserRegisteredMessage = class UserRegisteredMessage extends QueueEvent {
9
- };
10
- UserRegisteredMessage = __decorate([
11
- Event()
12
- ], UserRegisteredMessage);
13
- export { UserRegisteredMessage };
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
+ import { QueueEvent, Event } from '@spinajs/queue';
8
+ let UserRegisteredMessage = class UserRegisteredMessage extends QueueEvent {
9
+ };
10
+ UserRegisteredMessage = __decorate([
11
+ Event()
12
+ ], UserRegisteredMessage);
13
+ export { UserRegisteredMessage };
14
14
  //# sourceMappingURL=NewUser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NewUser.js","sourceRoot":"","sources":["../../../src/events/NewUser.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAI5C,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,UAAU;CAgBpD,CAAA;AAhBY,qBAAqB;IADjC,KAAK,EAAE;GACK,qBAAqB,CAgBjC;SAhBY,qBAAqB"}
1
+ {"version":3,"file":"NewUser.js","sourceRoot":"","sources":["../../../src/events/NewUser.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAI5C,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,UAAU;CAgBpD,CAAA;AAhBY,qBAAqB;IADjC,KAAK,EAAE;GACK,qBAAqB,CAgBjC"}
@@ -1,6 +1,6 @@
1
- import { QueueEvent } from '@spinajs/queue';
2
- export declare class UserActivated extends QueueEvent {
3
- UserUUID: string;
4
- constructor(UserUUID: string);
5
- }
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserActivated extends QueueEvent {
3
+ UserUUID: string;
4
+ constructor(UserUUID: string);
5
+ }
6
6
  //# sourceMappingURL=UserActivated.d.ts.map
@@ -1,22 +1,22 @@
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 { QueueEvent, Event } from '@spinajs/queue';
11
- let UserActivated = class UserActivated extends QueueEvent {
12
- constructor(UserUUID) {
13
- super();
14
- this.UserUUID = UserUUID;
15
- }
16
- };
17
- UserActivated = __decorate([
18
- Event(),
19
- __metadata("design:paramtypes", [String])
20
- ], UserActivated);
21
- export { UserActivated };
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 { QueueEvent, Event } from '@spinajs/queue';
11
+ let UserActivated = class UserActivated extends QueueEvent {
12
+ constructor(UserUUID) {
13
+ super();
14
+ this.UserUUID = UserUUID;
15
+ }
16
+ };
17
+ UserActivated = __decorate([
18
+ Event(),
19
+ __metadata("design:paramtypes", [String])
20
+ ], UserActivated);
21
+ export { UserActivated };
22
22
  //# sourceMappingURL=UserActivated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserActivated.js","sourceRoot":"","sources":["../../../src/events/UserActivated.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAC3C,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,aAAa;IADzB,KAAK,EAAE;;GACK,aAAa,CAIzB;SAJY,aAAa"}
1
+ {"version":3,"file":"UserActivated.js","sourceRoot":"","sources":["../../../src/events/UserActivated.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAC3C,YAAmB,QAAgB;QACjC,KAAK,EAAE,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF,CAAA;AAJY,aAAa;IADzB,KAAK,EAAE;;GACK,aAAa,CAIzB"}
@@ -1,7 +1,7 @@
1
- import { QueueEvent } from '@spinajs/queue';
2
- export declare class UserBanned extends QueueEvent {
3
- UserUUID: string;
4
- duration: number;
5
- constructor(UserUUID: string, duration: number);
6
- }
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ export declare class UserBanned extends QueueEvent {
3
+ UserUUID: string;
4
+ duration: number;
5
+ constructor(UserUUID: string, duration: number);
6
+ }
7
7
  //# sourceMappingURL=UserBanned.d.ts.map