@spinajs/rbac 2.0.185 → 2.0.187

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 (321) hide show
  1. package/lib/cjs/actions.d.ts +75 -0
  2. package/lib/cjs/actions.d.ts.map +1 -0
  3. package/lib/cjs/actions.js +266 -0
  4. package/lib/cjs/actions.js.map +1 -0
  5. package/lib/cjs/auth.d.ts +5 -5
  6. package/lib/cjs/auth.d.ts.map +1 -1
  7. package/lib/cjs/auth.js +24 -51
  8. package/lib/cjs/auth.js.map +1 -1
  9. package/lib/cjs/cli/ActivateUser.d.ts.map +1 -1
  10. package/lib/cjs/cli/ActivateUser.js +6 -11
  11. package/lib/cjs/cli/ActivateUser.js.map +1 -1
  12. package/lib/cjs/cli/BanUser.d.ts +1 -3
  13. package/lib/cjs/cli/BanUser.d.ts.map +1 -1
  14. package/lib/cjs/cli/BanUser.js +9 -34
  15. package/lib/cjs/cli/BanUser.js.map +1 -1
  16. package/lib/cjs/cli/ChangeUserPassword.d.ts +0 -5
  17. package/lib/cjs/cli/ChangeUserPassword.d.ts.map +1 -1
  18. package/lib/cjs/cli/ChangeUserPassword.js +8 -29
  19. package/lib/cjs/cli/ChangeUserPassword.js.map +1 -1
  20. package/lib/cjs/cli/CreateUser.d.ts +0 -4
  21. package/lib/cjs/cli/CreateUser.d.ts.map +1 -1
  22. package/lib/cjs/cli/CreateUser.js +6 -37
  23. package/lib/cjs/cli/CreateUser.js.map +1 -1
  24. package/lib/cjs/cli/DeleteUser.d.ts.map +1 -1
  25. package/lib/cjs/cli/DeleteUser.js +13 -6
  26. package/lib/cjs/cli/DeleteUser.js.map +1 -1
  27. package/lib/cjs/cli/FindUser.d.ts +1 -7
  28. package/lib/cjs/cli/FindUser.d.ts.map +1 -1
  29. package/lib/cjs/cli/FindUser.js +8 -18
  30. package/lib/cjs/cli/FindUser.js.map +1 -1
  31. package/lib/cjs/cli/GrantUserRole.d.ts +0 -2
  32. package/lib/cjs/cli/GrantUserRole.d.ts.map +1 -1
  33. package/lib/cjs/cli/GrantUserRole.js +13 -18
  34. package/lib/cjs/cli/GrantUserRole.js.map +1 -1
  35. package/lib/cjs/cli/RevokeUserRole.d.ts +0 -2
  36. package/lib/cjs/cli/RevokeUserRole.d.ts.map +1 -1
  37. package/lib/cjs/cli/RevokeUserRole.js +13 -17
  38. package/lib/cjs/cli/RevokeUserRole.js.map +1 -1
  39. package/lib/cjs/cli/UnbanUserSchedule.d.ts.map +1 -1
  40. package/lib/cjs/cli/UnbanUserSchedule.js +1 -15
  41. package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -1
  42. package/lib/cjs/config/rbac.d.ts +45 -16
  43. package/lib/cjs/config/rbac.d.ts.map +1 -1
  44. package/lib/cjs/config/rbac.js +44 -10
  45. package/lib/cjs/config/rbac.js.map +1 -1
  46. package/lib/cjs/events/UserActivated.d.ts +2 -4
  47. package/lib/cjs/events/UserActivated.d.ts.map +1 -1
  48. package/lib/cjs/events/UserActivated.js +3 -10
  49. package/lib/cjs/events/UserActivated.js.map +1 -1
  50. package/lib/cjs/events/UserBanned.d.ts +2 -5
  51. package/lib/cjs/events/UserBanned.d.ts.map +1 -1
  52. package/lib/cjs/events/UserBanned.js +3 -11
  53. package/lib/cjs/events/UserBanned.js.map +1 -1
  54. package/lib/{mjs/events/NewUser.d.ts → cjs/events/UserCreated.d.ts} +4 -3
  55. package/lib/cjs/events/UserCreated.d.ts.map +1 -0
  56. package/lib/cjs/events/{UserMetadataDeleted.js → UserCreated.js} +10 -10
  57. package/lib/cjs/events/UserCreated.js.map +1 -0
  58. package/lib/cjs/events/UserDeactivated.d.ts +2 -4
  59. package/lib/cjs/events/UserDeactivated.d.ts.map +1 -1
  60. package/lib/cjs/events/UserDeactivated.js +3 -10
  61. package/lib/cjs/events/UserDeactivated.js.map +1 -1
  62. package/lib/cjs/events/UserDeleted.d.ts +2 -4
  63. package/lib/cjs/events/UserDeleted.d.ts.map +1 -1
  64. package/lib/cjs/events/UserDeleted.js +3 -10
  65. package/lib/cjs/events/UserDeleted.js.map +1 -1
  66. package/lib/cjs/events/UserEvent.d.ts +7 -0
  67. package/lib/cjs/events/UserEvent.d.ts.map +1 -0
  68. package/lib/cjs/events/{UserMetadataAdded.js → UserEvent.js} +10 -9
  69. package/lib/cjs/events/UserEvent.js.map +1 -0
  70. package/lib/cjs/events/UserLogged.d.ts +4 -0
  71. package/lib/cjs/events/UserLogged.d.ts.map +1 -0
  72. package/lib/cjs/events/{NewUser.js → UserLogged.js} +7 -6
  73. package/lib/cjs/events/UserLogged.js.map +1 -0
  74. package/lib/cjs/events/UserLoginFailed.d.ts +7 -0
  75. package/lib/cjs/events/UserLoginFailed.d.ts.map +1 -0
  76. package/lib/cjs/events/{UserMetadataChanged.js → UserLoginFailed.js} +12 -10
  77. package/lib/cjs/events/UserLoginFailed.js.map +1 -0
  78. package/lib/cjs/events/UserMetadataChange.d.ts +14 -0
  79. package/lib/cjs/events/UserMetadataChange.d.ts.map +1 -0
  80. package/lib/cjs/events/UserMetadataChange.js +28 -0
  81. package/lib/cjs/events/UserMetadataChange.js.map +1 -0
  82. package/lib/cjs/events/UserPasswordChangeRequest.d.ts +4 -0
  83. package/lib/cjs/events/UserPasswordChangeRequest.d.ts.map +1 -0
  84. package/lib/cjs/events/UserPasswordChangeRequest.js +18 -0
  85. package/lib/cjs/events/UserPasswordChangeRequest.js.map +1 -0
  86. package/lib/cjs/events/UserPasswordChanged.d.ts +2 -4
  87. package/lib/cjs/events/UserPasswordChanged.d.ts.map +1 -1
  88. package/lib/cjs/events/UserPasswordChanged.js +3 -10
  89. package/lib/cjs/events/UserPasswordChanged.js.map +1 -1
  90. package/lib/cjs/events/UserPropertyChanged.d.ts +2 -6
  91. package/lib/cjs/events/UserPropertyChanged.d.ts.map +1 -1
  92. package/lib/cjs/events/UserPropertyChanged.js +6 -5
  93. package/lib/cjs/events/UserPropertyChanged.js.map +1 -1
  94. package/lib/cjs/events/UserRoleGranted.d.ts +5 -4
  95. package/lib/cjs/events/UserRoleGranted.d.ts.map +1 -1
  96. package/lib/cjs/events/UserRoleGranted.js +7 -5
  97. package/lib/cjs/events/UserRoleGranted.js.map +1 -1
  98. package/lib/cjs/events/UserRoleRevoked.d.ts +5 -4
  99. package/lib/cjs/events/UserRoleRevoked.d.ts.map +1 -1
  100. package/lib/cjs/events/UserRoleRevoked.js +7 -5
  101. package/lib/cjs/events/UserRoleRevoked.js.map +1 -1
  102. package/lib/cjs/events/UserUnbanned.d.ts +2 -4
  103. package/lib/cjs/events/UserUnbanned.d.ts.map +1 -1
  104. package/lib/cjs/events/UserUnbanned.js +3 -10
  105. package/lib/cjs/events/UserUnbanned.js.map +1 -1
  106. package/lib/cjs/events/index.d.ts +4 -4
  107. package/lib/cjs/events/index.d.ts.map +1 -1
  108. package/lib/cjs/events/index.js +4 -4
  109. package/lib/cjs/events/index.js.map +1 -1
  110. package/lib/cjs/index.d.ts +1 -1
  111. package/lib/cjs/index.d.ts.map +1 -1
  112. package/lib/cjs/index.js +1 -1
  113. package/lib/cjs/index.js.map +1 -1
  114. package/lib/cjs/interfaces.d.ts +11 -33
  115. package/lib/cjs/interfaces.d.ts.map +1 -1
  116. package/lib/cjs/interfaces.js +4 -4
  117. package/lib/cjs/interfaces.js.map +1 -1
  118. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -1
  119. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +3 -14
  120. package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  121. package/lib/cjs/models/User.d.ts +94 -28
  122. package/lib/cjs/models/User.d.ts.map +1 -1
  123. package/lib/cjs/models/User.js +150 -105
  124. package/lib/cjs/models/User.js.map +1 -1
  125. package/lib/cjs/models/UserMetadata.d.ts +2 -6
  126. package/lib/cjs/models/UserMetadata.d.ts.map +1 -1
  127. package/lib/cjs/models/UserMetadata.js +1 -9
  128. package/lib/cjs/models/UserMetadata.js.map +1 -1
  129. package/lib/cjs/session.d.ts +1 -1
  130. package/lib/cjs/session.d.ts.map +1 -1
  131. package/lib/cjs/session.js +6 -6
  132. package/lib/cjs/session.js.map +1 -1
  133. package/lib/mjs/actions.d.ts +75 -0
  134. package/lib/mjs/actions.d.ts.map +1 -0
  135. package/lib/mjs/actions.js +242 -0
  136. package/lib/mjs/actions.js.map +1 -0
  137. package/lib/mjs/auth.d.ts +5 -5
  138. package/lib/mjs/auth.d.ts.map +1 -1
  139. package/lib/mjs/auth.js +24 -51
  140. package/lib/mjs/auth.js.map +1 -1
  141. package/lib/mjs/cli/ActivateUser.d.ts.map +1 -1
  142. package/lib/mjs/cli/ActivateUser.js +6 -11
  143. package/lib/mjs/cli/ActivateUser.js.map +1 -1
  144. package/lib/mjs/cli/BanUser.d.ts +1 -3
  145. package/lib/mjs/cli/BanUser.d.ts.map +1 -1
  146. package/lib/mjs/cli/BanUser.js +9 -34
  147. package/lib/mjs/cli/BanUser.js.map +1 -1
  148. package/lib/mjs/cli/ChangeUserPassword.d.ts +0 -5
  149. package/lib/mjs/cli/ChangeUserPassword.d.ts.map +1 -1
  150. package/lib/mjs/cli/ChangeUserPassword.js +8 -29
  151. package/lib/mjs/cli/ChangeUserPassword.js.map +1 -1
  152. package/lib/mjs/cli/CreateUser.d.ts +0 -4
  153. package/lib/mjs/cli/CreateUser.d.ts.map +1 -1
  154. package/lib/mjs/cli/CreateUser.js +6 -37
  155. package/lib/mjs/cli/CreateUser.js.map +1 -1
  156. package/lib/mjs/cli/DeleteUser.d.ts.map +1 -1
  157. package/lib/mjs/cli/DeleteUser.js +13 -6
  158. package/lib/mjs/cli/DeleteUser.js.map +1 -1
  159. package/lib/mjs/cli/FindUser.d.ts +1 -7
  160. package/lib/mjs/cli/FindUser.d.ts.map +1 -1
  161. package/lib/mjs/cli/FindUser.js +8 -18
  162. package/lib/mjs/cli/FindUser.js.map +1 -1
  163. package/lib/mjs/cli/GrantUserRole.d.ts +0 -2
  164. package/lib/mjs/cli/GrantUserRole.d.ts.map +1 -1
  165. package/lib/mjs/cli/GrantUserRole.js +13 -15
  166. package/lib/mjs/cli/GrantUserRole.js.map +1 -1
  167. package/lib/mjs/cli/RevokeUserRole.d.ts +0 -2
  168. package/lib/mjs/cli/RevokeUserRole.d.ts.map +1 -1
  169. package/lib/mjs/cli/RevokeUserRole.js +13 -14
  170. package/lib/mjs/cli/RevokeUserRole.js.map +1 -1
  171. package/lib/mjs/cli/UnbanUserSchedule.d.ts.map +1 -1
  172. package/lib/mjs/cli/UnbanUserSchedule.js +1 -15
  173. package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -1
  174. package/lib/mjs/config/rbac.d.ts +45 -16
  175. package/lib/mjs/config/rbac.d.ts.map +1 -1
  176. package/lib/mjs/config/rbac.js +44 -10
  177. package/lib/mjs/config/rbac.js.map +1 -1
  178. package/lib/mjs/events/UserActivated.d.ts +2 -4
  179. package/lib/mjs/events/UserActivated.d.ts.map +1 -1
  180. package/lib/mjs/events/UserActivated.js +4 -11
  181. package/lib/mjs/events/UserActivated.js.map +1 -1
  182. package/lib/mjs/events/UserBanned.d.ts +2 -5
  183. package/lib/mjs/events/UserBanned.d.ts.map +1 -1
  184. package/lib/mjs/events/UserBanned.js +4 -12
  185. package/lib/mjs/events/UserBanned.js.map +1 -1
  186. package/lib/{cjs/events/NewUser.d.ts → mjs/events/UserCreated.d.ts} +4 -3
  187. package/lib/mjs/events/UserCreated.d.ts.map +1 -0
  188. package/lib/mjs/events/{UserMetadataChanged.js → UserCreated.js} +10 -10
  189. package/lib/mjs/events/UserCreated.js.map +1 -0
  190. package/lib/mjs/events/UserDeactivated.d.ts +2 -4
  191. package/lib/mjs/events/UserDeactivated.d.ts.map +1 -1
  192. package/lib/mjs/events/UserDeactivated.js +4 -11
  193. package/lib/mjs/events/UserDeactivated.js.map +1 -1
  194. package/lib/mjs/events/UserDeleted.d.ts +2 -4
  195. package/lib/mjs/events/UserDeleted.d.ts.map +1 -1
  196. package/lib/mjs/events/UserDeleted.js +4 -11
  197. package/lib/mjs/events/UserDeleted.js.map +1 -1
  198. package/lib/mjs/events/UserEvent.d.ts +7 -0
  199. package/lib/mjs/events/UserEvent.d.ts.map +1 -0
  200. package/lib/mjs/events/{UserMetadataAdded.js → UserEvent.js} +9 -8
  201. package/lib/mjs/events/UserEvent.js.map +1 -0
  202. package/lib/mjs/events/UserLogged.d.ts +4 -0
  203. package/lib/mjs/events/UserLogged.d.ts.map +1 -0
  204. package/lib/mjs/events/{NewUser.js → UserLogged.js} +7 -6
  205. package/lib/mjs/events/UserLogged.js.map +1 -0
  206. package/lib/mjs/events/UserLoginFailed.d.ts +7 -0
  207. package/lib/mjs/events/UserLoginFailed.d.ts.map +1 -0
  208. package/lib/mjs/events/{UserMetadataDeleted.js → UserLoginFailed.js} +12 -10
  209. package/lib/mjs/events/UserLoginFailed.js.map +1 -0
  210. package/lib/mjs/events/UserMetadataChange.d.ts +14 -0
  211. package/lib/mjs/events/UserMetadataChange.d.ts.map +1 -0
  212. package/lib/mjs/events/UserMetadataChange.js +25 -0
  213. package/lib/mjs/events/UserMetadataChange.js.map +1 -0
  214. package/lib/mjs/events/UserPasswordChangeRequest.d.ts +4 -0
  215. package/lib/mjs/events/UserPasswordChangeRequest.d.ts.map +1 -0
  216. package/lib/mjs/events/UserPasswordChangeRequest.js +15 -0
  217. package/lib/mjs/events/UserPasswordChangeRequest.js.map +1 -0
  218. package/lib/mjs/events/UserPasswordChanged.d.ts +2 -4
  219. package/lib/mjs/events/UserPasswordChanged.d.ts.map +1 -1
  220. package/lib/mjs/events/UserPasswordChanged.js +4 -11
  221. package/lib/mjs/events/UserPasswordChanged.js.map +1 -1
  222. package/lib/mjs/events/UserPropertyChanged.d.ts +2 -6
  223. package/lib/mjs/events/UserPropertyChanged.d.ts.map +1 -1
  224. package/lib/mjs/events/UserPropertyChanged.js +6 -5
  225. package/lib/mjs/events/UserPropertyChanged.js.map +1 -1
  226. package/lib/mjs/events/UserRoleGranted.d.ts +5 -4
  227. package/lib/mjs/events/UserRoleGranted.d.ts.map +1 -1
  228. package/lib/mjs/events/UserRoleGranted.js +8 -6
  229. package/lib/mjs/events/UserRoleGranted.js.map +1 -1
  230. package/lib/mjs/events/UserRoleRevoked.d.ts +5 -4
  231. package/lib/mjs/events/UserRoleRevoked.d.ts.map +1 -1
  232. package/lib/mjs/events/UserRoleRevoked.js +8 -6
  233. package/lib/mjs/events/UserRoleRevoked.js.map +1 -1
  234. package/lib/mjs/events/UserUnbanned.d.ts +2 -4
  235. package/lib/mjs/events/UserUnbanned.d.ts.map +1 -1
  236. package/lib/mjs/events/UserUnbanned.js +4 -11
  237. package/lib/mjs/events/UserUnbanned.js.map +1 -1
  238. package/lib/mjs/events/index.d.ts +4 -4
  239. package/lib/mjs/events/index.d.ts.map +1 -1
  240. package/lib/mjs/events/index.js +4 -4
  241. package/lib/mjs/events/index.js.map +1 -1
  242. package/lib/mjs/index.d.ts +1 -1
  243. package/lib/mjs/index.d.ts.map +1 -1
  244. package/lib/mjs/index.js +1 -1
  245. package/lib/mjs/index.js.map +1 -1
  246. package/lib/mjs/interfaces.d.ts +11 -33
  247. package/lib/mjs/interfaces.d.ts.map +1 -1
  248. package/lib/mjs/interfaces.js +4 -4
  249. package/lib/mjs/interfaces.js.map +1 -1
  250. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -1
  251. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js +3 -14
  252. package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
  253. package/lib/mjs/models/User.d.ts +94 -28
  254. package/lib/mjs/models/User.d.ts.map +1 -1
  255. package/lib/mjs/models/User.js +150 -105
  256. package/lib/mjs/models/User.js.map +1 -1
  257. package/lib/mjs/models/UserMetadata.d.ts +2 -6
  258. package/lib/mjs/models/UserMetadata.d.ts.map +1 -1
  259. package/lib/mjs/models/UserMetadata.js +2 -10
  260. package/lib/mjs/models/UserMetadata.js.map +1 -1
  261. package/lib/mjs/session.d.ts +1 -1
  262. package/lib/mjs/session.d.ts.map +1 -1
  263. package/lib/mjs/session.js +5 -5
  264. package/lib/mjs/session.js.map +1 -1
  265. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  266. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  267. package/package.json +16 -18
  268. package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts +0 -9
  269. package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts.map +0 -1
  270. package/lib/cjs/cli/ClearUserTimelineSchedule.js +0 -55
  271. package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +0 -1
  272. package/lib/cjs/cli/LatestUserEvents.d.ts +0 -7
  273. package/lib/cjs/cli/LatestUserEvents.d.ts.map +0 -1
  274. package/lib/cjs/cli/LatestUserEvents.js +0 -38
  275. package/lib/cjs/cli/LatestUserEvents.js.map +0 -1
  276. package/lib/cjs/events/NewUser.d.ts.map +0 -1
  277. package/lib/cjs/events/NewUser.js.map +0 -1
  278. package/lib/cjs/events/UserMetadataAdded.d.ts +0 -6
  279. package/lib/cjs/events/UserMetadataAdded.d.ts.map +0 -1
  280. package/lib/cjs/events/UserMetadataAdded.js.map +0 -1
  281. package/lib/cjs/events/UserMetadataChanged.d.ts +0 -6
  282. package/lib/cjs/events/UserMetadataChanged.d.ts.map +0 -1
  283. package/lib/cjs/events/UserMetadataChanged.js.map +0 -1
  284. package/lib/cjs/events/UserMetadataDeleted.d.ts +0 -6
  285. package/lib/cjs/events/UserMetadataDeleted.d.ts.map +0 -1
  286. package/lib/cjs/events/UserMetadataDeleted.js.map +0 -1
  287. package/lib/cjs/jobs/UnbanUser.d.ts +0 -10
  288. package/lib/cjs/jobs/UnbanUser.d.ts.map +0 -1
  289. package/lib/cjs/jobs/UnbanUser.js +0 -44
  290. package/lib/cjs/jobs/UnbanUser.js.map +0 -1
  291. package/lib/cjs/models/UserTimeline.d.ts +0 -29
  292. package/lib/cjs/models/UserTimeline.d.ts.map +0 -1
  293. package/lib/cjs/models/UserTimeline.js +0 -47
  294. package/lib/cjs/models/UserTimeline.js.map +0 -1
  295. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +0 -9
  296. package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts.map +0 -1
  297. package/lib/mjs/cli/ClearUserTimelineSchedule.js +0 -52
  298. package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +0 -1
  299. package/lib/mjs/cli/LatestUserEvents.d.ts +0 -7
  300. package/lib/mjs/cli/LatestUserEvents.d.ts.map +0 -1
  301. package/lib/mjs/cli/LatestUserEvents.js +0 -35
  302. package/lib/mjs/cli/LatestUserEvents.js.map +0 -1
  303. package/lib/mjs/events/NewUser.d.ts.map +0 -1
  304. package/lib/mjs/events/NewUser.js.map +0 -1
  305. package/lib/mjs/events/UserMetadataAdded.d.ts +0 -6
  306. package/lib/mjs/events/UserMetadataAdded.d.ts.map +0 -1
  307. package/lib/mjs/events/UserMetadataAdded.js.map +0 -1
  308. package/lib/mjs/events/UserMetadataChanged.d.ts +0 -6
  309. package/lib/mjs/events/UserMetadataChanged.d.ts.map +0 -1
  310. package/lib/mjs/events/UserMetadataChanged.js.map +0 -1
  311. package/lib/mjs/events/UserMetadataDeleted.d.ts +0 -6
  312. package/lib/mjs/events/UserMetadataDeleted.d.ts.map +0 -1
  313. package/lib/mjs/events/UserMetadataDeleted.js.map +0 -1
  314. package/lib/mjs/jobs/UnbanUser.d.ts +0 -10
  315. package/lib/mjs/jobs/UnbanUser.d.ts.map +0 -1
  316. package/lib/mjs/jobs/UnbanUser.js +0 -41
  317. package/lib/mjs/jobs/UnbanUser.js.map +0 -1
  318. package/lib/mjs/models/UserTimeline.d.ts +0 -29
  319. package/lib/mjs/models/UserTimeline.d.ts.map +0 -1
  320. package/lib/mjs/models/UserTimeline.js +0 -44
  321. package/lib/mjs/models/UserTimeline.js.map +0 -1
@@ -1,28 +1,12 @@
1
1
  import { DateTime } from 'luxon';
2
- import { ModelBase, Relation, OneToManyRelationList, QueryScope, ISelectQueryBuilder } from '@spinajs/orm';
3
- import { Permission } from 'accesscontrol';
2
+ import { ModelBase, QueryScope, ISelectQueryBuilder, MetadataRelation } from '@spinajs/orm';
3
+ import { AccessControl, Permission } from 'accesscontrol';
4
4
  import { UserMetadata } from './UserMetadata.js';
5
- import { UserAction } from './UserTimeline.js';
6
- declare class UserMetadataRelation extends OneToManyRelationList<UserMetadata, User> {
7
- /**
8
- *
9
- * Checks if metadata exists, its DB first, it will only check DB for existence
10
- *
11
- * @param key - key to find
12
- * @returns {true|false}
13
- */
14
- exists(key: string): Promise<boolean>;
15
- /**
16
- *
17
- * Deletes meta from DB
18
- *
19
- * @param key - meta key do delete or regexp
20
- */
21
- delete(key: string): Promise<void>;
22
- get(key: string): Promise<any>;
23
- [index: string]: any;
24
- }
25
5
  export declare class UserQueryScopes implements QueryScope {
6
+ whereUser(this: ISelectQueryBuilder<User[]> & UserQueryScopes, userOrEmail: User | string): ISelectQueryBuilder<User[]> & UserQueryScopes;
7
+ checkIsBanned(this: ISelectQueryBuilder<User[]> & UserQueryScopes): Promise<boolean>;
8
+ checkIsActive(this: ISelectQueryBuilder<User[]> & UserQueryScopes): Promise<boolean>;
9
+ notDeleted(this: ISelectQueryBuilder<User[]> & UserQueryScopes): ISelectQueryBuilder<User[]> & UserQueryScopes;
26
10
  /**
27
11
  *
28
12
  * Fetch users that are not banned, are active & email confirmed, not deleted
@@ -30,7 +14,40 @@ export declare class UserQueryScopes implements QueryScope {
30
14
  */
31
15
  isActiveUser(this: ISelectQueryBuilder<User[]> & UserQueryScopes): ISelectQueryBuilder<User[]> & UserQueryScopes;
32
16
  whereEmail(this: ISelectQueryBuilder<User[]> & UserQueryScopes, email: string): ISelectQueryBuilder<User[]> & UserQueryScopes;
33
- whereLogin(this: ISelectQueryBuilder<User[]> & UserQueryScopes, email: string): ISelectQueryBuilder<User[]> & UserQueryScopes;
17
+ whereLogin(this: ISelectQueryBuilder<User[]> & UserQueryScopes, login: string): ISelectQueryBuilder<User[]> & UserQueryScopes;
18
+ whereUuid(this: ISelectQueryBuilder<User[]> & UserQueryScopes, uuid: string): ISelectQueryBuilder<User[]> & UserQueryScopes;
19
+ /**
20
+ * Tries to get user by ONE OF:
21
+ * - UUID
22
+ * - EMAIL
23
+ * - LOGIN
24
+ * - ID
25
+ *
26
+ * @param identifier - login ,email, uuid or id
27
+ * @returns
28
+ */
29
+ whereAnything(this: ISelectQueryBuilder<User[] | User> & UserQueryScopes, identifier: string | number): ISelectQueryBuilder<User | User[]> & UserQueryScopes;
30
+ }
31
+ /**
32
+ * Common user metadata keys
33
+ */
34
+ export declare enum USER_COMMON_METADATA {
35
+ /** BAN RELATED META KEYS */
36
+ USER_BAN_IS_BANNED = "user:ban:is_banned",
37
+ USER_BAN_START_DATE = "user:ban:start_date",
38
+ USER_BAN_DURATION = "user:ban:duration",
39
+ USER_BAN_REASON = "user:ban:reason",
40
+ /** USER GENERAL INFO */
41
+ USER_AVATAR = "user:avatar",
42
+ USER_PHONE = "user:phone",
43
+ USER_NEWSLETTER_ENABLED = "user:newsletter:enabled",
44
+ /** 2fa token */
45
+ USER_2FA_TOKEN = "user:2fa:token",
46
+ /** Reset password */
47
+ USER_PWD_RESET = "user:pwd:reset",
48
+ USER_PWD_RESET_START_DATE = "user:pwd_reset:start_date",
49
+ USER_PWD_RESET_WAIT_TIME = "user:pwd_reset:wait_time",
50
+ USER_PWD_RESET_TOKEN = "user:pwd_reset:token"
34
51
  }
35
52
  /**
36
53
  * Base model for users used by auth and ACL system
@@ -38,7 +55,13 @@ export declare class UserQueryScopes implements QueryScope {
38
55
  * To add / extend fields simply extend this model and register as default user model in ACL service
39
56
  */
40
57
  export declare class User extends ModelBase {
58
+ /**
59
+ * By default should not return password & id
60
+ * Id - to not expose internal id and predict users id / count
61
+ * Instead id should be replaced with uuid when exposing to end user / app
62
+ */
41
63
  protected _hidden: string[];
64
+ protected _ac: AccessControl;
42
65
  static readonly _queryScopes: UserQueryScopes;
43
66
  constructor(data?: Partial<User>);
44
67
  Id: number;
@@ -52,7 +75,6 @@ export declare class User extends ModelBase {
52
75
  * Displayed name ( for others to see )
53
76
  */
54
77
  Login: string;
55
- IsBanned: boolean;
56
78
  /**
57
79
  * User role
58
80
  */
@@ -72,31 +94,75 @@ export declare class User extends ModelBase {
72
94
  LastLoginAt: DateTime;
73
95
  /**
74
96
  * Account is fully active (eg. passed registration)
97
+ * Do not use it to ban users, active user still can have banned status
75
98
  */
76
99
  IsActive: boolean;
77
100
  /**
78
101
  * User additional information. Can be anything
79
102
  */
80
- Metadata: UserMetadataRelation;
81
- Actions: Relation<UserAction, User>;
103
+ Metadata: MetadataRelation<UserMetadata, User>;
82
104
  get IsGuest(): boolean;
105
+ get IsBanned(): boolean;
83
106
  can(resource: string, permission: string): Permission;
84
107
  /**
85
- * Shorthand for check if user can read any resource
108
+ * Shorthand for check if user can read any of specified resource
86
109
  * @param resource
87
110
  * @returns
88
111
  */
89
112
  canReadAny(resource: string): Permission;
113
+ /**
114
+ * Shortcut for check if user can read own resource
115
+ *
116
+ * @param resource
117
+ * @returns
118
+ */
90
119
  canReadOwn(resource: string): Permission;
120
+ /**
121
+ * Shortcut for check if user can update any resource
122
+ *
123
+ * @param resource
124
+ * @returns
125
+ */
91
126
  canUpdateAny(resource: string): Permission;
127
+ /**
128
+ * Shortcut for check if user can update own resource
129
+ * @param resource
130
+ * @returns
131
+ */
92
132
  canUpdateOwn(resource: string): Permission;
133
+ /**
134
+ * Shortcut for check if user can delete any resource
135
+ * @param resource
136
+ * @returns
137
+ */
93
138
  canDeleteAny(resource: string): Permission;
139
+ /**
140
+ * Shourtcut for check if user can delete own resource
141
+ * @param resource
142
+ * @returns
143
+ */
94
144
  canDeleteOwn(resource: string): Permission;
145
+ /**
146
+ * Shortcut for check if user can create any resource
147
+ * @param resource
148
+ * @returns
149
+ */
95
150
  canCreateAny(resource: string): Permission;
151
+ /**
152
+ * Shourtcut for check if user can create own resource
153
+ * @param resource
154
+ * @returns
155
+ */
96
156
  canCreateOwn(resource: string): Permission;
97
157
  static getByLogin(login: string): Promise<User>;
98
158
  static getByEmail(email: string): Promise<User>;
99
159
  static getByUuid(uuid: string): Promise<User>;
160
+ /**
161
+ * Tries to get user by any identifier
162
+ *
163
+ * @param identifier login, email, id or uuid
164
+ * @returns
165
+ */
166
+ static getByAnything(identifier: string | number): Promise<User>;
100
167
  }
101
- export {};
102
168
  //# sourceMappingURL=User.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAA8D,QAAQ,EAAwB,qBAAqB,EAAuB,UAAU,EAAmB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnO,OAAO,EAAiB,UAAU,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,cAAM,oBAAqB,SAAQ,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC;IAC1E;;;;;;OAMG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM;IAO/B;;;;;OAKG;IACU,MAAM,CAAC,GAAG,EAAE,MAAM;IASlB,GAAG,CAAC,GAAG,EAAE,MAAM;IAoB5B,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAkDD,qBAAa,eAAgB,YAAW,UAAU;IAChD;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,GAAG,eAAe;IAOhE,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,GAAG,eAAe,EAAE,KAAK,EAAE,MAAM;IAM7E,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,GAAG,eAAe,EAAE,KAAK,EAAE,MAAM;CAKrF;AAED;;;;GAIG;AACH,qBAEa,IAAK,SAAQ,SAAS;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAsB;IAEjD,gBAAuB,YAAY,EAAE,eAAe,CAAyB;gBAE1D,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;IAShC,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAErB;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACI,IAAI,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IAEI,SAAS,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IAEI,YAAY,EAAE,QAAQ,CAAC;IAE9B;;OAEG;IAEI,SAAS,EAAE,QAAQ,CAAC;IAGpB,WAAW,EAAE,QAAQ,CAAC;IAE7B;;OAEG;IACI,QAAQ,EAAE,OAAO,CAAC;IAEzB;;OAEG;IAII,QAAQ,EAAE,oBAAoB,CAAC;IAG/B,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAE3C,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU;IAK5D;;;;OAIG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM;IAG3B,UAAU,CAAC,QAAQ,EAAE,MAAM;IAI3B,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,YAAY,CAAC,QAAQ,EAAE,MAAM;WAItB,UAAU,CAAC,KAAK,EAAE,MAAM;WAIxB,UAAU,CAAC,KAAK,EAAE,MAAM;WAIxB,SAAS,CAAC,IAAI,EAAE,MAAM;CAOrC"}
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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"}
@@ -10,99 +10,40 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  var User_1;
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.User = exports.UserQueryScopes = void 0;
13
+ exports.User = exports.USER_COMMON_METADATA = exports.UserQueryScopes = void 0;
14
14
  const luxon_1 = require("luxon");
15
15
  const orm_1 = require("@spinajs/orm");
16
16
  const di_1 = require("@spinajs/di");
17
17
  const UserMetadata_js_1 = require("./UserMetadata.js");
18
- const UserTimeline_js_1 = require("./UserTimeline.js");
19
18
  const uuid_1 = require("uuid");
20
- class UserMetadataRelation extends orm_1.OneToManyRelationList {
21
- /**
22
- *
23
- * Checks if metadata exists, its DB first, it will only check DB for existence
24
- *
25
- * @param key - key to find
26
- * @returns {true|false}
27
- */
28
- async exists(key) {
29
- return await UserMetadata_js_1.UserMetadata.where({
30
- User: this.owner,
31
- Key: key,
32
- }).resultExists();
19
+ const util_1 = require("@spinajs/util");
20
+ const configuration_1 = require("@spinajs/configuration");
21
+ class UserQueryScopes {
22
+ whereUser(userOrEmail) {
23
+ (0, util_1._check_arg)((0, util_1._or)((0, util_1._is_object)((0, util_1._non_nil)()), (0, util_1._is_string)((0, util_1._trim)(), (0, util_1._non_empty)())))(userOrEmail, 'userOrEmail');
24
+ return this.where('Email', userOrEmail instanceof User ? userOrEmail.Email : userOrEmail);
33
25
  }
34
- /**
35
- *
36
- * Deletes meta from DB
37
- *
38
- * @param key - meta key do delete or regexp
39
- */
40
- async delete(key) {
41
- await UserMetadata_js_1.UserMetadata.destroy().where({
42
- Key: key,
43
- User: this.owner.Id,
44
- });
26
+ async checkIsBanned() {
27
+ const banned = await this.clearColumns()
28
+ .count('*', 'BannedCount')
29
+ .setAlias('banned_count')
30
+ .whereExist(UserMetadata_js_1.UserMetadata.query().where(function () {
31
+ this.where('Key', USER_COMMON_METADATA.USER_BAN_IS_BANNED);
32
+ this.where('Value', 'true');
33
+ this.where(new orm_1.RawQuery('user_id = banned_count.Id'));
34
+ }))
35
+ .asRaw();
36
+ return banned[0].BannedCount > 0;
37
+ }
38
+ async checkIsActive() {
39
+ const active = await this.clearColumns().count('*', 'ActiveCount').where('IsActive', true).asRaw();
40
+ return active[0].ActiveCount > 0;
45
41
  }
46
- async get(key) {
47
- const found = this.find((x) => x.Key === key);
48
- if (found) {
49
- return found.Value;
50
- }
51
- return await UserMetadata_js_1.UserMetadata.where({
52
- User: this.owner,
53
- Key: key,
54
- })
55
- .first()
56
- .then((res) => {
57
- if (res) {
58
- return res.Value;
59
- }
60
- return null;
42
+ notDeleted() {
43
+ return this.where({
44
+ DeletedAt: null,
61
45
  });
62
46
  }
63
- }
64
- function UserMetadataRelationFactory(model, desc, container) {
65
- const repository = container.resolve(UserMetadataRelation, [model, desc.TargetModel, desc, []]);
66
- const proxy = {
67
- set: (target, prop, value) => {
68
- if (target[prop]) {
69
- return (target[prop] = value);
70
- }
71
- return (async () => {
72
- const userMeta = new UserMetadata_js_1.UserMetadata();
73
- userMeta.User.Value = model;
74
- userMeta.Key = prop;
75
- userMeta.Value = value;
76
- await UserMetadata_js_1.UserMetadata.insert(userMeta, orm_1.InsertBehaviour.InsertOrUpdate);
77
- })();
78
- },
79
- get: (target, prop) => {
80
- if (target[prop]) {
81
- return target[prop];
82
- }
83
- return (async () => {
84
- // check for metadata entries
85
- const found = target.find((x) => x.Key === prop);
86
- if (found) {
87
- return found.Value;
88
- }
89
- return await UserMetadata_js_1.UserMetadata.where({
90
- User: model,
91
- Key: prop,
92
- })
93
- .first()
94
- .then((res) => {
95
- if (res) {
96
- return res.Value;
97
- }
98
- return null;
99
- });
100
- })();
101
- },
102
- };
103
- return new Proxy(repository, proxy);
104
- }
105
- class UserQueryScopes {
106
47
  /**
107
48
  *
108
49
  * Fetch users that are not banned, are active & email confirmed, not deleted
@@ -115,17 +56,69 @@ class UserQueryScopes {
115
56
  });
116
57
  }
117
58
  whereEmail(email) {
59
+ email = (0, util_1._check_arg)((0, util_1._trim)(), (0, util_1._non_empty)(), (0, util_1._is_email)())(email, 'email');
118
60
  return this.where({
119
61
  Email: email,
120
62
  });
121
63
  }
122
- whereLogin(email) {
64
+ whereLogin(login) {
65
+ login = (0, util_1._check_arg)((0, util_1._trim)(), (0, util_1._non_empty)())(login, 'login');
123
66
  return this.where({
124
- Email: email,
67
+ Login: login,
68
+ });
69
+ }
70
+ whereUuid(uuid) {
71
+ uuid = (0, util_1._check_arg)((0, util_1._trim)(), (0, util_1._is_uuid)())(uuid, 'uuid');
72
+ return this.where({
73
+ Uuid: uuid,
74
+ });
75
+ }
76
+ /**
77
+ * Tries to get user by ONE OF:
78
+ * - UUID
79
+ * - EMAIL
80
+ * - LOGIN
81
+ * - ID
82
+ *
83
+ * @param identifier - login ,email, uuid or id
84
+ * @returns
85
+ */
86
+ whereAnything(identifier) {
87
+ identifier = (0, util_1._check_arg)((0, util_1._or)((0, util_1._is_number)((0, util_1._gt)(0)), (0, util_1._to_int)(), (0, util_1._is_string)((0, util_1._trim)(), (0, util_1._non_empty)())))(identifier, 'identifier');
88
+ return this.when(typeof identifier === 'number', function () {
89
+ this.where('Id', identifier);
90
+ }, function () {
91
+ this.where('Uuid', identifier).orWhere('Email', identifier).orWhere('Login', identifier);
125
92
  });
126
93
  }
127
94
  }
128
95
  exports.UserQueryScopes = UserQueryScopes;
96
+ /**
97
+ * Common user metadata keys
98
+ */
99
+ var USER_COMMON_METADATA;
100
+ (function (USER_COMMON_METADATA) {
101
+ /** BAN RELATED META KEYS */
102
+ USER_COMMON_METADATA["USER_BAN_IS_BANNED"] = "user:ban:is_banned";
103
+ USER_COMMON_METADATA["USER_BAN_START_DATE"] = "user:ban:start_date";
104
+ USER_COMMON_METADATA["USER_BAN_DURATION"] = "user:ban:duration";
105
+ USER_COMMON_METADATA["USER_BAN_REASON"] = "user:ban:reason";
106
+ /** USER GENERAL INFO */
107
+ USER_COMMON_METADATA["USER_AVATAR"] = "user:avatar";
108
+ USER_COMMON_METADATA["USER_PHONE"] = "user:phone";
109
+ USER_COMMON_METADATA["USER_NEWSLETTER_ENABLED"] = "user:newsletter:enabled";
110
+ /** 2fa token */
111
+ USER_COMMON_METADATA["USER_2FA_TOKEN"] = "user:2fa:token";
112
+ /** Reset password */
113
+ // is reset password in progress
114
+ USER_COMMON_METADATA["USER_PWD_RESET"] = "user:pwd:reset";
115
+ // start date of reset password
116
+ USER_COMMON_METADATA["USER_PWD_RESET_START_DATE"] = "user:pwd_reset:start_date";
117
+ // wait time for reset password
118
+ USER_COMMON_METADATA["USER_PWD_RESET_WAIT_TIME"] = "user:pwd_reset:wait_time";
119
+ // reset password token
120
+ USER_COMMON_METADATA["USER_PWD_RESET_TOKEN"] = "user:pwd_reset:token";
121
+ })(USER_COMMON_METADATA || (exports.USER_COMMON_METADATA = USER_COMMON_METADATA = {}));
129
122
  /**
130
123
  * Base model for users used by auth and ACL system
131
124
  *
@@ -134,59 +127,113 @@ exports.UserQueryScopes = UserQueryScopes;
134
127
  let User = User_1 = class User extends orm_1.ModelBase {
135
128
  constructor(data) {
136
129
  super(data);
130
+ /**
131
+ * By default should not return password & id
132
+ * Id - to not expose internal id and predict users id / count
133
+ * Instead id should be replaced with uuid when exposing to end user / app
134
+ */
137
135
  this._hidden = ['Password', 'Id'];
138
- if (this.Uuid === undefined) {
139
- this.Uuid = (0, uuid_1.v4)();
140
- }
136
+ this.Uuid = (0, util_1._check_arg)((0, util_1._default)((0, uuid_1.v4)()))(this.Uuid, 'uuid');
137
+ this.Role = (0, util_1._check_arg)((0, util_1._default)([(0, configuration_1._cfg)('rbac.defaultRole')()]))(this.Role, 'role');
138
+ this._ac = di_1.DI.get('AccessControl');
141
139
  }
142
140
  get IsGuest() {
143
141
  return this.Role.indexOf('guest') !== -1 || this.Role.length === 0;
144
142
  }
143
+ get IsBanned() {
144
+ return this.Metadata[USER_COMMON_METADATA.USER_BAN_IS_BANNED] === true;
145
+ }
145
146
  can(resource, permission) {
146
- const ac = di_1.DI.get('AccessControl');
147
- return ac.can(this.Role)[permission](resource);
147
+ resource = (0, util_1._check_arg)((0, util_1._trim)(), (0, util_1._non_empty)())(resource, 'resource');
148
+ permission = (0, util_1._check_arg)((0, util_1._trim)(), (0, util_1._non_empty)())(permission, 'permission');
149
+ return this._ac.can(this.Role)[permission](resource);
148
150
  }
149
151
  /**
150
- * Shorthand for check if user can read any resource
152
+ * Shorthand for check if user can read any of specified resource
151
153
  * @param resource
152
154
  * @returns
153
155
  */
154
156
  canReadAny(resource) {
155
157
  return this.can(resource, 'readAny');
156
158
  }
159
+ /**
160
+ * Shortcut for check if user can read own resource
161
+ *
162
+ * @param resource
163
+ * @returns
164
+ */
157
165
  canReadOwn(resource) {
158
166
  return this.can(resource, 'readOwn');
159
167
  }
168
+ /**
169
+ * Shortcut for check if user can update any resource
170
+ *
171
+ * @param resource
172
+ * @returns
173
+ */
160
174
  canUpdateAny(resource) {
161
175
  return this.can(resource, 'updateAny');
162
176
  }
177
+ /**
178
+ * Shortcut for check if user can update own resource
179
+ * @param resource
180
+ * @returns
181
+ */
163
182
  canUpdateOwn(resource) {
164
183
  return this.can(resource, 'updateOwn');
165
184
  }
185
+ /**
186
+ * Shortcut for check if user can delete any resource
187
+ * @param resource
188
+ * @returns
189
+ */
166
190
  canDeleteAny(resource) {
167
191
  return this.can(resource, 'deleteAny');
168
192
  }
193
+ /**
194
+ * Shourtcut for check if user can delete own resource
195
+ * @param resource
196
+ * @returns
197
+ */
169
198
  canDeleteOwn(resource) {
170
199
  return this.can(resource, 'deleteOwn');
171
200
  }
201
+ /**
202
+ * Shortcut for check if user can create any resource
203
+ * @param resource
204
+ * @returns
205
+ */
172
206
  canCreateAny(resource) {
173
207
  return this.can(resource, 'createAny');
174
208
  }
209
+ /**
210
+ * Shourtcut for check if user can create own resource
211
+ * @param resource
212
+ * @returns
213
+ */
175
214
  canCreateOwn(resource) {
176
215
  return this.can(resource, 'createOwn');
177
216
  }
178
217
  static getByLogin(login) {
218
+ login = (0, util_1._check_arg)((0, util_1._trim)(), (0, util_1._non_empty)())(login, 'login');
179
219
  return User_1.query().whereLogin(login).first();
180
220
  }
181
221
  static getByEmail(email) {
222
+ email = (0, util_1._check_arg)((0, util_1._trim)(), (0, util_1._non_empty)(), (0, util_1._is_email)())(email, 'email');
182
223
  return User_1.query().whereEmail(email).first();
183
224
  }
184
225
  static getByUuid(uuid) {
185
- return User_1.query()
186
- .where({
187
- Uuid: uuid,
188
- })
189
- .first();
226
+ uuid = (0, util_1._check_arg)((0, util_1._trim)(), (0, util_1._is_uuid)())(uuid, 'uuid');
227
+ return User_1.query().whereUuid(uuid).first();
228
+ }
229
+ /**
230
+ * Tries to get user by any identifier
231
+ *
232
+ * @param identifier login, email, id or uuid
233
+ * @returns
234
+ */
235
+ static getByAnything(identifier) {
236
+ return User_1.query().whereAnything(identifier).first();
190
237
  }
191
238
  };
192
239
  exports.User = User;
@@ -199,6 +246,10 @@ __decorate([
199
246
  (0, orm_1.Uuid)(),
200
247
  __metadata("design:type", String)
201
248
  ], User.prototype, "Uuid", void 0);
249
+ __decorate([
250
+ (0, orm_1.Set)(),
251
+ __metadata("design:type", Array)
252
+ ], User.prototype, "Role", void 0);
202
253
  __decorate([
203
254
  (0, orm_1.CreatedAt)(),
204
255
  __metadata("design:type", luxon_1.DateTime)
@@ -216,15 +267,9 @@ __decorate([
216
267
  __metadata("design:type", luxon_1.DateTime)
217
268
  ], User.prototype, "LastLoginAt", void 0);
218
269
  __decorate([
219
- (0, orm_1.HasMany)(UserMetadata_js_1.UserMetadata, {
220
- factory: UserMetadataRelationFactory,
221
- }),
222
- __metadata("design:type", UserMetadataRelation)
270
+ (0, orm_1.HasMany)(UserMetadata_js_1.UserMetadata),
271
+ __metadata("design:type", orm_1.MetadataRelation)
223
272
  ], User.prototype, "Metadata", void 0);
224
- __decorate([
225
- (0, orm_1.HasMany)(UserTimeline_js_1.UserAction),
226
- __metadata("design:type", orm_1.Relation)
227
- ], User.prototype, "Actions", void 0);
228
273
  exports.User = User = User_1 = __decorate([
229
274
  (0, orm_1.Connection)('default'),
230
275
  (0, orm_1.Model)('users'),
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../src/models/User.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
- import { ModelBase, SingleRelation } from '@spinajs/orm';
1
+ import { MetadataModel, SingleRelation } from '@spinajs/orm';
2
2
  import type { User } from './User.js';
3
- export declare class UserMetadata extends ModelBase {
4
- Id: number;
5
- Key: string;
6
- Type: 'number' | 'float' | 'string' | 'json' | 'boolean' | 'datetime';
7
- Value: any;
3
+ export declare class UserMetadata extends MetadataModel<UserMetadata> {
8
4
  User: SingleRelation<User>;
9
5
  }
10
6
  //# sourceMappingURL=UserMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserMetadata.d.ts","sourceRoot":"","sources":["../../../src/models/UserMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,SAAS,EAAW,cAAc,EAAsB,MAAM,cAAc,CAAC;AAEpH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,qBAEa,YAAa,SAAQ,SAAS;IAElC,EAAE,EAAE,MAAM,CAAC;IAEX,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAGtE,KAAK,EAAE,GAAG,CAAC;IAGX,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"UserMetadata.d.ts","sourceRoot":"","sources":["../../../src/models/UserMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,qBAEa,YAAa,SAAQ,aAAa,CAAC,YAAY,CAAC;IAEpD,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;CACnC"}
@@ -11,17 +11,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.UserMetadata = void 0;
13
13
  const orm_1 = require("@spinajs/orm");
14
- let UserMetadata = class UserMetadata extends orm_1.ModelBase {
14
+ let UserMetadata = class UserMetadata extends orm_1.MetadataModel {
15
15
  };
16
16
  exports.UserMetadata = UserMetadata;
17
- __decorate([
18
- (0, orm_1.Primary)(),
19
- __metadata("design:type", Number)
20
- ], UserMetadata.prototype, "Id", void 0);
21
- __decorate([
22
- (0, orm_1.UniversalConverter)('Type'),
23
- __metadata("design:type", Object)
24
- ], UserMetadata.prototype, "Value", void 0);
25
17
  __decorate([
26
18
  (0, orm_1.BelongsTo)('User'),
27
19
  __metadata("design:type", orm_1.SingleRelation)
@@ -1 +1 @@
1
- {"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../../src/models/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAoH;AAM7G,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,eAAS;CAa1C,CAAA;AAbY,oCAAY;AAEhB;IADN,IAAA,aAAO,GAAE;;wCACQ;AAOX;IADN,IAAA,wBAAkB,EAAC,MAAM,CAAC;;2CACT;AAGX;IADN,IAAA,eAAS,EAAC,MAAM,CAAC;8BACL,oBAAc;0CAAO;uBAZvB,YAAY;IAFxB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,gBAAgB,CAAC;GACX,YAAY,CAaxB"}
1
+ {"version":3,"file":"UserMetadata.js","sourceRoot":"","sources":["../../../src/models/UserMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAA2F;AAMpF,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,mBAA2B;CAG5D,CAAA;AAHY,oCAAY;AAEhB;IADN,IAAA,eAAS,EAAC,MAAM,CAAC;8BACL,oBAAc;0CAAO;uBAFvB,YAAY;IAFxB,IAAA,gBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,WAAK,EAAC,gBAAgB,CAAC;GACX,YAAY,CAGxB"}
@@ -3,7 +3,7 @@ import { SessionProvider, ISession } from './interfaces.js';
3
3
  /**
4
4
  * Session base class
5
5
  */
6
- export declare class Session implements ISession {
6
+ export declare class UserSession implements ISession {
7
7
  protected SessionExpirationTime: number;
8
8
  SessionId: string;
9
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAM5D;;GAEG;AACH,qBACa,OAAQ,YAAW,QAAQ;IAEtC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEjC,SAAS,EAAE,MAAM,CAAY;IAEpC;;OAEG;IACI,UAAU,EAAE,QAAQ,CAAQ;IAE5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IAEvC,QAAQ,EAAE,QAAQ,CAAkB;gBAE/B,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAMvC;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM;CAG/B;AAED;;GAEG;AACH,qBACa,kBAAmB,SAAQ,eAAe,CAAC,QAAQ,CAAC;IAC/D,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAA+B;IAE3D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAYpD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWhF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAM5D;;GAEG;AACH,qBACa,WAAY,YAAW,QAAQ;IAE1C,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEjC,SAAS,EAAE,MAAM,CAAY;IAEpC;;OAEG;IACI,UAAU,EAAE,QAAQ,CAAQ;IAE5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;IAEvC,QAAQ,EAAE,QAAQ,CAAkB;gBAE/B,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAMvC;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM;CAG/B;AAED;;GAEG;AACH,qBACa,kBAAmB,SAAQ,eAAe,CAAC,QAAQ,CAAC;IAC/D,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAA+B;IAE3D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAYpD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWhF"}