@things-factory/auth-base 5.0.7 → 6.0.0-alpha.0

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 (411) hide show
  1. package/client/actions/auth.ts +23 -0
  2. package/client/{auth.js → auth.ts} +66 -59
  3. package/client/{bootstrap.js → bootstrap.ts} +5 -4
  4. package/client/index.ts +1 -0
  5. package/client/reducers/{auth.js → auth.ts} +1 -1
  6. package/config/config.development.js +2 -1
  7. package/dist-client/actions/auth.d.ts +8 -0
  8. package/dist-client/actions/auth.js +15 -0
  9. package/dist-client/actions/auth.js.map +1 -0
  10. package/dist-client/auth.d.ts +34 -0
  11. package/dist-client/auth.js +209 -0
  12. package/dist-client/auth.js.map +1 -0
  13. package/dist-client/bootstrap.d.ts +1 -0
  14. package/dist-client/bootstrap.js +34 -0
  15. package/dist-client/bootstrap.js.map +1 -0
  16. package/dist-client/index.d.ts +1 -0
  17. package/dist-client/index.js +2 -0
  18. package/dist-client/index.js.map +1 -0
  19. package/dist-client/reducers/auth.d.ts +14 -0
  20. package/dist-client/reducers/auth.js +19 -0
  21. package/dist-client/reducers/auth.js.map +1 -0
  22. package/dist-client/tsconfig.tsbuildinfo +1 -0
  23. package/dist-server/constants/error-code.d.ts +17 -0
  24. package/dist-server/constants/error-code.js.map +1 -1
  25. package/dist-server/constants/error-message.d.ts +0 -0
  26. package/dist-server/constants/error-message.js.map +1 -1
  27. package/dist-server/constants/max-age.d.ts +1 -0
  28. package/dist-server/constants/max-age.js.map +1 -1
  29. package/dist-server/controllers/auth.d.ts +5 -0
  30. package/dist-server/controllers/auth.js +6 -18
  31. package/dist-server/controllers/auth.js.map +1 -1
  32. package/dist-server/controllers/change-pwd.d.ts +1 -0
  33. package/dist-server/controllers/change-pwd.js +11 -12
  34. package/dist-server/controllers/change-pwd.js.map +1 -1
  35. package/dist-server/controllers/checkin.d.ts +4 -0
  36. package/dist-server/controllers/checkin.js +3 -3
  37. package/dist-server/controllers/checkin.js.map +1 -1
  38. package/dist-server/controllers/delete-user.d.ts +3 -0
  39. package/dist-server/controllers/delete-user.js.map +1 -1
  40. package/dist-server/controllers/invitation.d.ts +11 -0
  41. package/dist-server/controllers/invitation.js +14 -20
  42. package/dist-server/controllers/invitation.js.map +1 -1
  43. package/dist-server/controllers/profile.d.ts +26 -0
  44. package/dist-server/controllers/profile.js +4 -4
  45. package/dist-server/controllers/profile.js.map +1 -1
  46. package/dist-server/controllers/reset-password.d.ts +5 -0
  47. package/dist-server/controllers/reset-password.js +14 -16
  48. package/dist-server/controllers/reset-password.js.map +1 -1
  49. package/dist-server/controllers/signin.d.ts +6 -0
  50. package/dist-server/controllers/signin.js +4 -3
  51. package/dist-server/controllers/signin.js.map +1 -1
  52. package/dist-server/controllers/signup.d.ts +8 -0
  53. package/dist-server/controllers/signup.js +13 -9
  54. package/dist-server/controllers/signup.js.map +1 -1
  55. package/dist-server/controllers/unlock-user.d.ts +5 -0
  56. package/dist-server/controllers/unlock-user.js +6 -6
  57. package/dist-server/controllers/unlock-user.js.map +1 -1
  58. package/dist-server/controllers/utils/make-invitation-token.d.ts +1 -0
  59. package/dist-server/controllers/utils/make-invitation-token.js +2 -4
  60. package/dist-server/controllers/utils/make-invitation-token.js.map +1 -1
  61. package/dist-server/controllers/utils/make-verification-token.d.ts +1 -0
  62. package/dist-server/controllers/utils/make-verification-token.js +2 -4
  63. package/dist-server/controllers/utils/make-verification-token.js.map +1 -1
  64. package/dist-server/controllers/utils/password-rule.d.ts +14 -0
  65. package/dist-server/controllers/utils/password-rule.js +2 -5
  66. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  67. package/dist-server/controllers/utils/save-invitation-token.d.ts +5 -0
  68. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  69. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  70. package/dist-server/controllers/utils/save-verification-token.d.ts +6 -0
  71. package/dist-server/controllers/utils/save-verification-token.js +2 -2
  72. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  73. package/dist-server/controllers/verification.d.ts +6 -0
  74. package/dist-server/controllers/verification.js +8 -8
  75. package/dist-server/controllers/verification.js.map +1 -1
  76. package/dist-server/errors/auth-error.d.ts +11 -0
  77. package/dist-server/errors/auth-error.js +2 -24
  78. package/dist-server/errors/auth-error.js.map +1 -1
  79. package/dist-server/errors/index.d.ts +2 -0
  80. package/dist-server/errors/index.js +3 -16
  81. package/dist-server/errors/index.js.map +1 -1
  82. package/dist-server/errors/user-domain-not-match-error.d.ts +9 -0
  83. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  84. package/dist-server/index.d.ts +13 -0
  85. package/dist-server/index.js +13 -25
  86. package/dist-server/index.js.map +1 -1
  87. package/dist-server/middlewares/authenticate-401-middleware.d.ts +1 -0
  88. package/dist-server/middlewares/authenticate-401-middleware.js +12 -20
  89. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  90. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +11 -0
  91. package/dist-server/middlewares/domain-authenticate-middleware.js +8 -8
  92. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  93. package/dist-server/middlewares/graphql-authenticate-middleware.d.ts +1 -0
  94. package/dist-server/middlewares/graphql-authenticate-middleware.js +1 -3
  95. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  96. package/dist-server/middlewares/index.d.ts +5 -0
  97. package/dist-server/middlewares/index.js +6 -24
  98. package/dist-server/middlewares/index.js.map +1 -1
  99. package/dist-server/middlewares/jwt-authenticate-middleware.d.ts +1 -0
  100. package/dist-server/middlewares/jwt-authenticate-middleware.js +5 -11
  101. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  102. package/dist-server/middlewares/signin-middleware.d.ts +1 -0
  103. package/dist-server/middlewares/signin-middleware.js +2 -6
  104. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  105. package/dist-server/migrations/1548206416130-SeedUser.d.ts +5 -0
  106. package/dist-server/migrations/1548206416130-SeedUser.js +4 -5
  107. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  108. package/dist-server/migrations/1566805283882-SeedPrivilege.d.ts +5 -0
  109. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  110. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  111. package/dist-server/migrations/index.d.ts +1 -0
  112. package/dist-server/migrations/index.js.map +1 -1
  113. package/dist-server/router/auth-checkin-router.d.ts +1 -0
  114. package/dist-server/router/auth-checkin-router.js +3 -8
  115. package/dist-server/router/auth-checkin-router.js.map +1 -1
  116. package/dist-server/router/auth-private-process-router.d.ts +1 -0
  117. package/dist-server/router/auth-private-process-router.js +16 -21
  118. package/dist-server/router/auth-private-process-router.js.map +1 -1
  119. package/dist-server/router/auth-public-process-router.d.ts +1 -0
  120. package/dist-server/router/auth-public-process-router.js +6 -25
  121. package/dist-server/router/auth-public-process-router.js.map +1 -1
  122. package/dist-server/router/auth-signin-router.d.ts +1 -0
  123. package/dist-server/router/auth-signin-router.js +2 -7
  124. package/dist-server/router/auth-signin-router.js.map +1 -1
  125. package/dist-server/router/auth-signup-router.d.ts +1 -0
  126. package/dist-server/router/auth-signup-router.js +34 -40
  127. package/dist-server/router/auth-signup-router.js.map +1 -1
  128. package/dist-server/router/index.d.ts +8 -0
  129. package/dist-server/router/index.js +9 -22
  130. package/dist-server/router/index.js.map +1 -1
  131. package/dist-server/router/oauth2/index.d.ts +2 -0
  132. package/dist-server/router/oauth2/index.js +3 -16
  133. package/dist-server/router/oauth2/index.js.map +1 -1
  134. package/dist-server/router/oauth2/oauth2-authorize-router.d.ts +1 -0
  135. package/dist-server/router/oauth2/oauth2-authorize-router.js +4 -11
  136. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  137. package/dist-server/router/oauth2/oauth2-router.d.ts +9 -0
  138. package/dist-server/router/oauth2/oauth2-router.js +11 -17
  139. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  140. package/dist-server/router/oauth2/oauth2-server.d.ts +5 -0
  141. package/dist-server/router/oauth2/oauth2-server.js +25 -35
  142. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  143. package/dist-server/router/oauth2/passport-oauth2-client-password.d.ts +7 -0
  144. package/dist-server/router/oauth2/passport-oauth2-client-password.js +3 -5
  145. package/dist-server/router/oauth2/passport-oauth2-client-password.js.map +1 -1
  146. package/dist-server/router/oauth2/passport-refresh-token.d.ts +7 -0
  147. package/dist-server/router/oauth2/passport-refresh-token.js +3 -5
  148. package/dist-server/router/oauth2/passport-refresh-token.js.map +1 -1
  149. package/dist-server/router/path-base-domain-router.d.ts +1 -0
  150. package/dist-server/router/path-base-domain-router.js +2 -6
  151. package/dist-server/router/path-base-domain-router.js.map +1 -1
  152. package/dist-server/router/site-root-router.d.ts +1 -0
  153. package/dist-server/router/site-root-router.js +4 -13
  154. package/dist-server/router/site-root-router.js.map +1 -1
  155. package/dist-server/routes.d.ts +1 -0
  156. package/dist-server/routes.js +2 -9
  157. package/dist-server/routes.js.map +1 -1
  158. package/dist-server/service/app-binding/app-binding-mutation.d.ts +3 -0
  159. package/dist-server/service/app-binding/app-binding-mutation.js +11 -24
  160. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  161. package/dist-server/service/app-binding/app-binding-query.d.ts +14 -0
  162. package/dist-server/service/app-binding/app-binding-query.js +51 -60
  163. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  164. package/dist-server/service/app-binding/app-binding-types.d.ts +5 -0
  165. package/dist-server/service/app-binding/app-binding-types.js +6 -14
  166. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  167. package/dist-server/service/app-binding/app-binding.d.ts +7 -0
  168. package/dist-server/service/app-binding/app-binding.js +8 -16
  169. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  170. package/dist-server/service/app-binding/index.d.ts +3 -0
  171. package/dist-server/service/app-binding/index.js.map +1 -1
  172. package/dist-server/service/appliance/appliance-mutation.d.ts +8 -0
  173. package/dist-server/service/appliance/appliance-mutation.js +40 -53
  174. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  175. package/dist-server/service/appliance/appliance-query.d.ts +11 -0
  176. package/dist-server/service/appliance/appliance-query.js +35 -48
  177. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  178. package/dist-server/service/appliance/appliance-types.d.ts +22 -0
  179. package/dist-server/service/appliance/appliance-types.js +34 -42
  180. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  181. package/dist-server/service/appliance/appliance.d.ts +22 -0
  182. package/dist-server/service/appliance/appliance.js +35 -47
  183. package/dist-server/service/appliance/appliance.js.map +1 -1
  184. package/dist-server/service/appliance/index.d.ts +5 -0
  185. package/dist-server/service/appliance/index.js.map +1 -1
  186. package/dist-server/service/application/application-mutation.d.ts +66 -0
  187. package/dist-server/service/application/application-mutation.js +47 -61
  188. package/dist-server/service/application/application-mutation.js.map +1 -1
  189. package/dist-server/service/application/application-query.d.ts +16 -0
  190. package/dist-server/service/application/application-query.js +54 -67
  191. package/dist-server/service/application/application-query.js.map +1 -1
  192. package/dist-server/service/application/application-types.d.ts +27 -0
  193. package/dist-server/service/application/application-types.js +41 -49
  194. package/dist-server/service/application/application-types.js.map +1 -1
  195. package/dist-server/service/application/application.d.ts +35 -0
  196. package/dist-server/service/application/application.js +42 -54
  197. package/dist-server/service/application/application.js.map +1 -1
  198. package/dist-server/service/application/index.d.ts +5 -0
  199. package/dist-server/service/application/index.js.map +1 -1
  200. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +6 -0
  201. package/dist-server/service/domain-generator/domain-generator-mutation.js +21 -32
  202. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  203. package/dist-server/service/domain-generator/domain-generator-types.d.ts +19 -0
  204. package/dist-server/service/domain-generator/domain-generator-types.js +26 -35
  205. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  206. package/dist-server/service/domain-generator/index.d.ts +2 -0
  207. package/dist-server/service/domain-generator/index.js.map +1 -1
  208. package/dist-server/service/granted-role/granted-role-mutation.d.ts +11 -0
  209. package/dist-server/service/granted-role/granted-role-mutation.js +23 -29
  210. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  211. package/dist-server/service/granted-role/granted-role-query.d.ts +16 -0
  212. package/dist-server/service/granted-role/granted-role-query.js +31 -43
  213. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  214. package/dist-server/service/granted-role/granted-role.d.ts +9 -0
  215. package/dist-server/service/granted-role/granted-role.js +12 -21
  216. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  217. package/dist-server/service/granted-role/index.d.ts +5 -0
  218. package/dist-server/service/granted-role/index.js.map +1 -1
  219. package/dist-server/service/index.d.ts +31 -0
  220. package/dist-server/service/index.js +22 -35
  221. package/dist-server/service/index.js.map +1 -1
  222. package/dist-server/service/invitation/index.d.ts +5 -0
  223. package/dist-server/service/invitation/index.js.map +1 -1
  224. package/dist-server/service/invitation/invitation-mutation.d.ts +17 -0
  225. package/dist-server/service/invitation/invitation-mutation.js +26 -37
  226. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  227. package/dist-server/service/invitation/invitation-query.d.ts +8 -0
  228. package/dist-server/service/invitation/invitation-query.js +19 -30
  229. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  230. package/dist-server/service/invitation/invitation-types.d.ts +5 -0
  231. package/dist-server/service/invitation/invitation-types.js +6 -14
  232. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  233. package/dist-server/service/invitation/invitation.d.ts +14 -0
  234. package/dist-server/service/invitation/invitation.js +24 -32
  235. package/dist-server/service/invitation/invitation.js.map +1 -1
  236. package/dist-server/service/login-history/index.d.ts +4 -0
  237. package/dist-server/service/login-history/index.js.map +1 -1
  238. package/dist-server/service/login-history/login-history-query.d.ts +8 -0
  239. package/dist-server/service/login-history/login-history-query.js +27 -40
  240. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  241. package/dist-server/service/login-history/login-history.d.ts +12 -0
  242. package/dist-server/service/login-history/login-history.js +29 -38
  243. package/dist-server/service/login-history/login-history.js.map +1 -1
  244. package/dist-server/service/partner/index.d.ts +5 -0
  245. package/dist-server/service/partner/index.js.map +1 -1
  246. package/dist-server/service/partner/partner-mutation.d.ts +4 -0
  247. package/dist-server/service/partner/partner-mutation.js +20 -32
  248. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  249. package/dist-server/service/partner/partner-query.d.ts +14 -0
  250. package/dist-server/service/partner/partner-query.js +53 -66
  251. package/dist-server/service/partner/partner-query.js.map +1 -1
  252. package/dist-server/service/partner/partner-types.d.ts +5 -0
  253. package/dist-server/service/partner/partner-types.js +6 -14
  254. package/dist-server/service/partner/partner-types.js.map +1 -1
  255. package/dist-server/service/partner/partner.d.ts +15 -0
  256. package/dist-server/service/partner/partner.js +24 -33
  257. package/dist-server/service/partner/partner.js.map +1 -1
  258. package/dist-server/service/password-history/index.d.ts +2 -0
  259. package/dist-server/service/password-history/index.js.map +1 -1
  260. package/dist-server/service/password-history/password-history.d.ts +4 -0
  261. package/dist-server/service/password-history/password-history.js +6 -14
  262. package/dist-server/service/password-history/password-history.js.map +1 -1
  263. package/dist-server/service/privilege/index.d.ts +5 -0
  264. package/dist-server/service/privilege/index.js.map +1 -1
  265. package/dist-server/service/privilege/privilege-directive.d.ts +3 -0
  266. package/dist-server/service/privilege/privilege-directive.js +4 -7
  267. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  268. package/dist-server/service/privilege/privilege-mutation.d.ts +7 -0
  269. package/dist-server/service/privilege/privilege-mutation.js +32 -42
  270. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  271. package/dist-server/service/privilege/privilege-query.d.ts +13 -0
  272. package/dist-server/service/privilege/privilege-query.js +41 -53
  273. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  274. package/dist-server/service/privilege/privilege-types.d.ts +25 -0
  275. package/dist-server/service/privilege/privilege-types.js +35 -43
  276. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  277. package/dist-server/service/privilege/privilege.d.ts +15 -0
  278. package/dist-server/service/privilege/privilege.js +24 -32
  279. package/dist-server/service/privilege/privilege.js.map +1 -1
  280. package/dist-server/service/role/index.d.ts +5 -0
  281. package/dist-server/service/role/index.js.map +1 -1
  282. package/dist-server/service/role/role-mutation.d.ts +8 -0
  283. package/dist-server/service/role/role-mutation.js +40 -49
  284. package/dist-server/service/role/role-mutation.js.map +1 -1
  285. package/dist-server/service/role/role-query.d.ts +18 -0
  286. package/dist-server/service/role/role-query.js +73 -84
  287. package/dist-server/service/role/role-query.js.map +1 -1
  288. package/dist-server/service/role/role-types.d.ts +33 -0
  289. package/dist-server/service/role/role-types.js +48 -56
  290. package/dist-server/service/role/role-types.js.map +1 -1
  291. package/dist-server/service/role/role.d.ts +18 -0
  292. package/dist-server/service/role/role.js +28 -37
  293. package/dist-server/service/role/role.js.map +1 -1
  294. package/dist-server/service/user/index.d.ts +5 -0
  295. package/dist-server/service/user/index.js.map +1 -1
  296. package/dist-server/service/user/user-mutation.d.ts +28 -0
  297. package/dist-server/service/user/user-mutation.js +89 -93
  298. package/dist-server/service/user/user-mutation.js.map +1 -1
  299. package/dist-server/service/user/user-query.d.ts +16 -0
  300. package/dist-server/service/user/user-query.js +73 -82
  301. package/dist-server/service/user/user-query.js.map +1 -1
  302. package/dist-server/service/user/user-types.d.ts +26 -0
  303. package/dist-server/service/user/user-types.js +40 -48
  304. package/dist-server/service/user/user-types.js.map +1 -1
  305. package/dist-server/service/user/user.d.ts +39 -0
  306. package/dist-server/service/user/user.js +53 -63
  307. package/dist-server/service/user/user.js.map +1 -1
  308. package/dist-server/service/verification-token/index.d.ts +2 -0
  309. package/dist-server/service/verification-token/index.js.map +1 -1
  310. package/dist-server/service/verification-token/verification-token.d.ts +14 -0
  311. package/dist-server/service/verification-token/verification-token.js +14 -22
  312. package/dist-server/service/verification-token/verification-token.js.map +1 -1
  313. package/dist-server/templates/account-unlock-email.d.ts +4 -0
  314. package/dist-server/templates/account-unlock-email.js.map +1 -1
  315. package/dist-server/templates/invitation-email.d.ts +4 -0
  316. package/dist-server/templates/invitation-email.js.map +1 -1
  317. package/dist-server/templates/reset-password-email.d.ts +4 -0
  318. package/dist-server/templates/reset-password-email.js.map +1 -1
  319. package/dist-server/templates/verification-email.d.ts +4 -0
  320. package/dist-server/templates/verification-email.js.map +1 -1
  321. package/dist-server/tsconfig.tsbuildinfo +1 -0
  322. package/dist-server/types.d.ts +17 -0
  323. package/dist-server/types.js +3 -0
  324. package/dist-server/types.js.map +1 -0
  325. package/dist-server/utils/accepts.d.ts +1 -0
  326. package/dist-server/utils/accepts.js.map +1 -1
  327. package/dist-server/utils/access-token-cookie.d.ts +3 -0
  328. package/dist-server/utils/access-token-cookie.js.map +1 -1
  329. package/dist-server/utils/check-user-belongs-domain.d.ts +10 -0
  330. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  331. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  332. package/dist-server/utils/get-domain-from-hostname.d.ts +1 -0
  333. package/dist-server/utils/get-domain-from-hostname.js.map +1 -1
  334. package/dist-server/utils/get-domain-users.d.ts +5 -0
  335. package/dist-server/utils/get-domain-users.js +2 -3
  336. package/dist-server/utils/get-domain-users.js.map +1 -1
  337. package/dist-server/utils/get-secret.d.ts +1 -0
  338. package/dist-server/utils/get-secret.js.map +1 -1
  339. package/dist-server/utils/get-user-domains.d.ts +5 -0
  340. package/dist-server/utils/get-user-domains.js +7 -5
  341. package/dist-server/utils/get-user-domains.js.map +1 -1
  342. package/package.json +15 -13
  343. package/server/controllers/auth.ts +1 -0
  344. package/server/controllers/change-pwd.ts +12 -15
  345. package/server/controllers/checkin.ts +3 -3
  346. package/server/controllers/invitation.ts +10 -16
  347. package/server/controllers/profile.ts +4 -3
  348. package/server/controllers/reset-password.ts +13 -14
  349. package/server/controllers/signin.ts +4 -2
  350. package/server/controllers/signup.ts +13 -8
  351. package/server/controllers/unlock-user.ts +5 -3
  352. package/server/controllers/utils/password-rule.ts +0 -1
  353. package/server/controllers/utils/save-invitation-token.ts +2 -1
  354. package/server/controllers/utils/save-verification-token.ts +2 -1
  355. package/server/controllers/verification.ts +6 -4
  356. package/server/errors/auth-error.ts +3 -0
  357. package/server/errors/user-domain-not-match-error.ts +3 -0
  358. package/server/index.ts +3 -1
  359. package/server/middlewares/authenticate-401-middleware.ts +15 -11
  360. package/server/middlewares/domain-authenticate-middleware.ts +11 -12
  361. package/server/middlewares/graphql-authenticate-middleware.ts +1 -5
  362. package/server/middlewares/index.ts +0 -4
  363. package/server/middlewares/jwt-authenticate-middleware.ts +4 -9
  364. package/server/middlewares/signin-middleware.ts +6 -5
  365. package/server/migrations/1548206416130-SeedUser.ts +3 -3
  366. package/server/migrations/1566805283882-SeedPrivilege.ts +2 -1
  367. package/server/router/auth-checkin-router.ts +5 -7
  368. package/server/router/auth-private-process-router.ts +16 -18
  369. package/server/router/auth-public-process-router.ts +6 -37
  370. package/server/router/auth-signin-router.ts +1 -5
  371. package/server/router/auth-signup-router.ts +40 -47
  372. package/server/router/oauth2/oauth2-authorize-router.ts +4 -10
  373. package/server/router/oauth2/oauth2-router.ts +4 -11
  374. package/server/router/oauth2/oauth2-server.ts +19 -34
  375. package/server/router/path-base-domain-router.ts +0 -4
  376. package/server/router/site-root-router.ts +4 -11
  377. package/server/routes.ts +8 -13
  378. package/server/service/app-binding/app-binding-mutation.ts +6 -8
  379. package/server/service/app-binding/app-binding-query.ts +15 -14
  380. package/server/service/appliance/appliance-mutation.ts +14 -13
  381. package/server/service/appliance/appliance-query.ts +11 -10
  382. package/server/service/application/application-mutation.ts +24 -18
  383. package/server/service/application/application-query.ts +20 -17
  384. package/server/service/domain-generator/domain-generator-mutation.ts +15 -10
  385. package/server/service/granted-role/granted-role-mutation.ts +15 -13
  386. package/server/service/granted-role/granted-role-query.ts +12 -10
  387. package/server/service/invitation/invitation-mutation.ts +7 -5
  388. package/server/service/invitation/invitation-query.ts +6 -4
  389. package/server/service/login-history/login-history-query.ts +13 -11
  390. package/server/service/login-history/login-history.ts +5 -4
  391. package/server/service/partner/partner-mutation.ts +10 -9
  392. package/server/service/partner/partner-query.ts +10 -10
  393. package/server/service/privilege/privilege-directive.ts +1 -3
  394. package/server/service/privilege/privilege-mutation.ts +15 -9
  395. package/server/service/privilege/privilege-query.ts +7 -7
  396. package/server/service/role/role-mutation.ts +18 -11
  397. package/server/service/role/role-query.ts +18 -16
  398. package/server/service/user/user-mutation.ts +39 -34
  399. package/server/service/user/user-query.ts +29 -21
  400. package/server/service/user/user.ts +12 -10
  401. package/server/types.ts +21 -0
  402. package/server/utils/check-user-belongs-domain.ts +2 -2
  403. package/server/utils/get-domain-users.ts +4 -2
  404. package/server/utils/get-user-domains.ts +8 -5
  405. package/things-factory.config.js +1 -1
  406. package/translations/en.json +2 -5
  407. package/translations/ko.json +5 -8
  408. package/translations/ms.json +2 -5
  409. package/translations/zh.json +2 -5
  410. package/client/actions/auth.js +0 -16
  411. package/client/index.js +0 -2
@@ -1,10 +1,10 @@
1
1
  import Router from 'koa-router'
2
+
2
3
  import { config } from '@things-factory/env'
4
+
3
5
  import { signup } from '../controllers/signup'
4
- import { setAccessTokenCookie } from '../utils/access-token-cookie'
5
6
  import { accepts } from '../utils/accepts'
6
-
7
- const debug = require('debug')('things-factory:auth-base:auth-signup-router')
7
+ import { setAccessTokenCookie } from '../utils/access-token-cookie'
8
8
 
9
9
  const passwordRule = config.get('password') || {
10
10
  lowerCase: true,
@@ -23,8 +23,6 @@ export const authSignupRouter = new Router()
23
23
  authSignupRouter.get('/auth/signup', async (context, next) => {
24
24
  const { email } = context.query
25
25
 
26
- debug('get:/auth/signup', email)
27
-
28
26
  await context.render('auth-page', {
29
27
  pageElement: 'auth-signup',
30
28
  elementScript: '/auth/signup.js',
@@ -40,51 +38,46 @@ authSignupRouter.post('/auth/signup', async (context, next) => {
40
38
  const { domain } = context.state
41
39
  const user = context.request.body
42
40
 
43
- try {
44
- debug('post:/auth/signup', domain?.subdomain, {
41
+ // try {
42
+ const { token } = await signup(
43
+ {
45
44
  ...user,
46
- password: 'N/A'
47
- })
48
-
49
- const { token } = await signup(
50
- {
51
- ...user,
52
- context,
53
- domain
54
- },
55
- true
56
- )
45
+ context,
46
+ domain
47
+ },
48
+ true
49
+ )
57
50
 
58
- const message = t('text.user registered successfully')
59
- context.body = {
60
- message,
61
- token
62
- }
63
-
64
- setAccessTokenCookie(context, token)
51
+ const message = t('text.user registered successfully')
52
+ context.body = {
53
+ message,
54
+ token
55
+ }
65
56
 
66
- if (accepts(header.accept, ['text/html', '*/*'])) {
67
- await context.render('auth-page', {
68
- pageElement: 'auth-result',
69
- elementScript: '/auth/result.js',
70
- data: {
71
- message
72
- }
73
- })
74
- }
75
- } catch (e) {
76
- context.status = 401
77
- context.body = e.message
57
+ setAccessTokenCookie(context, token)
78
58
 
79
- if (accepts(header.accept, ['text/html', '*/*'])) {
80
- await context.render('auth-page', {
81
- pageElement: 'auth-signup',
82
- elementScript: '/auth/signup.js',
83
- data: {
84
- message: e.message,
85
- passwordRule
86
- }
87
- })
88
- }
59
+ if (accepts(header.accept, ['text/html', '*/*'])) {
60
+ await context.render('auth-page', {
61
+ pageElement: 'auth-result',
62
+ elementScript: '/auth/result.js',
63
+ data: {
64
+ message
65
+ }
66
+ })
89
67
  }
68
+ // } catch (e) {
69
+ // context.status = 401
70
+ // context.body = e.message
71
+
72
+ // if (accepts(header.accept, ['text/html', '*/*'])) {
73
+ // await context.render('auth-page', {
74
+ // pageElement: 'auth-signup',
75
+ // elementScript: '/auth/signup.js',
76
+ // data: {
77
+ // message: e instanceof AuthError ? t(`error.${e.message}`) : e.message,
78
+ // passwordRule
79
+ // }
80
+ // })
81
+ // }
82
+ // }
90
83
  })
@@ -1,10 +1,10 @@
1
1
  import Router from 'koa-router'
2
- import { getRepository } from 'typeorm'
2
+
3
+ import { getRepository } from '@things-factory/shell'
4
+
3
5
  import { Application } from '../../service/application/application'
4
6
  import { NonClient, server as oauth2orizeServer } from './oauth2-server'
5
7
 
6
- const debug = require('debug')('things-factory:auth-base:oauth2-authorize-router')
7
-
8
8
  export const oauth2AuthorizeRouter = new Router()
9
9
 
10
10
  // user authorization endpoint
@@ -26,7 +26,7 @@ export const oauth2AuthorizeRouter = new Router()
26
26
  oauth2AuthorizeRouter.get(
27
27
  '/authorize',
28
28
  oauth2orizeServer.authorize(async function (clientID, redirectURI) {
29
- const client = await getRepository(Application).findOne({
29
+ const client = await getRepository(Application).findOneBy({
30
30
  appKey: clientID
31
31
  })
32
32
  // CONFIRM-ME redirectUrl 의 허용 범위는 ?
@@ -34,8 +34,6 @@ oauth2AuthorizeRouter.get(
34
34
  // return false
35
35
  // }
36
36
 
37
- debug('authorize fetch client', clientID, redirectURI, client)
38
-
39
37
  return [client || NonClient, redirectURI]
40
38
  }),
41
39
  async function (context, next) {
@@ -45,13 +43,10 @@ oauth2AuthorizeRouter.get(
45
43
  let elementScript: string = '/oauth2/oauth2-decision-page.js'
46
44
 
47
45
  if (oauth2.client.id === NonClient.id) {
48
- debug('authorize client not found : will render not found error in the decision page')
49
46
  pageElement = 'oauth2-decision-error'
50
47
  elementScript = '/oauth2/oauth2-decision-error-page.js'
51
48
  }
52
49
 
53
- debug('authorize render page', oauth2)
54
-
55
50
  try {
56
51
  await context.render('oauth2-page', {
57
52
  pageElement,
@@ -74,7 +69,6 @@ oauth2AuthorizeRouter.get(
74
69
  // availableScopes
75
70
  // })
76
71
  } catch (e) {
77
- debug('render decision page error', e)
78
72
  throw e
79
73
  }
80
74
  }
@@ -2,9 +2,8 @@ import jwt from 'jsonwebtoken'
2
2
  import compose from 'koa-compose'
3
3
  import passport from 'koa-passport'
4
4
  import Router from 'koa-router'
5
- import { getRepository } from 'typeorm'
6
5
 
7
- import { Domain } from '@things-factory/shell'
6
+ import { Domain, getRepository } from '@things-factory/shell'
8
7
 
9
8
  import { jwtAuthenticateMiddleware } from '../../middlewares'
10
9
  import { Application } from '../../service/application/application'
@@ -22,17 +21,13 @@ declare global {
22
21
  }
23
22
  }
24
23
 
25
- const debug = require('debug')('things-factory:auth-base:oauth2-router')
26
-
27
24
  export const oauth2Router = new Router()
28
25
 
29
26
  passport.use(
30
27
  'oauth2-client-password',
31
28
  new ClientPasswordStrategy({}, (clientId, clientSecret, done) => {
32
- debug('oauth2-client-password', clientId, clientSecret)
33
-
34
29
  getRepository(Application)
35
- .findOne({
30
+ .findOneBy({
36
31
  appKey: clientId
37
32
  })
38
33
  .then(client => {
@@ -84,7 +79,7 @@ oauth2Router.post('/refresh-token', async (context, next) => {
84
79
  const refreshToken: string | undefined = context.request?.body?.refreshToken
85
80
  if (!refreshToken) throw new Error('Missing refresh token')
86
81
 
87
- const appUser: User | undefined = await getRepository(User).findOne({
82
+ const appUser: User | undefined = await getRepository(User).findOneBy({
88
83
  password: refreshToken
89
84
  })
90
85
 
@@ -122,8 +117,6 @@ oauth2Router.post('/refresh-token', async (context, next) => {
122
117
  oauth2Router.get('/profile', jwtAuthenticateMiddleware, async (context, next) => {
123
118
  const { user, domain } = context.state
124
119
 
125
- debug('getting user/application profile', user, domain)
126
-
127
120
  const { name, description, email, userType: type, locale } = user
128
121
  const { name: domainName, subdomain, brandName, brandImage, contentImage, timezone } = domain || {}
129
122
 
@@ -154,7 +147,7 @@ oauth2Router.get('/profile', jwtAuthenticateMiddleware, async (context, next) =>
154
147
 
155
148
  oauth2Router.post('/disconnect', jwtAuthenticateMiddleware, async (context, next) => {
156
149
  try {
157
- let { user }: { user: User } = context.state
150
+ let { user } = context.state
158
151
 
159
152
  if (typeof process.oauthDisconnect === 'function') {
160
153
  await process.oauthDisconnect(user)
@@ -1,15 +1,14 @@
1
1
  import oauth2orize from 'oauth2orize-koa'
2
- import { getRepository, In } from 'typeorm'
2
+ import { In } from 'typeorm'
3
3
 
4
4
  import { logger } from '@things-factory/env'
5
- import { Domain } from '@things-factory/shell'
5
+ import { Domain, getRepository } from '@things-factory/shell'
6
6
 
7
7
  import { Application } from '../../service/application/application'
8
8
  import { Role } from '../../service/role/role'
9
9
  import { User, UserStatus } from '../../service/user/user'
10
10
 
11
11
  const crypto = require('crypto')
12
- const debug = require('debug')('things-factory:auth-base:oauth2-server')
13
12
 
14
13
  export const NOTFOUND = 'NOTFOUND'
15
14
  export const NonClient = {
@@ -33,18 +32,15 @@ export const server = oauth2orize.createServer()
33
32
  // the client by ID from the database.
34
33
 
35
34
  server.serializeClient(async function (client) {
36
- debug('serialze', client)
37
35
  return client.id
38
36
  })
39
37
 
40
38
  server.deserializeClient(async function (id) {
41
39
  if (id == NOTFOUND) {
42
- debug('deserialize - not found')
43
40
  return {}
44
41
  }
45
42
 
46
- const application = await getRepository(Application).findOne(id)
47
- debug('deserialize', id, application)
43
+ const application = await getRepository(Application).findOneBy({ id })
48
44
  return application
49
45
  })
50
46
 
@@ -81,24 +77,19 @@ server.exchange(
81
77
  try {
82
78
  /* authorization code */
83
79
  var decoded: any = Application.verifyAuthCode(code)
84
- debug('exchange code - decoded', decoded)
85
80
  } catch (e) {
86
- debug('exchange code', e)
87
81
  return false
88
82
  }
89
83
  let { email, appKey, subdomain, scopes } = decoded
90
84
 
91
- const application: Application = await getRepository(Application).findOne({
85
+ const application: Application = await getRepository(Application).findOneBy({
92
86
  appKey
93
87
  })
94
88
 
95
89
  if (!application) {
96
- debug('exchange code', 'application is not exist')
97
90
  return false
98
91
  }
99
92
 
100
- debug('exchange code - application', application)
101
-
102
93
  /* DONT-FORGET uncomment after test */
103
94
  // if (redirectUrl !== application.redirectUrl && redirectUrl.indexOf(application.redirectUrl) != 0) {
104
95
  // logger.error(
@@ -112,24 +103,23 @@ server.exchange(
112
103
  // )
113
104
  // }
114
105
 
115
- const domain: Domain = await getRepository(Domain).findOne({
106
+ const domain: Domain = await getRepository(Domain).findOneBy({
116
107
  subdomain
117
108
  })
118
109
 
119
- const creator: User = await getRepository(User).findOne({ email })
110
+ const creator: User = await getRepository(User).findOneBy({ email })
120
111
 
121
112
  const appuserEmail = `${crypto.randomUUID()}@${subdomain}`
122
113
 
123
- var appuser: User = await getRepository(User).findOne(
124
- {
114
+ var appuser: User = await getRepository(User).findOne({
115
+ where: {
125
116
  email: appuserEmail,
126
117
  reference: application.id,
127
118
  userType: 'application'
128
119
  },
129
- {
130
- relations: ['domains', 'creator', 'updater']
131
- }
132
- )
120
+
121
+ relations: ['domains', 'creator', 'updater']
122
+ })
133
123
 
134
124
  appuser = await getRepository(User).save({
135
125
  ...(appuser || {}),
@@ -179,7 +169,6 @@ server.exchange(
179
169
  try {
180
170
  /* refresh token */
181
171
  var decoded: any = Application.verifyAuthCode(refreshToken)
182
- debug('exchange refresh-token - decoded', decoded)
183
172
  } catch (e) {
184
173
  logger.error(e)
185
174
  return false
@@ -194,7 +183,7 @@ server.exchange(
194
183
  exp: expires_in
195
184
  } = decoded
196
185
 
197
- const application: Application = await getRepository(Application).findOne({
186
+ const application: Application = await getRepository(Application).findOneBy({
198
187
  appKey
199
188
  })
200
189
 
@@ -203,34 +192,30 @@ server.exchange(
203
192
  return false
204
193
  }
205
194
 
206
- debug('exchange refresh-token - application', application?.name)
207
-
208
195
  if (Date.now() > expires_in * 1000) {
209
196
  logger.error('refresh token is expired')
210
197
  return false
211
198
  }
212
199
 
213
- const domain: Domain = await getRepository(Domain).findOne({
200
+ const domain: Domain = await getRepository(Domain).findOneBy({
214
201
  subdomain
215
202
  })
216
203
 
217
- const creator: User = await getRepository(User).findOne({
204
+ const creator: User = await getRepository(User).findOneBy({
218
205
  id,
219
206
  userType
220
207
  })
221
208
 
222
209
  const appuserEmail = `${appKey}@${subdomain}`
223
210
 
224
- var appuser: User = await getRepository(User).findOne(
225
- {
211
+ var appuser: User = await getRepository(User).findOne({
212
+ where: {
226
213
  email: appuserEmail,
227
214
  reference: application.id,
228
215
  userType: 'application'
229
216
  },
230
- {
231
- relations: ['domain', 'creator', 'updater']
232
- }
233
- )
217
+ relations: ['domain', 'creator', 'updater']
218
+ })
234
219
 
235
220
  if (!appuser) {
236
221
  logger.error('application is not bound')
@@ -251,7 +236,7 @@ server.exchange(
251
236
  return false
252
237
  }
253
238
 
254
- const roles = await getRepository(Role).find({
239
+ const roles = await getRepository(Role).findBy({
255
240
  name: In(scopes),
256
241
  domain
257
242
  })
@@ -1,12 +1,8 @@
1
1
  import Router from 'koa-router'
2
2
 
3
- const debug = require('debug')('things-factory:auth-base:path-base-domain-router')
4
-
5
3
  export const pathBaseDomainRouter = new Router()
6
4
 
7
5
  /* browser history fallback 을 위한 라우터. */
8
6
  pathBaseDomainRouter.get('/(.*)', async (context, next) => {
9
- debug('get:/(.*)', context.path)
10
-
11
7
  await next()
12
8
  })
@@ -1,11 +1,11 @@
1
- import { Domain, domainMiddleware } from '@things-factory/shell'
2
1
  import Router from 'koa-router'
3
2
  import passport from 'passport'
3
+
4
+ import { Domain, domainMiddleware } from '@things-factory/shell'
5
+
4
6
  import { User } from '../service/user/user'
5
7
  import { getUserDomains } from '../utils/get-user-domains'
6
8
 
7
- const debug = require('debug')('things-factory:auth-base:site-root-router')
8
-
9
9
  export const siteRootRouter = new Router()
10
10
 
11
11
  async function findAuth(context, next) {
@@ -14,9 +14,7 @@ async function findAuth(context, next) {
14
14
  try {
15
15
  const user = await User.checkAuth(decoded)
16
16
  context.state.user = user
17
- } catch (e) {
18
- debug('not signed in', e)
19
- }
17
+ } catch (e) {}
20
18
  }
21
19
 
22
20
  await next()
@@ -25,24 +23,19 @@ async function findAuth(context, next) {
25
23
 
26
24
  siteRootRouter.get('/', findAuth, domainMiddleware, async (context, next) => {
27
25
  const { user, domain } = context.state
28
- debug('get:/', user?.email, domain?.subdomain)
29
26
 
30
27
  const subdomain = domain?.subdomain
31
28
 
32
29
  if (user && subdomain) {
33
30
  const userDomains: Domain[] = await getUserDomains(user)
34
31
  if (userDomains.find(userDomain => userDomain.subdomain == subdomain)) {
35
- debug('get:/', user.email, subdomain, 'user have access right to the subdomain. so, redirect to business-home')
36
32
  return await next()
37
33
  }
38
34
 
39
- debug('get:/', user.email, subdomain, "user doesn't have access right to the subdomain. so, redirect to checkin")
40
-
41
35
  return context.redirect(`/auth/checkin/${subdomain}`)
42
36
  }
43
37
 
44
38
  if (user && !subdomain) {
45
- debug('get:/', user?.email, 'redirect to checkin')
46
39
  context.redirect('/auth/checkin')
47
40
 
48
41
  return
package/server/routes.ts CHANGED
@@ -1,25 +1,24 @@
1
+ import session from 'koa-session'
2
+
1
3
  import { config } from '@things-factory/env'
4
+
2
5
  import { domainAuthenticateMiddleware, jwtAuthenticateMiddleware } from './middlewares'
3
6
  import {
4
- authSignupRouter,
7
+ authCheckinRouter,
5
8
  authPrivateProcessRouter,
6
9
  authPublicProcessRouter,
7
10
  authSigninRouter,
8
- pathBaseDomainRouter,
9
- siteRootRouter,
11
+ authSignupRouter,
12
+ oauth2AuthorizeRouter,
10
13
  oauth2Router,
11
- authCheckinRouter,
12
- oauth2AuthorizeRouter
14
+ pathBaseDomainRouter,
15
+ siteRootRouter
13
16
  } from './router'
14
- import session from 'koa-session'
15
17
  import { SECRET } from './utils/get-secret'
16
18
 
17
19
  const isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')
18
- const debug = require('debug')('things-factory:auth-base:routes')
19
20
 
20
21
  process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {
21
- debug('bootstrap-module-global-public-route')
22
-
23
22
  globalPublicRouter.use(siteRootRouter.routes(), siteRootRouter.allowedMethods())
24
23
  globalPublicRouter.use(authPublicProcessRouter.routes(), authPublicProcessRouter.allowedMethods())
25
24
  })
@@ -33,8 +32,6 @@ process.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRo
33
32
  })
34
33
 
35
34
  process.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {
36
- debug('bootstrap-module-domain-public-route')
37
-
38
35
  /* domainPublicRouter based nested-routers */
39
36
  domainPublicRouter.use(authSigninRouter.routes(), authSigninRouter.allowedMethods())
40
37
  domainPublicRouter.use(authSignupRouter.routes(), authSignupRouter.allowedMethods())
@@ -71,8 +68,6 @@ process.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRo
71
68
  // '(.[^.]+)' 은 '', '/'는 제외하고, '/xxx', '/yyy/zzz' 등 모두를 포함하지만, path에 '.'가 있는 경우는 제외한다.
72
69
  // (테스트는 여기서 : http://forbeslindesay.github.io/express-route-tester/)
73
70
  domainPrivateRouter.get('(.[^.]+)', async (context, next) => {
74
- const { path } = context
75
- debug('get:(.[^.]+)', path)
76
71
  await next()
77
72
  })
78
73
  })
@@ -1,18 +1,16 @@
1
- import { AppBinding } from './app-binding'
2
- import { Resolver, Mutation, Arg, Ctx } from 'type-graphql'
3
- import { User } from '../user/user'
4
- import { getRepository } from 'typeorm'
1
+ import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'
2
+
3
+ import { getRepository } from '@things-factory/shell'
5
4
 
6
- const debug = require('debug')('things-factory:auth-base:delete-app-binding')
5
+ import { User } from '../user/user'
6
+ import { AppBinding } from './app-binding'
7
7
 
8
8
  @Resolver(AppBinding)
9
9
  export class AppBindingMutation {
10
10
  @Mutation(returns => Boolean)
11
- async deleteAppBinding(@Arg('id') id: string, @Ctx() context: any) {
11
+ async deleteAppBinding(@Arg('id') id: string, @Ctx() context: ResolverContext) {
12
12
  const { domain } = context.state
13
13
 
14
- debug('user', id)
15
-
16
14
  // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.
17
15
  // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.
18
16
  await getRepository(User).delete({
@@ -1,7 +1,7 @@
1
1
  import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { getRepository, SelectQueryBuilder } from 'typeorm'
2
+ import { SelectQueryBuilder } from 'typeorm'
3
3
 
4
- import { buildQuery, convertListParams, ListParam } from '@things-factory/shell'
4
+ import { buildQuery, getRepository, ListParam } from '@things-factory/shell'
5
5
 
6
6
  import { buildDomainUsersQueryBuilder } from '../../utils/get-domain-users'
7
7
  import { Application } from '../application/application'
@@ -13,22 +13,23 @@ import { AppBindingList } from './app-binding-types'
13
13
  @Resolver(AppBinding)
14
14
  export class AppBindingQuery {
15
15
  @Query(returns => AppBinding)
16
- async appBinding(@Arg('id') id: string, @Ctx() context: any): Promise<User> {
16
+ async appBinding(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<User> {
17
17
  const { domain } = context.state
18
18
 
19
19
  // TODO should check domain is available
20
- return await getRepository(User).findOne({ id, userType: 'application' })
20
+ return await getRepository(User).findOneBy({ id, userType: 'application' })
21
21
  }
22
22
 
23
+ /* TODO optimize query */
23
24
  @Query(returns => AppBindingList)
24
- async appBindings(@Args() params: ListParam, @Ctx() context: any): Promise<UserList> {
25
+ async appBindings(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<UserList> {
25
26
  const { domain } = context.state
26
27
 
27
- const convertedParams = convertListParams(params)
28
- convertedParams.where = {
29
- ...convertedParams.where,
30
- userType: 'application'
31
- }
28
+ // const convertedParams = convertListParams(params)
29
+ // convertedParams.where = {
30
+ // ...convertedParams.where,
31
+ // userType: 'application'
32
+ // } as any
32
33
 
33
34
  const alias: string = 'USER'
34
35
  const qb: SelectQueryBuilder<User> = buildDomainUsersQueryBuilder(domain.id, alias)
@@ -47,7 +48,7 @@ export class AppBindingQuery {
47
48
  // .map(async (user: User) => {
48
49
  // const email = user.email
49
50
  // const appKey = email.substr(0, email.lastIndexOf('@'))
50
- // const application = await getRepository(Application).findOne({
51
+ // const application = await getRepository(Application).findOneBy({
51
52
  // appKey
52
53
  // })
53
54
 
@@ -65,7 +66,7 @@ export class AppBindingQuery {
65
66
 
66
67
  @FieldResolver(type => Application)
67
68
  async application(@Root() appBinding: AppBinding): Promise<Application> {
68
- return await getRepository(Application).findOne(appBinding.reference)
69
+ return await getRepository(Application).findOneBy({ id: appBinding.reference })
69
70
  }
70
71
 
71
72
  @FieldResolver(type => String)
@@ -81,11 +82,11 @@ export class AppBindingQuery {
81
82
 
82
83
  @FieldResolver(type => User)
83
84
  async updater(@Root() appBinding: AppBinding): Promise<User> {
84
- return await getRepository(User).findOne(appBinding.updater)
85
+ return await getRepository(User).findOneBy({ id: appBinding.updaterId })
85
86
  }
86
87
 
87
88
  @FieldResolver(type => User)
88
89
  async creator(@Root() appBinding: AppBinding): Promise<User> {
89
- return await getRepository(User).findOne(appBinding.creator)
90
+ return await getRepository(User).findOneBy({ id: appBinding.creatorId })
90
91
  }
91
92
  }
@@ -1,5 +1,6 @@
1
1
  import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'
2
- import { getRepository } from 'typeorm'
2
+
3
+ import { getRepository } from '@things-factory/shell'
3
4
 
4
5
  import { User, UserStatus } from '../user/user'
5
6
  import { Appliance } from './appliance'
@@ -7,12 +8,13 @@ import { AppliancePatch, NewAppliance } from './appliance-types'
7
8
 
8
9
  const crypto = require('crypto')
9
10
 
10
- const debug = require('debug')('things-factory:auth-base:appliance')
11
-
12
11
  @Resolver(Appliance)
13
12
  export class ApplianceMutation {
14
13
  @Mutation(returns => Appliance, { description: 'To create new appliance' })
15
- async createAppliance(@Arg('appliance') appliance: NewAppliance, @Ctx() context: any): Promise<Appliance> {
14
+ async createAppliance(
15
+ @Arg('appliance') appliance: NewAppliance,
16
+ @Ctx() context: ResolverContext
17
+ ): Promise<Appliance> {
16
18
  return await getRepository(Appliance).save({
17
19
  domain: context.state.domain,
18
20
  creator: context.state.user,
@@ -22,7 +24,7 @@ export class ApplianceMutation {
22
24
  }
23
25
 
24
26
  @Mutation(returns => Boolean, { description: 'To delete appliance' })
25
- async deleteAppliance(@Arg('id') id: string, @Ctx() context: any): Promise<Boolean> {
27
+ async deleteAppliance(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {
26
28
  const { domain } = context.state
27
29
  // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.
28
30
  // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.
@@ -31,16 +33,16 @@ export class ApplianceMutation {
31
33
  userType: 'appliance'
32
34
  })
33
35
 
34
- await getRepository(Appliance).delete({ domain, id })
36
+ await getRepository(Appliance).delete({ domain: { id: domain.id }, id })
35
37
 
36
38
  return true
37
39
  }
38
40
 
39
41
  @Mutation(returns => Appliance)
40
- async generateApplianceSecret(@Arg('id') id: string, @Ctx() context: any): Promise<Appliance> {
42
+ async generateApplianceSecret(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Appliance> {
41
43
  const { domain, user } = context.state
42
44
 
43
- const appliance: Appliance = await getRepository(Appliance).findOne({ id, domain })
45
+ const appliance: Appliance = await getRepository(Appliance).findOneBy({ domain: { id: domain.id }, id })
44
46
 
45
47
  const appuserEmail = `${crypto.randomUUID()}@${domain?.subdomain}`
46
48
  let appuser: User = await getRepository(User).findOne({
@@ -69,10 +71,7 @@ export class ApplianceMutation {
69
71
  context.throw(401, 'appliance is not allowed for this domain')
70
72
  }
71
73
 
72
- debug('appiance user', appuser)
73
-
74
74
  appuser.password = Appliance.generateAccessToken(domain, appuser, appliance)
75
- debug('access token', appuser.password)
76
75
 
77
76
  await getRepository(User).save(appuser)
78
77
 
@@ -87,11 +86,13 @@ export class ApplianceMutation {
87
86
  async updateAppliance(
88
87
  @Arg('id') id: string,
89
88
  @Arg('patch') patch: AppliancePatch,
90
- @Ctx() context: any
89
+ @Ctx() context: ResolverContext
91
90
  ): Promise<Appliance> {
91
+ const { domain } = context.state
92
+
92
93
  const applianceRepository = getRepository(Appliance)
93
94
  const userRepository = getRepository(User)
94
- const appliance = await applianceRepository.findOne({ where: { domain: context.state.domain, id } })
95
+ const appliance = await applianceRepository.findOne({ where: { domain: { id: domain.id }, id } })
95
96
  const user = await userRepository.findOne({ where: { reference: id, userType: 'appliance' } })
96
97
 
97
98
  userRepository.save({