@things-factory/auth-base 8.0.5 → 9.0.0-beta.12

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 (493) hide show
  1. package/config/config.development.js +45 -0
  2. package/config/config.production.js +45 -0
  3. package/dist-client/bootstrap.d.ts +1 -1
  4. package/dist-client/bootstrap.js +4 -4
  5. package/dist-client/bootstrap.js.map +1 -1
  6. package/dist-client/directive/privileged.d.ts +1 -1
  7. package/dist-client/directive/privileged.js +1 -1
  8. package/dist-client/directive/privileged.js.map +1 -1
  9. package/dist-client/index.d.ts +4 -3
  10. package/dist-client/index.js +4 -3
  11. package/dist-client/index.js.map +1 -1
  12. package/dist-client/profiled.js +1 -1
  13. package/dist-client/profiled.js.map +1 -1
  14. package/dist-client/reducers/auth.js +1 -1
  15. package/dist-client/reducers/auth.js.map +1 -1
  16. package/dist-client/tsconfig.tsbuildinfo +1 -1
  17. package/dist-client/verify-webauthn.d.ts +13 -0
  18. package/dist-client/verify-webauthn.js +72 -0
  19. package/dist-client/verify-webauthn.js.map +1 -0
  20. package/dist-server/constants/error-code.d.ts +2 -0
  21. package/dist-server/constants/error-code.js +3 -1
  22. package/dist-server/constants/error-code.js.map +1 -1
  23. package/dist-server/controllers/auth.d.ts +5 -5
  24. package/dist-server/controllers/auth.js +5 -5
  25. package/dist-server/controllers/auth.js.map +1 -1
  26. package/dist-server/controllers/change-pwd.js +21 -21
  27. package/dist-server/controllers/change-pwd.js.map +1 -1
  28. package/dist-server/controllers/checkin.js +4 -4
  29. package/dist-server/controllers/checkin.js.map +1 -1
  30. package/dist-server/controllers/delete-user.js +22 -21
  31. package/dist-server/controllers/delete-user.js.map +1 -1
  32. package/dist-server/controllers/invitation.d.ts +2 -1
  33. package/dist-server/controllers/invitation.js +46 -21
  34. package/dist-server/controllers/invitation.js.map +1 -1
  35. package/dist-server/controllers/profile.d.ts +9 -8
  36. package/dist-server/controllers/profile.js +26 -8
  37. package/dist-server/controllers/profile.js.map +1 -1
  38. package/dist-server/controllers/reset-password.js +24 -24
  39. package/dist-server/controllers/reset-password.js.map +1 -1
  40. package/dist-server/controllers/signin.d.ts +5 -2
  41. package/dist-server/controllers/signin.js +41 -25
  42. package/dist-server/controllers/signin.js.map +1 -1
  43. package/dist-server/controllers/signup.d.ts +1 -1
  44. package/dist-server/controllers/signup.js +26 -17
  45. package/dist-server/controllers/signup.js.map +1 -1
  46. package/dist-server/controllers/unlock-user.js +18 -17
  47. package/dist-server/controllers/unlock-user.js.map +1 -1
  48. package/dist-server/controllers/utils/password-rule.js +4 -4
  49. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  50. package/dist-server/controllers/utils/save-invitation-token.d.ts +1 -1
  51. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  52. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  53. package/dist-server/controllers/utils/save-verification-token.d.ts +1 -1
  54. package/dist-server/controllers/utils/save-verification-token.js +3 -3
  55. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  56. package/dist-server/controllers/verification.js +24 -23
  57. package/dist-server/controllers/verification.js.map +1 -1
  58. package/dist-server/errors/auth-error.js +1 -1
  59. package/dist-server/errors/auth-error.js.map +1 -1
  60. package/dist-server/errors/index.d.ts +2 -2
  61. package/dist-server/errors/index.js +2 -2
  62. package/dist-server/errors/index.js.map +1 -1
  63. package/dist-server/errors/user-domain-not-match-error.d.ts +1 -1
  64. package/dist-server/errors/user-domain-not-match-error.js +8 -8
  65. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  66. package/dist-server/index.d.ts +16 -16
  67. package/dist-server/index.js +18 -18
  68. package/dist-server/index.js.map +1 -1
  69. package/dist-server/middlewares/authenticate-401-middleware.js +11 -11
  70. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  71. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +1 -1
  72. package/dist-server/middlewares/domain-authenticate-middleware.js +9 -9
  73. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  74. package/dist-server/middlewares/graphql-authenticate-middleware.js +4 -4
  75. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  76. package/dist-server/middlewares/index.d.ts +5 -5
  77. package/dist-server/middlewares/index.js +18 -18
  78. package/dist-server/middlewares/index.js.map +1 -1
  79. package/dist-server/middlewares/jwt-authenticate-middleware.js +15 -15
  80. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  81. package/dist-server/middlewares/signin-middleware.js +7 -6
  82. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  83. package/dist-server/middlewares/verify-recaptcha-middleware.d.ts +3 -0
  84. package/dist-server/middlewares/verify-recaptcha-middleware.js +95 -0
  85. package/dist-server/middlewares/verify-recaptcha-middleware.js.map +1 -0
  86. package/dist-server/middlewares/webauthn-middleware.js +16 -13
  87. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  88. package/dist-server/migrations/1548206416130-SeedUser.js +8 -7
  89. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  90. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  91. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  92. package/dist-server/migrations/index.js.map +1 -1
  93. package/dist-server/router/auth-checkin-router.js +18 -12
  94. package/dist-server/router/auth-checkin-router.js.map +1 -1
  95. package/dist-server/router/auth-private-process-router.js +26 -21
  96. package/dist-server/router/auth-private-process-router.js.map +1 -1
  97. package/dist-server/router/auth-public-process-router.js +42 -31
  98. package/dist-server/router/auth-public-process-router.js.map +1 -1
  99. package/dist-server/router/auth-signin-router.js +16 -16
  100. package/dist-server/router/auth-signin-router.js.map +1 -1
  101. package/dist-server/router/auth-signup-router.js +13 -9
  102. package/dist-server/router/auth-signup-router.js.map +1 -1
  103. package/dist-server/router/index.d.ts +9 -9
  104. package/dist-server/router/index.js +9 -9
  105. package/dist-server/router/index.js.map +1 -1
  106. package/dist-server/router/oauth2/index.d.ts +2 -2
  107. package/dist-server/router/oauth2/index.js +2 -2
  108. package/dist-server/router/oauth2/index.js.map +1 -1
  109. package/dist-server/router/oauth2/oauth2-authorize-router.js +6 -6
  110. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  111. package/dist-server/router/oauth2/oauth2-router.d.ts +1 -1
  112. package/dist-server/router/oauth2/oauth2-router.js +21 -21
  113. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  114. package/dist-server/router/oauth2/oauth2-server.js +21 -21
  115. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  116. package/dist-server/router/site-root-router.js +4 -4
  117. package/dist-server/router/site-root-router.js.map +1 -1
  118. package/dist-server/router/webauthn-router.js +58 -8
  119. package/dist-server/router/webauthn-router.js.map +1 -1
  120. package/dist-server/routes.js +19 -19
  121. package/dist-server/routes.js.map +1 -1
  122. package/dist-server/service/app-binding/app-binding-mutation.js +4 -4
  123. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  124. package/dist-server/service/app-binding/app-binding-query.d.ts +4 -4
  125. package/dist-server/service/app-binding/app-binding-query.js +22 -22
  126. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  127. package/dist-server/service/app-binding/app-binding-types.d.ts +1 -1
  128. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  129. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  130. package/dist-server/service/app-binding/app-binding.d.ts +2 -2
  131. package/dist-server/service/app-binding/app-binding.js +4 -4
  132. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  133. package/dist-server/service/app-binding/index.d.ts +2 -2
  134. package/dist-server/service/app-binding/index.js +3 -3
  135. package/dist-server/service/app-binding/index.js.map +1 -1
  136. package/dist-server/service/appliance/appliance-mutation.d.ts +2 -2
  137. package/dist-server/service/appliance/appliance-mutation.js +21 -21
  138. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  139. package/dist-server/service/appliance/appliance-query.d.ts +3 -3
  140. package/dist-server/service/appliance/appliance-query.js +17 -17
  141. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  142. package/dist-server/service/appliance/appliance-types.d.ts +1 -1
  143. package/dist-server/service/appliance/appliance-types.js +2 -2
  144. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  145. package/dist-server/service/appliance/appliance.d.ts +1 -1
  146. package/dist-server/service/appliance/appliance.js +8 -8
  147. package/dist-server/service/appliance/appliance.js.map +1 -1
  148. package/dist-server/service/appliance/index.d.ts +3 -3
  149. package/dist-server/service/appliance/index.js +5 -5
  150. package/dist-server/service/appliance/index.js.map +1 -1
  151. package/dist-server/service/application/application-mutation.d.ts +8 -8
  152. package/dist-server/service/application/application-mutation.js +20 -20
  153. package/dist-server/service/application/application-mutation.js.map +1 -1
  154. package/dist-server/service/application/application-query.d.ts +2 -2
  155. package/dist-server/service/application/application-query.js +16 -16
  156. package/dist-server/service/application/application-query.js.map +1 -1
  157. package/dist-server/service/application/application-types.d.ts +1 -1
  158. package/dist-server/service/application/application-types.js +4 -4
  159. package/dist-server/service/application/application-types.js.map +1 -1
  160. package/dist-server/service/application/application.d.ts +1 -1
  161. package/dist-server/service/application/application.js +12 -12
  162. package/dist-server/service/application/application.js.map +1 -1
  163. package/dist-server/service/application/index.d.ts +3 -3
  164. package/dist-server/service/application/index.js +5 -5
  165. package/dist-server/service/application/index.js.map +1 -1
  166. package/dist-server/service/auth-provider/auth-provider-mutation.d.ts +2 -2
  167. package/dist-server/service/auth-provider/auth-provider-mutation.js +20 -20
  168. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  169. package/dist-server/service/auth-provider/auth-provider-query.d.ts +3 -3
  170. package/dist-server/service/auth-provider/auth-provider-query.js +20 -20
  171. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  172. package/dist-server/service/auth-provider/auth-provider-type.d.ts +1 -1
  173. package/dist-server/service/auth-provider/auth-provider-type.js +2 -2
  174. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  175. package/dist-server/service/auth-provider/auth-provider.d.ts +3 -3
  176. package/dist-server/service/auth-provider/auth-provider.js +12 -12
  177. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  178. package/dist-server/service/auth-provider/index.d.ts +3 -3
  179. package/dist-server/service/auth-provider/index.js +5 -5
  180. package/dist-server/service/auth-provider/index.js.map +1 -1
  181. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +1 -1
  182. package/dist-server/service/domain-generator/domain-generator-mutation.js +11 -11
  183. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  184. package/dist-server/service/domain-generator/domain-generator-types.d.ts +1 -1
  185. package/dist-server/service/domain-generator/domain-generator-types.js +3 -3
  186. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  187. package/dist-server/service/domain-generator/index.d.ts +1 -1
  188. package/dist-server/service/domain-generator/index.js +2 -2
  189. package/dist-server/service/domain-generator/index.js.map +1 -1
  190. package/dist-server/service/granted-role/granted-role-mutation.d.ts +3 -3
  191. package/dist-server/service/granted-role/granted-role-mutation.js +17 -17
  192. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  193. package/dist-server/service/granted-role/granted-role-query.d.ts +2 -2
  194. package/dist-server/service/granted-role/granted-role-query.js +13 -13
  195. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  196. package/dist-server/service/granted-role/granted-role.d.ts +1 -1
  197. package/dist-server/service/granted-role/granted-role.js +3 -3
  198. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  199. package/dist-server/service/granted-role/index.d.ts +3 -3
  200. package/dist-server/service/granted-role/index.js +5 -5
  201. package/dist-server/service/granted-role/index.js.map +1 -1
  202. package/dist-server/service/index.d.ts +25 -25
  203. package/dist-server/service/index.js +70 -70
  204. package/dist-server/service/index.js.map +1 -1
  205. package/dist-server/service/invitation/index.d.ts +3 -3
  206. package/dist-server/service/invitation/index.js +5 -5
  207. package/dist-server/service/invitation/index.js.map +1 -1
  208. package/dist-server/service/invitation/invitation-mutation.d.ts +4 -3
  209. package/dist-server/service/invitation/invitation-mutation.js +26 -14
  210. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  211. package/dist-server/service/invitation/invitation-query.d.ts +1 -1
  212. package/dist-server/service/invitation/invitation-query.js +7 -7
  213. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  214. package/dist-server/service/invitation/invitation-types.d.ts +1 -1
  215. package/dist-server/service/invitation/invitation-types.js +2 -2
  216. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  217. package/dist-server/service/invitation/invitation.d.ts +1 -1
  218. package/dist-server/service/invitation/invitation.js +5 -5
  219. package/dist-server/service/invitation/invitation.js.map +1 -1
  220. package/dist-server/service/login-history/index.d.ts +2 -2
  221. package/dist-server/service/login-history/index.js +4 -4
  222. package/dist-server/service/login-history/index.js.map +1 -1
  223. package/dist-server/service/login-history/login-history-query.d.ts +3 -3
  224. package/dist-server/service/login-history/login-history-query.js +11 -11
  225. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  226. package/dist-server/service/login-history/login-history-type.d.ts +1 -1
  227. package/dist-server/service/login-history/login-history-type.js +2 -2
  228. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  229. package/dist-server/service/login-history/login-history.d.ts +1 -1
  230. package/dist-server/service/login-history/login-history.js +4 -4
  231. package/dist-server/service/login-history/login-history.js.map +1 -1
  232. package/dist-server/service/partner/index.d.ts +3 -3
  233. package/dist-server/service/partner/index.js +5 -5
  234. package/dist-server/service/partner/index.js.map +1 -1
  235. package/dist-server/service/partner/partner-mutation.js +8 -8
  236. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  237. package/dist-server/service/partner/partner-query.d.ts +3 -3
  238. package/dist-server/service/partner/partner-query.js +17 -17
  239. package/dist-server/service/partner/partner-query.js.map +1 -1
  240. package/dist-server/service/partner/partner-types.d.ts +1 -1
  241. package/dist-server/service/partner/partner-types.js +2 -2
  242. package/dist-server/service/partner/partner-types.js.map +1 -1
  243. package/dist-server/service/partner/partner.d.ts +1 -1
  244. package/dist-server/service/partner/partner.js +5 -5
  245. package/dist-server/service/partner/partner.js.map +1 -1
  246. package/dist-server/service/password-history/index.d.ts +1 -1
  247. package/dist-server/service/password-history/index.js +2 -2
  248. package/dist-server/service/password-history/index.js.map +1 -1
  249. package/dist-server/service/privilege/index.d.ts +3 -3
  250. package/dist-server/service/privilege/index.js +5 -5
  251. package/dist-server/service/privilege/index.js.map +1 -1
  252. package/dist-server/service/privilege/privilege-directive.js +2 -2
  253. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  254. package/dist-server/service/privilege/privilege-mutation.d.ts +2 -2
  255. package/dist-server/service/privilege/privilege-mutation.js +15 -15
  256. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  257. package/dist-server/service/privilege/privilege-query.d.ts +4 -4
  258. package/dist-server/service/privilege/privilege-query.js +20 -20
  259. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  260. package/dist-server/service/privilege/privilege-types.d.ts +1 -1
  261. package/dist-server/service/privilege/privilege-types.js +2 -2
  262. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  263. package/dist-server/service/privilege/privilege.d.ts +2 -2
  264. package/dist-server/service/privilege/privilege.js +10 -10
  265. package/dist-server/service/privilege/privilege.js.map +1 -1
  266. package/dist-server/service/role/index.d.ts +3 -3
  267. package/dist-server/service/role/index.js +5 -5
  268. package/dist-server/service/role/index.js.map +1 -1
  269. package/dist-server/service/role/role-mutation.d.ts +2 -2
  270. package/dist-server/service/role/role-mutation.js +19 -19
  271. package/dist-server/service/role/role-mutation.js.map +1 -1
  272. package/dist-server/service/role/role-query.d.ts +4 -4
  273. package/dist-server/service/role/role-query.js +29 -29
  274. package/dist-server/service/role/role-query.js.map +1 -1
  275. package/dist-server/service/role/role-types.d.ts +1 -1
  276. package/dist-server/service/role/role-types.js +2 -2
  277. package/dist-server/service/role/role-types.js.map +1 -1
  278. package/dist-server/service/role/role.d.ts +2 -2
  279. package/dist-server/service/role/role.js +12 -12
  280. package/dist-server/service/role/role.js.map +1 -1
  281. package/dist-server/service/user/domain-query.d.ts +1 -1
  282. package/dist-server/service/user/domain-query.js +3 -3
  283. package/dist-server/service/user/domain-query.js.map +1 -1
  284. package/dist-server/service/user/index.d.ts +4 -4
  285. package/dist-server/service/user/index.js +6 -6
  286. package/dist-server/service/user/index.js.map +1 -1
  287. package/dist-server/service/user/user-mutation.d.ts +13 -12
  288. package/dist-server/service/user/user-mutation.js +141 -83
  289. package/dist-server/service/user/user-mutation.js.map +1 -1
  290. package/dist-server/service/user/user-query.d.ts +3 -3
  291. package/dist-server/service/user/user-query.js +21 -21
  292. package/dist-server/service/user/user-query.js.map +1 -1
  293. package/dist-server/service/user/user-types.d.ts +2 -1
  294. package/dist-server/service/user/user-types.js +6 -2
  295. package/dist-server/service/user/user-types.js.map +1 -1
  296. package/dist-server/service/user/user.d.ts +4 -3
  297. package/dist-server/service/user/user.js +80 -54
  298. package/dist-server/service/user/user.js.map +1 -1
  299. package/dist-server/service/users-auth-providers/index.d.ts +1 -1
  300. package/dist-server/service/users-auth-providers/index.js +2 -2
  301. package/dist-server/service/users-auth-providers/index.js.map +1 -1
  302. package/dist-server/service/users-auth-providers/users-auth-providers.d.ts +2 -2
  303. package/dist-server/service/users-auth-providers/users-auth-providers.js +8 -8
  304. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  305. package/dist-server/service/verification-token/index.d.ts +1 -1
  306. package/dist-server/service/verification-token/index.js +2 -2
  307. package/dist-server/service/verification-token/index.js.map +1 -1
  308. package/dist-server/service/web-auth-credential/index.d.ts +1 -1
  309. package/dist-server/service/web-auth-credential/index.js +2 -2
  310. package/dist-server/service/web-auth-credential/index.js.map +1 -1
  311. package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +1 -1
  312. package/dist-server/service/web-auth-credential/web-auth-credential.js +10 -10
  313. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  314. package/dist-server/templates/account-unlock-email.d.ts +2 -1
  315. package/dist-server/templates/account-unlock-email.js +1 -1
  316. package/dist-server/templates/account-unlock-email.js.map +1 -1
  317. package/dist-server/templates/invitation-email.d.ts +2 -1
  318. package/dist-server/templates/invitation-email.js +1 -1
  319. package/dist-server/templates/invitation-email.js.map +1 -1
  320. package/dist-server/templates/verification-email.d.ts +2 -1
  321. package/dist-server/templates/verification-email.js +1 -1
  322. package/dist-server/templates/verification-email.js.map +1 -1
  323. package/dist-server/tsconfig.tsbuildinfo +1 -1
  324. package/dist-server/types.d.ts +1 -1
  325. package/dist-server/types.js.map +1 -1
  326. package/dist-server/utils/access-token-cookie.js +2 -2
  327. package/dist-server/utils/access-token-cookie.js.map +1 -1
  328. package/dist-server/utils/check-permission.d.ts +2 -2
  329. package/dist-server/utils/check-permission.js +3 -3
  330. package/dist-server/utils/check-permission.js.map +1 -1
  331. package/dist-server/utils/check-user-belongs-domain.d.ts +1 -1
  332. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  333. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  334. package/dist-server/utils/check-user-has-role.d.ts +1 -1
  335. package/dist-server/utils/check-user-has-role.js +2 -2
  336. package/dist-server/utils/check-user-has-role.js.map +1 -1
  337. package/dist-server/utils/get-domain-users.d.ts +1 -1
  338. package/dist-server/utils/get-domain-users.js +2 -2
  339. package/dist-server/utils/get-domain-users.js.map +1 -1
  340. package/dist-server/utils/get-user-domains.d.ts +1 -1
  341. package/dist-server/utils/get-user-domains.js +4 -4
  342. package/dist-server/utils/get-user-domains.js.map +1 -1
  343. package/helps/config/recaptcha.ja.md +49 -0
  344. package/helps/config/recaptcha.ko.md +49 -0
  345. package/helps/config/recaptcha.md +49 -0
  346. package/helps/config/recaptcha.ms.md +49 -0
  347. package/helps/config/recaptcha.zh.md +49 -0
  348. package/package.json +10 -9
  349. package/translations/en.json +5 -1
  350. package/translations/ja.json +5 -1
  351. package/translations/ko.json +6 -3
  352. package/translations/ms.json +5 -1
  353. package/translations/zh.json +5 -1
  354. package/client/actions/auth.ts +0 -24
  355. package/client/auth.ts +0 -272
  356. package/client/bootstrap.ts +0 -47
  357. package/client/directive/privileged.ts +0 -28
  358. package/client/index.ts +0 -3
  359. package/client/profiled.ts +0 -83
  360. package/client/reducers/auth.ts +0 -31
  361. package/server/constants/error-code.ts +0 -20
  362. package/server/constants/error-message.ts +0 -0
  363. package/server/constants/max-age.ts +0 -1
  364. package/server/controllers/auth.ts +0 -5
  365. package/server/controllers/change-pwd.ts +0 -99
  366. package/server/controllers/checkin.ts +0 -21
  367. package/server/controllers/delete-user.ts +0 -68
  368. package/server/controllers/invitation.ts +0 -132
  369. package/server/controllers/profile.ts +0 -28
  370. package/server/controllers/reset-password.ts +0 -126
  371. package/server/controllers/signin.ts +0 -79
  372. package/server/controllers/signup.ts +0 -60
  373. package/server/controllers/unlock-user.ts +0 -61
  374. package/server/controllers/utils/make-invitation-token.ts +0 -5
  375. package/server/controllers/utils/make-verification-token.ts +0 -4
  376. package/server/controllers/utils/password-rule.ts +0 -120
  377. package/server/controllers/utils/save-invitation-token.ts +0 -10
  378. package/server/controllers/utils/save-verification-token.ts +0 -12
  379. package/server/controllers/verification.ts +0 -83
  380. package/server/errors/auth-error.ts +0 -24
  381. package/server/errors/index.ts +0 -2
  382. package/server/errors/user-domain-not-match-error.ts +0 -29
  383. package/server/index.ts +0 -37
  384. package/server/middlewares/authenticate-401-middleware.ts +0 -114
  385. package/server/middlewares/domain-authenticate-middleware.ts +0 -78
  386. package/server/middlewares/graphql-authenticate-middleware.ts +0 -13
  387. package/server/middlewares/index.ts +0 -67
  388. package/server/middlewares/jwt-authenticate-middleware.ts +0 -84
  389. package/server/middlewares/signin-middleware.ts +0 -55
  390. package/server/middlewares/webauthn-middleware.ts +0 -127
  391. package/server/migrations/1548206416130-SeedUser.ts +0 -59
  392. package/server/migrations/1566805283882-SeedPrivilege.ts +0 -28
  393. package/server/migrations/index.ts +0 -9
  394. package/server/router/auth-checkin-router.ts +0 -107
  395. package/server/router/auth-private-process-router.ts +0 -107
  396. package/server/router/auth-public-process-router.ts +0 -302
  397. package/server/router/auth-signin-router.ts +0 -65
  398. package/server/router/auth-signup-router.ts +0 -95
  399. package/server/router/index.ts +0 -9
  400. package/server/router/oauth2/index.ts +0 -2
  401. package/server/router/oauth2/oauth2-authorize-router.ts +0 -81
  402. package/server/router/oauth2/oauth2-router.ts +0 -165
  403. package/server/router/oauth2/oauth2-server.ts +0 -262
  404. package/server/router/oauth2/passport-oauth2-client-password.ts +0 -87
  405. package/server/router/oauth2/passport-refresh-token.ts +0 -87
  406. package/server/router/path-base-domain-router.ts +0 -8
  407. package/server/router/site-root-router.ts +0 -48
  408. package/server/router/webauthn-router.ts +0 -87
  409. package/server/routes.ts +0 -80
  410. package/server/service/app-binding/app-binding-mutation.ts +0 -22
  411. package/server/service/app-binding/app-binding-query.ts +0 -92
  412. package/server/service/app-binding/app-binding-types.ts +0 -11
  413. package/server/service/app-binding/app-binding.ts +0 -17
  414. package/server/service/app-binding/index.ts +0 -4
  415. package/server/service/appliance/appliance-mutation.ts +0 -113
  416. package/server/service/appliance/appliance-query.ts +0 -76
  417. package/server/service/appliance/appliance-types.ts +0 -56
  418. package/server/service/appliance/appliance.ts +0 -133
  419. package/server/service/appliance/index.ts +0 -6
  420. package/server/service/application/application-mutation.ts +0 -104
  421. package/server/service/application/application-query.ts +0 -98
  422. package/server/service/application/application-types.ts +0 -76
  423. package/server/service/application/application.ts +0 -216
  424. package/server/service/application/index.ts +0 -6
  425. package/server/service/auth-provider/auth-provider-mutation.ts +0 -159
  426. package/server/service/auth-provider/auth-provider-parameter-spec.ts +0 -24
  427. package/server/service/auth-provider/auth-provider-query.ts +0 -88
  428. package/server/service/auth-provider/auth-provider-type.ts +0 -67
  429. package/server/service/auth-provider/auth-provider.ts +0 -155
  430. package/server/service/auth-provider/index.ts +0 -7
  431. package/server/service/domain-generator/domain-generator-mutation.ts +0 -117
  432. package/server/service/domain-generator/domain-generator-types.ts +0 -46
  433. package/server/service/domain-generator/index.ts +0 -3
  434. package/server/service/granted-role/granted-role-mutation.ts +0 -156
  435. package/server/service/granted-role/granted-role-query.ts +0 -60
  436. package/server/service/granted-role/granted-role.ts +0 -27
  437. package/server/service/granted-role/index.ts +0 -6
  438. package/server/service/index.ts +0 -90
  439. package/server/service/invitation/index.ts +0 -6
  440. package/server/service/invitation/invitation-mutation.ts +0 -63
  441. package/server/service/invitation/invitation-query.ts +0 -33
  442. package/server/service/invitation/invitation-types.ts +0 -11
  443. package/server/service/invitation/invitation.ts +0 -63
  444. package/server/service/login-history/index.ts +0 -5
  445. package/server/service/login-history/login-history-query.ts +0 -51
  446. package/server/service/login-history/login-history-type.ts +0 -12
  447. package/server/service/login-history/login-history.ts +0 -45
  448. package/server/service/partner/index.ts +0 -6
  449. package/server/service/partner/partner-mutation.ts +0 -61
  450. package/server/service/partner/partner-query.ts +0 -102
  451. package/server/service/partner/partner-types.ts +0 -11
  452. package/server/service/partner/partner.ts +0 -57
  453. package/server/service/password-history/index.ts +0 -3
  454. package/server/service/password-history/password-history.ts +0 -16
  455. package/server/service/privilege/index.ts +0 -6
  456. package/server/service/privilege/privilege-directive.ts +0 -77
  457. package/server/service/privilege/privilege-mutation.ts +0 -92
  458. package/server/service/privilege/privilege-query.ts +0 -94
  459. package/server/service/privilege/privilege-types.ts +0 -60
  460. package/server/service/privilege/privilege.ts +0 -102
  461. package/server/service/role/index.ts +0 -6
  462. package/server/service/role/role-mutation.ts +0 -109
  463. package/server/service/role/role-query.ts +0 -155
  464. package/server/service/role/role-types.ts +0 -81
  465. package/server/service/role/role.ts +0 -72
  466. package/server/service/user/domain-query.ts +0 -24
  467. package/server/service/user/index.ts +0 -7
  468. package/server/service/user/user-mutation.ts +0 -413
  469. package/server/service/user/user-query.ts +0 -145
  470. package/server/service/user/user-types.ts +0 -97
  471. package/server/service/user/user.ts +0 -354
  472. package/server/service/users-auth-providers/index.ts +0 -5
  473. package/server/service/users-auth-providers/users-auth-providers.ts +0 -71
  474. package/server/service/verification-token/index.ts +0 -3
  475. package/server/service/verification-token/verification-token.ts +0 -60
  476. package/server/service/web-auth-credential/index.ts +0 -3
  477. package/server/service/web-auth-credential/web-auth-credential.ts +0 -67
  478. package/server/templates/account-unlock-email.ts +0 -65
  479. package/server/templates/invitation-email.ts +0 -66
  480. package/server/templates/reset-password-email.ts +0 -65
  481. package/server/templates/verification-email.ts +0 -66
  482. package/server/types.ts +0 -21
  483. package/server/utils/accepts.ts +0 -11
  484. package/server/utils/access-token-cookie.ts +0 -61
  485. package/server/utils/check-permission.ts +0 -52
  486. package/server/utils/check-user-belongs-domain.ts +0 -19
  487. package/server/utils/check-user-has-role.ts +0 -29
  488. package/server/utils/encrypt-state.ts +0 -22
  489. package/server/utils/get-aes-256-key.ts +0 -13
  490. package/server/utils/get-domain-from-hostname.ts +0 -7
  491. package/server/utils/get-domain-users.ts +0 -38
  492. package/server/utils/get-secret.ts +0 -13
  493. package/server/utils/get-user-domains.ts +0 -112
@@ -1,156 +0,0 @@
1
- import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
- import { EntityManager, In, Not, Repository } from 'typeorm'
3
-
4
- import { Domain, getRepository } from '@things-factory/shell'
5
-
6
- import { Partner } from '../partner/partner'
7
- import { Role } from '../role/role'
8
- import { RolePatch } from '../role/role-types'
9
- import { User } from '../user/user'
10
- import { GrantedRole } from './granted-role'
11
-
12
- @Resolver(GrantedRole)
13
- export class GrantedRoleMutation {
14
- @Directive('@privilege(category: "partner", privilege: "mutation")')
15
- @Directive('@transaction')
16
- @Mutation(returns => Boolean)
17
- async grantRoles(
18
- @Arg('customerId') customerId: string,
19
- @Arg('roles', type => [RolePatch]) roles: RolePatch[],
20
- @Ctx() context: ResolverContext
21
- ): Promise<Boolean> {
22
- const { tx, domain } = context.state
23
- // Check if current domain has partnership with passed `customer`
24
- const customerDomain: Domain = await tx.getRepository(Domain).findOneBy({ id: customerId })
25
- const customer: Partner = await tx.getRepository(Partner).findOne({
26
- where: { domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } }
27
- })
28
-
29
- if (!customer) throw new Error(`Failed to find partnership with customer`)
30
-
31
- // Remove existing granted roles
32
- const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, tx)
33
- if (grantedRoles.length) {
34
- await tx.getRepository(GrantedRole).delete(grantedRoles.map((gr: GrantedRole) => gr.id))
35
- }
36
-
37
- // Insert newly granted roles
38
- await tx.getRepository(Role).findBy({
39
- id: In(roles.map((role: Partial<Role>) => role.id))
40
- })
41
- const newlyGrantedRoles: Partial<GrantedRole>[] = roles.map((role: Role) => {
42
- return {
43
- domain: customerDomain,
44
- role
45
- }
46
- })
47
-
48
- await tx.getRepository(GrantedRole).save(newlyGrantedRoles)
49
-
50
- // If there's someone having role which will be removed (refuse roles)
51
- // user roles should be removed as well
52
- const grantedRoleIds: string[] = roles.map((role: Partial<Role>) => role.id)
53
- const nonGrantedRoles: Role[] = await tx.getRepository(Role).find({
54
- where: { domain: { id: domain.id }, id: Not(In(grantedRoleIds)) }
55
- })
56
-
57
- if (nonGrantedRoles?.length) {
58
- // Find customer's user who has non granted roles already
59
- const nonGrantedRoleIds: string[] = nonGrantedRoles.map((role: Role) => role.id)
60
-
61
- let havingRefusedRoleCustomers: User[] = await getCustomerUsersByRoles(customerDomain, nonGrantedRoles, tx)
62
- havingRefusedRoleCustomers = havingRefusedRoleCustomers.map((customerUser: User) => {
63
- const customerDomains: Domain[] = customerUser.domains
64
- const customerDomainIds: string[] = customerDomains.map((domain: Domain) => domain.id)
65
- if (customerDomainIds.indexOf(domain.id) >= 0) {
66
- // Case for customer user is a member of current domain.
67
- // If user is a member of current domain user can have any roles of the domain even if the roles is not granted
68
- return customerUser
69
- } else {
70
- // Case for customer user is an user of partner domain.
71
- // An user of partner domain only can have granted roles
72
- customerUser.roles = customerUser.roles.filter((role: Role) => nonGrantedRoleIds.indexOf(role.id) < 0)
73
- return customerUser
74
- }
75
- })
76
-
77
- await tx.getRepository(User).save(havingRefusedRoleCustomers)
78
- }
79
- return true
80
- }
81
- }
82
-
83
- export async function getGrantedCustomerUsers(
84
- domain: Domain,
85
- customerDomain: Domain,
86
- trx?: EntityManager
87
- ): Promise<User[]> {
88
- const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, trx)
89
- const roles: Role[] = grantedRoles.map((grantedRole: GrantedRole) => grantedRole.role)
90
- return await getCustomerUsersByRoles(customerDomain, roles, trx)
91
- }
92
-
93
- export async function getCustomerUsersByRoles(
94
- customerDomain: Domain,
95
- roles: Role[],
96
- trx?: EntityManager
97
- ): Promise<User[]> {
98
- if (!roles.length) return []
99
- const userRepo: Repository<User> = trx?.getRepository(User) || getRepository(User)
100
-
101
- const customerUsers: User[] = await userRepo
102
- .createQueryBuilder('USER')
103
- .select('USER.id')
104
- .distinct(true)
105
- .leftJoin('USER.domains', 'U_DOMAIN')
106
- .leftJoin('USER.roles', 'U_ROLE')
107
- .where('U_DOMAIN.id = :customerDomainId', { customerDomainId: customerDomain.id })
108
- .groupBy('USER.id')
109
- .addGroupBy('U_ROLE.id')
110
- .having('U_ROLE.id IN (:...roleIds)', {
111
- roleIds: roles.map((role: Role) => role.id)
112
- })
113
- .getMany()
114
-
115
- return await userRepo.find({
116
- where: {
117
- id: In(customerUsers.map((user: User) => user.id))
118
- },
119
- relations: ['domains', 'roles', 'roles.domain']
120
- })
121
- }
122
-
123
- async function getGrantedRolesToCustomer(
124
- domain: Domain,
125
- customerDomain: Domain,
126
- trx?: EntityManager
127
- ): Promise<GrantedRole[]> {
128
- const grantedRoleRepo: Repository<GrantedRole> = trx?.getRepository(GrantedRole) || getRepository(GrantedRole)
129
- const grantedRoleQueryBuilder = grantedRoleRepo.createQueryBuilder('GRANTED_ROLE')
130
- return await grantedRoleQueryBuilder
131
- .leftJoinAndSelect('GRANTED_ROLE.domain', 'DOMAIN')
132
- .leftJoinAndSelect('GRANTED_ROLE.role', 'ROLE')
133
- .leftJoin('ROLE.domain', 'R_DOMAIN')
134
- .where('R_DOMAIN.id = :domainId', { domainId: domain.id })
135
- .andWhere('DOMAIN.id = :customerDomainId', { customerDomainId: customerDomain.id })
136
- .getMany()
137
- }
138
-
139
- export async function terminateGrantedRoles(
140
- domain: Domain,
141
- customerDomain: Domain,
142
- trx?: EntityManager
143
- ): Promise<void> {
144
- const userRepo: Repository<User> = trx?.getRepository(User) || getRepository(User)
145
- const grantedRoleRepo: Repository<GrantedRole> = trx?.getRepository(GrantedRole) || getRepository(GrantedRole)
146
-
147
- const grantedRoles: GrantedRole[] = await getGrantedRolesToCustomer(domain, customerDomain, trx)
148
- const customerUsers: User[] = await getGrantedCustomerUsers(domain, customerDomain, trx)
149
-
150
- for (let i: number = 0; i < customerUsers.length; i++) {
151
- customerUsers[i].roles = customerUsers[i].roles.filter((role: Role) => role.domain.id !== domain.id)
152
- }
153
-
154
- if (customerUsers?.length) await userRepo.save(customerUsers)
155
- if (grantedRoles?.length) await grantedRoleRepo.delete(grantedRoles.map((grantedRole: GrantedRole) => grantedRole.id))
156
- }
@@ -1,60 +0,0 @@
1
- import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { SelectQueryBuilder } from 'typeorm'
3
-
4
- import { Domain, getRepository } from '@things-factory/shell'
5
-
6
- import { Partner } from '../partner/partner'
7
- import { Role } from '../role/role'
8
- import { GrantedRole } from './granted-role'
9
-
10
- @Resolver(GrantedRole)
11
- export class GrantedRoleQuery {
12
- @Directive('@privilege(category: "user", privilege: "query", domainOwnerGranted: true, superUserGranted: true)')
13
- @Query(returns => [GrantedRole])
14
- async grantedRoles(@Ctx() context: ResolverContext): Promise<GrantedRole[]> {
15
- const { domain } = context.state
16
- return await getRepository(GrantedRole).find({
17
- where: { domain: { id: domain.id } }
18
- })
19
- }
20
-
21
- /**
22
- * @summary The role list that target customer being granted by domain.
23
- *
24
- * @param customerId
25
- * @param context
26
- * @returns
27
- */
28
- @Directive('@privilege(category: "user", privilege: "query", domainOwnerGranted: true)')
29
- @Query(returns => [GrantedRole])
30
- async grantingRoles(@Arg('customerId') customerId: string, @Ctx() context: ResolverContext): Promise<GrantedRole[]> {
31
- const { domain } = context.state
32
- const customerDomain: Domain = await getRepository(Domain).findOneBy({ id: customerId })
33
-
34
- if (!customerDomain) throw new Error(`Failed to find customer by passed customerId (${customerId})`)
35
-
36
- const hasPartnership: boolean = Boolean(
37
- await getRepository(Partner).countBy({ domain: { id: domain.id }, partnerDomain: { id: customerDomain.id } })
38
- )
39
-
40
- if (!hasPartnership) throw new Error(`Company doesn't have partnership with ${customerDomain.name}`)
41
-
42
- const qb: SelectQueryBuilder<GrantedRole> = getRepository(GrantedRole)
43
- .createQueryBuilder('GRANTED_ROLE')
44
- .leftJoin('GRANTED_ROLE.role', 'ROLE')
45
- .where('GRANTED_ROLE.domain_id = :customerId', { customerId })
46
- .andWhere('ROLE.domain_id = :domainId ', { domainId: domain.id })
47
-
48
- return await qb.getMany()
49
- }
50
-
51
- @FieldResolver(type => Role)
52
- async role(@Root() grantedRole: GrantedRole): Promise<Role> {
53
- return await getRepository(Role).findOneBy({ id: grantedRole.roleId })
54
- }
55
-
56
- @FieldResolver(type => Domain)
57
- async domain(@Root() grantedRole: GrantedRole): Promise<Domain> {
58
- return await getRepository(Domain).findOneBy({ id: grantedRole.domainId })
59
- }
60
- }
@@ -1,27 +0,0 @@
1
- import { Domain } from '@things-factory/shell'
2
- import { Role } from '../role/role'
3
- import { ObjectType, Field, ID } from 'type-graphql'
4
- import { Entity, ManyToOne, PrimaryGeneratedColumn, Index, RelationId } from 'typeorm'
5
-
6
- @Entity()
7
- @Index('ix_granted_role_0', (grantedRole: GrantedRole) => [grantedRole.role, grantedRole.domain], { unique: true })
8
- @ObjectType()
9
- export class GrantedRole {
10
- @PrimaryGeneratedColumn('uuid')
11
- @Field(type => ID)
12
- readonly id: string
13
-
14
- @ManyToOne(type => Role)
15
- @Field()
16
- role: Role
17
-
18
- @RelationId((grantedRole: GrantedRole) => grantedRole.role)
19
- roleId: string
20
-
21
- @ManyToOne(type => Domain)
22
- @Field(type => Domain)
23
- domain?: Domain
24
-
25
- @RelationId((grantedRole: GrantedRole) => grantedRole.domain)
26
- domainId: string
27
- }
@@ -1,6 +0,0 @@
1
- import { GrantedRole } from './granted-role'
2
- import { GrantedRoleQuery } from './granted-role-query'
3
- import { GrantedRoleMutation } from './granted-role-mutation'
4
-
5
- export const entities = [GrantedRole]
6
- export const resolvers = [GrantedRoleQuery, GrantedRoleMutation]
@@ -1,90 +0,0 @@
1
- /* IMPORT ENTITIES AND RESOLVERS */
2
- import { entities as UsersAuthProvidersEntities, resolvers as UsersAuthProvidersResolvers } from './users-auth-providers'
3
- import { entities as AuthProviderEntities, resolvers as AuthProviderResolvers } from './auth-provider'
4
- import { resolvers as AppbindingResolver } from './app-binding'
5
- import { entities as ApplianceEntities, resolvers as ApplianceResolvers } from './appliance'
6
- import { entities as ApplicationEntities, resolvers as ApplicationResolvers } from './application'
7
- import { resolvers as DomainGeneratorResolver } from './domain-generator'
8
- import { entities as GrantedRoleEntities, resolvers as GrantedRoleResolver } from './granted-role'
9
- import { entities as InvitationEntities, resolvers as InvitationResolver } from './invitation'
10
- import { entities as LoginHistoryEntities, resolvers as LoginHistoryResolver } from './login-history'
11
- import { entities as PartnerEntities, resolvers as PartnerResolvers } from './partner'
12
- import { entities as PasswordHistoryEntities } from './password-history'
13
- import { entities as PrivilegeEntities, resolvers as PrivilegeResolvers } from './privilege'
14
- import { privilegeDirectiveResolver, privilegeDirectiveTypeDefs } from './privilege/privilege-directive'
15
- import { entities as RoleEntities, resolvers as RoleResolvers } from './role'
16
- import { entities as UserEntities, resolvers as UserResolvers } from './user'
17
- import { entities as VerificationTokenEntities } from './verification-token'
18
- import { entities as WebAuthCredentialEntities } from './web-auth-credential'
19
-
20
- /* EXPORT ENTITY TYPES */
21
- export * from './users-auth-providers/users-auth-providers'
22
- export * from './auth-provider/auth-provider'
23
- export * from './application/application'
24
- export * from './appliance/appliance'
25
- export * from './privilege/privilege'
26
- export * from './role/role'
27
- export * from './user/user'
28
- export * from './partner/partner'
29
- export * from './granted-role/granted-role'
30
- export * from './invitation/invitation'
31
- export * from './app-binding/app-binding'
32
- export * from './password-history/password-history'
33
- export * from './verification-token/verification-token'
34
- export * from './login-history/login-history'
35
- export * from './web-auth-credential/web-auth-credential'
36
-
37
- /* EXPORT TYPES */
38
- export * from './app-binding/app-binding-types'
39
- export * from './appliance/appliance-types'
40
- export * from './application/application-types'
41
- export * from './domain-generator/domain-generator-types'
42
- export * from './invitation/invitation-types'
43
- export * from './partner/partner-types'
44
- export * from './privilege/privilege-types'
45
- export * from './role/role-types'
46
- export * from './user/user-types'
47
-
48
- export const entities = [
49
- /* ENTITIES */
50
- ...UsersAuthProvidersEntities,
51
- ...AuthProviderEntities,
52
- ...ApplicationEntities,
53
- ...ApplianceEntities,
54
- ...PrivilegeEntities,
55
- ...RoleEntities,
56
- ...UserEntities,
57
- ...PartnerEntities,
58
- ...GrantedRoleEntities,
59
- ...InvitationEntities,
60
- ...PasswordHistoryEntities,
61
- ...VerificationTokenEntities,
62
- ...LoginHistoryEntities,
63
- ...WebAuthCredentialEntities
64
- ]
65
-
66
- export const schema = {
67
- typeDefs: {
68
- privilegeDirectiveTypeDefs
69
- },
70
-
71
- resolverClasses: [
72
- /* RESOLVER CLASSES */
73
- ...UsersAuthProvidersResolvers,
74
- ...AuthProviderResolvers,
75
- ...ApplicationResolvers,
76
- ...ApplianceResolvers,
77
- ...PrivilegeResolvers,
78
- ...RoleResolvers,
79
- ...UserResolvers,
80
- ...PartnerResolvers,
81
- ...GrantedRoleResolver,
82
- ...InvitationResolver,
83
- ...AppbindingResolver,
84
- ...DomainGeneratorResolver,
85
- ...LoginHistoryResolver
86
- ],
87
- directives: {
88
- privilege: privilegeDirectiveResolver
89
- }
90
- }
@@ -1,6 +0,0 @@
1
- import { Invitation } from './invitation'
2
- import { InvitationQuery } from './invitation-query'
3
- import { InvitationMutation } from './invitation-mutation'
4
-
5
- export const entities = [Invitation]
6
- export const resolvers = [InvitationQuery, InvitationMutation]
@@ -1,63 +0,0 @@
1
- import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'
2
- import { GraphQLEmailAddress } from 'graphql-scalars'
3
-
4
- import { getRepository } from '@things-factory/shell'
5
-
6
- import { sendInvitationEmail } from '../../controllers/invitation'
7
- import { Invitation } from './invitation'
8
-
9
- @Resolver(Invitation)
10
- export class InvitationMutation {
11
- @Mutation(returns => Boolean)
12
- async cancelInvitation(
13
- @Arg('email', type => GraphQLEmailAddress) email: string,
14
- @Arg('reference') reference: string,
15
- @Arg('type') type: string
16
- ) {
17
- const repository = getRepository(Invitation)
18
-
19
- await repository.delete({
20
- email,
21
- reference,
22
- type
23
- })
24
-
25
- return true
26
- }
27
-
28
- @Mutation(returns => Invitation)
29
- async sendInvitation(
30
- @Arg('email', type => GraphQLEmailAddress) email: string,
31
- @Arg('reference') reference: string,
32
- @Arg('type') type: string,
33
- @Ctx() context: ResolverContext
34
- ) {
35
- const repository = getRepository(Invitation)
36
-
37
- const oldone = await repository.findOneBy({
38
- email,
39
- type,
40
- reference
41
- })
42
-
43
- // TODO send invitation
44
- await sendInvitationEmail({
45
- invitation: {
46
- email,
47
- reference,
48
- type
49
- },
50
- context
51
- })
52
-
53
- // update or create
54
- return await repository.save({
55
- ...oldone, // take only id from oldone for update
56
- email,
57
- reference,
58
- type,
59
- creator: context.state.user,
60
- updater: context.state.user
61
- })
62
- }
63
- }
@@ -1,33 +0,0 @@
1
- import { GraphQLEmailAddress } from 'graphql-scalars'
2
- import { Arg, Query, Resolver } from 'type-graphql'
3
-
4
- import { getRepository } from '@things-factory/shell'
5
-
6
- import { Invitation } from './invitation'
7
- import { InvitationList } from './invitation-types'
8
-
9
- @Resolver(Invitation)
10
- export class InvitationQuery {
11
- @Query(returns => Invitation)
12
- async invitation(
13
- @Arg('email', type => GraphQLEmailAddress) email: string,
14
- @Arg('reference') reference: string,
15
- @Arg('type') type: string
16
- ) {
17
- return await getRepository(Invitation).findOneBy({
18
- email,
19
- reference,
20
- type
21
- })
22
- }
23
-
24
- @Query(returns => InvitationList)
25
- async invitations(@Arg('reference') reference: string, @Arg('type') type: string) {
26
- const [items, total] = await getRepository(Invitation).findAndCountBy({
27
- reference,
28
- type
29
- })
30
-
31
- return { items, total }
32
- }
33
- }
@@ -1,11 +0,0 @@
1
- import { Invitation } from './invitation'
2
- import { ObjectType, Field, Int } from 'type-graphql'
3
-
4
- @ObjectType()
5
- export class InvitationList {
6
- @Field(type => [Invitation], { nullable: true })
7
- items: Invitation[]
8
-
9
- @Field(type => Int, { nullable: true })
10
- total: number
11
- }
@@ -1,63 +0,0 @@
1
- import {
2
- CreateDateColumn,
3
- UpdateDateColumn,
4
- Entity,
5
- Index,
6
- Column,
7
- ManyToOne,
8
- RelationId,
9
- PrimaryGeneratedColumn
10
- } from 'typeorm'
11
- import { ObjectType, Field, ID } from 'type-graphql'
12
- import { GraphQLEmailAddress } from 'graphql-scalars'
13
- import { User } from '../user/user'
14
-
15
- @Entity()
16
- @Index('ix_invitation_0', (invitation: Invitation) => [invitation.email, invitation.reference, invitation.type], {
17
- unique: true
18
- })
19
- @Index('ix_invitation_1', (invitation: Invitation) => [invitation.token], { unique: true })
20
- @ObjectType()
21
- export class Invitation {
22
- @PrimaryGeneratedColumn('uuid')
23
- @Field(type => ID)
24
- readonly id: string
25
-
26
- @Column()
27
- @Field(type => GraphQLEmailAddress)
28
- email: string
29
-
30
- @Column()
31
- @Field()
32
- reference: string // company, bizplace
33
-
34
- @Column()
35
- @Field()
36
- type: string // company, bizplace, .. should think whether this column needs.
37
-
38
- @Column()
39
- @Field()
40
- token: string
41
-
42
- @CreateDateColumn({ nullable: true })
43
- @Field({ nullable: true })
44
- createdAt: Date
45
-
46
- @UpdateDateColumn({ nullable: true })
47
- @Field({ nullable: true })
48
- updatedAt: Date
49
-
50
- @ManyToOne(type => User, { nullable: true })
51
- @Field({ nullable: true })
52
- creator: User
53
-
54
- @RelationId((invitation: Invitation) => invitation.creator)
55
- creatorId: string
56
-
57
- @ManyToOne(type => User, { nullable: true })
58
- @Field({ nullable: true })
59
- updater: User
60
-
61
- @RelationId((invitation: Invitation) => invitation.updater)
62
- updaterId: string
63
- }
@@ -1,5 +0,0 @@
1
- import { LoginHistory } from './login-history'
2
- import { LoginHistoryQuery } from './login-history-query'
3
-
4
- export const entities = [LoginHistory]
5
- export const resolvers = [LoginHistoryQuery]
@@ -1,51 +0,0 @@
1
- import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
-
3
- import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
4
-
5
- import { User } from '../user/user'
6
- import { LoginHistory } from './login-history'
7
- import { LoginHistoryList } from './login-history-type'
8
-
9
- @Resolver(LoginHistory)
10
- export class LoginHistoryQuery {
11
- @Query(returns => LoginHistoryList, { description: 'To fetch multiple LoginHistories' })
12
- async loginHistories(
13
- @Args(type => ListParam) params: ListParam,
14
- @Ctx() context: ResolverContext
15
- ): Promise<LoginHistoryList> {
16
- const { domain } = context.state
17
-
18
- const queryBuilder = getQueryBuilderFromListParams({
19
- domain,
20
- params,
21
- repository: await getRepository(LoginHistory)
22
- })
23
-
24
- const [items, total] = await queryBuilder.getManyAndCount()
25
- return { items, total }
26
- }
27
-
28
- @Query(returns => [LoginHistory])
29
- async myLoginHistories(@Arg('limit') limit: number, @Ctx() context: ResolverContext): Promise<LoginHistory[]> {
30
- const user: User = context.state.user
31
- if (!user) {
32
- throw new Error('No user specified')
33
- }
34
-
35
- return await getRepository(LoginHistory).find({
36
- where: { accessUser: { id: user.id } },
37
- take: limit || 10,
38
- order: { accessedAt: 'DESC' }
39
- })
40
- }
41
-
42
- @FieldResolver()
43
- async accessDomain(@Root() loginHistory: LoginHistory) {
44
- return await getRepository(Domain).findOneBy({ id: loginHistory.accessDomainId })
45
- }
46
-
47
- @FieldResolver()
48
- async accessUser(@Root() loginHistory: LoginHistory) {
49
- return await getRepository(User).findOneBy({ id: loginHistory.accessUserId })
50
- }
51
- }
@@ -1,12 +0,0 @@
1
- import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
2
-
3
- import { LoginHistory } from './login-history'
4
-
5
- @ObjectType()
6
- export class LoginHistoryList {
7
- @Field(type => [LoginHistory])
8
- items: LoginHistory[]
9
-
10
- @Field(type => Int)
11
- total: number
12
- }
@@ -1,45 +0,0 @@
1
- import { Field, ID, ObjectType } from 'type-graphql'
2
- import { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'
3
-
4
- import { Domain, getRepository } from '@things-factory/shell'
5
-
6
- import { User } from '../user/user'
7
-
8
- @Entity()
9
- @Index('ix_login_history_0', (loginHistory: LoginHistory) => [loginHistory.accessDomain, loginHistory.accessUser])
10
- @ObjectType()
11
- export class LoginHistory {
12
- @PrimaryGeneratedColumn('uuid')
13
- @Field(type => ID)
14
- readonly id: string
15
-
16
- @ManyToOne(type => Domain)
17
- @Field(type => Domain)
18
- accessDomain?: Domain
19
-
20
- @RelationId((loginHistory: LoginHistory) => loginHistory.accessDomain)
21
- accessDomainId: string
22
-
23
- @ManyToOne(type => User)
24
- @Field(type => User)
25
- accessUser: User
26
-
27
- @RelationId((loginHistory: LoginHistory) => loginHistory.accessUser)
28
- accessUserId: string
29
-
30
- @Column({ nullable: true })
31
- @Field({ nullable: true })
32
- accessorIp: string
33
-
34
- @CreateDateColumn()
35
- @Field({ nullable: true })
36
- accessedAt: Date
37
-
38
- static async stamp(accessDomain: Partial<Domain>, accessUser: User, accessorIp: string): Promise<void> {
39
- await getRepository(LoginHistory).save({
40
- accessDomain,
41
- accessUser,
42
- accessorIp
43
- })
44
- }
45
- }
@@ -1,6 +0,0 @@
1
- import { Partner } from './partner'
2
- import { PartnerQuery } from './partner-query'
3
- import { PartnerMutation } from './partner-mutation'
4
-
5
- export const entities = [Partner]
6
- export const resolvers = [PartnerQuery, PartnerMutation]