@things-factory/auth-base 8.0.37 → 9.0.0-9.0.0-beta.59.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 (489) hide show
  1. package/config/config.development.js +46 -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/controllers/auth.d.ts +5 -5
  21. package/dist-server/controllers/auth.js +5 -5
  22. package/dist-server/controllers/auth.js.map +1 -1
  23. package/dist-server/controllers/change-pwd.js +19 -19
  24. package/dist-server/controllers/change-pwd.js.map +1 -1
  25. package/dist-server/controllers/checkin.js +4 -4
  26. package/dist-server/controllers/checkin.js.map +1 -1
  27. package/dist-server/controllers/delete-user.js +10 -15
  28. package/dist-server/controllers/delete-user.js.map +1 -1
  29. package/dist-server/controllers/invitation.js +20 -25
  30. package/dist-server/controllers/invitation.js.map +1 -1
  31. package/dist-server/controllers/profile.d.ts +5 -5
  32. package/dist-server/controllers/profile.js +10 -10
  33. package/dist-server/controllers/profile.js.map +1 -1
  34. package/dist-server/controllers/reset-password.js +24 -24
  35. package/dist-server/controllers/reset-password.js.map +1 -1
  36. package/dist-server/controllers/signin.d.ts +1 -1
  37. package/dist-server/controllers/signin.js +25 -30
  38. package/dist-server/controllers/signin.js.map +1 -1
  39. package/dist-server/controllers/signup.d.ts +1 -1
  40. package/dist-server/controllers/signup.js +14 -19
  41. package/dist-server/controllers/signup.js.map +1 -1
  42. package/dist-server/controllers/unlock-user.js +17 -17
  43. package/dist-server/controllers/unlock-user.js.map +1 -1
  44. package/dist-server/controllers/utils/password-rule.js +4 -4
  45. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  46. package/dist-server/controllers/utils/save-invitation-token.d.ts +1 -1
  47. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  48. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  49. package/dist-server/controllers/utils/save-verification-token.d.ts +1 -1
  50. package/dist-server/controllers/utils/save-verification-token.js +3 -3
  51. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  52. package/dist-server/controllers/verification.js +23 -23
  53. package/dist-server/controllers/verification.js.map +1 -1
  54. package/dist-server/errors/auth-error.js +1 -1
  55. package/dist-server/errors/auth-error.js.map +1 -1
  56. package/dist-server/errors/index.d.ts +2 -2
  57. package/dist-server/errors/index.js +2 -2
  58. package/dist-server/errors/index.js.map +1 -1
  59. package/dist-server/errors/user-domain-not-match-error.d.ts +1 -1
  60. package/dist-server/errors/user-domain-not-match-error.js +8 -8
  61. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  62. package/dist-server/index.d.ts +16 -16
  63. package/dist-server/index.js +18 -18
  64. package/dist-server/index.js.map +1 -1
  65. package/dist-server/middlewares/authenticate-401-middleware.js +11 -11
  66. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  67. package/dist-server/middlewares/bypass-signin-middleware.d.ts +1 -0
  68. package/dist-server/middlewares/bypass-signin-middleware.js +20 -0
  69. package/dist-server/middlewares/bypass-signin-middleware.js.map +1 -0
  70. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +1 -1
  71. package/dist-server/middlewares/domain-authenticate-middleware.js +9 -9
  72. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  73. package/dist-server/middlewares/graphql-authenticate-middleware.js +4 -4
  74. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  75. package/dist-server/middlewares/index.d.ts +5 -5
  76. package/dist-server/middlewares/index.js +24 -19
  77. package/dist-server/middlewares/index.js.map +1 -1
  78. package/dist-server/middlewares/jwt-authenticate-middleware.js +15 -15
  79. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  80. package/dist-server/middlewares/signin-middleware.js +2 -2
  81. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  82. package/dist-server/middlewares/verify-recaptcha-middleware.d.ts +3 -0
  83. package/dist-server/middlewares/verify-recaptcha-middleware.js +95 -0
  84. package/dist-server/middlewares/verify-recaptcha-middleware.js.map +1 -0
  85. package/dist-server/middlewares/webauthn-middleware.js +7 -7
  86. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  87. package/dist-server/migrations/1548206416130-SeedUser.js +6 -6
  88. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  89. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  90. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  91. package/dist-server/migrations/index.js.map +1 -1
  92. package/dist-server/router/auth-checkin-router.js +17 -20
  93. package/dist-server/router/auth-checkin-router.js.map +1 -1
  94. package/dist-server/router/auth-private-process-router.js +16 -23
  95. package/dist-server/router/auth-private-process-router.js.map +1 -1
  96. package/dist-server/router/auth-public-process-router.js +30 -35
  97. package/dist-server/router/auth-public-process-router.js.map +1 -1
  98. package/dist-server/router/auth-signin-router.js +7 -13
  99. package/dist-server/router/auth-signin-router.js.map +1 -1
  100. package/dist-server/router/auth-signup-router.js +13 -9
  101. package/dist-server/router/auth-signup-router.js.map +1 -1
  102. package/dist-server/router/index.d.ts +9 -9
  103. package/dist-server/router/index.js +9 -9
  104. package/dist-server/router/index.js.map +1 -1
  105. package/dist-server/router/oauth2/index.d.ts +2 -2
  106. package/dist-server/router/oauth2/index.js +2 -2
  107. package/dist-server/router/oauth2/index.js.map +1 -1
  108. package/dist-server/router/oauth2/oauth2-authorize-router.js +6 -6
  109. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  110. package/dist-server/router/oauth2/oauth2-router.d.ts +1 -1
  111. package/dist-server/router/oauth2/oauth2-router.js +21 -21
  112. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  113. package/dist-server/router/oauth2/oauth2-server.js +21 -21
  114. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  115. package/dist-server/router/site-root-router.js +4 -4
  116. package/dist-server/router/site-root-router.js.map +1 -1
  117. package/dist-server/router/webauthn-router.js +58 -8
  118. package/dist-server/router/webauthn-router.js.map +1 -1
  119. package/dist-server/routes.js +75 -50
  120. package/dist-server/routes.js.map +1 -1
  121. package/dist-server/service/app-binding/app-binding-mutation.js +4 -4
  122. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  123. package/dist-server/service/app-binding/app-binding-query.d.ts +4 -4
  124. package/dist-server/service/app-binding/app-binding-query.js +22 -22
  125. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  126. package/dist-server/service/app-binding/app-binding-types.d.ts +1 -1
  127. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  128. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  129. package/dist-server/service/app-binding/app-binding.d.ts +2 -2
  130. package/dist-server/service/app-binding/app-binding.js +4 -4
  131. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  132. package/dist-server/service/app-binding/index.d.ts +2 -2
  133. package/dist-server/service/app-binding/index.js +3 -3
  134. package/dist-server/service/app-binding/index.js.map +1 -1
  135. package/dist-server/service/appliance/appliance-mutation.d.ts +2 -2
  136. package/dist-server/service/appliance/appliance-mutation.js +32 -45
  137. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  138. package/dist-server/service/appliance/appliance-query.d.ts +3 -3
  139. package/dist-server/service/appliance/appliance-query.js +17 -17
  140. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  141. package/dist-server/service/appliance/appliance-types.d.ts +1 -1
  142. package/dist-server/service/appliance/appliance-types.js +2 -2
  143. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  144. package/dist-server/service/appliance/appliance.d.ts +3 -1
  145. package/dist-server/service/appliance/appliance.js +51 -8
  146. package/dist-server/service/appliance/appliance.js.map +1 -1
  147. package/dist-server/service/appliance/index.d.ts +3 -3
  148. package/dist-server/service/appliance/index.js +5 -5
  149. package/dist-server/service/appliance/index.js.map +1 -1
  150. package/dist-server/service/application/application-mutation.d.ts +8 -8
  151. package/dist-server/service/application/application-mutation.js +20 -20
  152. package/dist-server/service/application/application-mutation.js.map +1 -1
  153. package/dist-server/service/application/application-query.d.ts +2 -2
  154. package/dist-server/service/application/application-query.js +16 -16
  155. package/dist-server/service/application/application-query.js.map +1 -1
  156. package/dist-server/service/application/application-types.d.ts +1 -1
  157. package/dist-server/service/application/application-types.js +4 -4
  158. package/dist-server/service/application/application-types.js.map +1 -1
  159. package/dist-server/service/application/application.d.ts +1 -1
  160. package/dist-server/service/application/application.js +12 -12
  161. package/dist-server/service/application/application.js.map +1 -1
  162. package/dist-server/service/application/index.d.ts +3 -3
  163. package/dist-server/service/application/index.js +5 -5
  164. package/dist-server/service/application/index.js.map +1 -1
  165. package/dist-server/service/auth-provider/auth-provider-mutation.d.ts +2 -2
  166. package/dist-server/service/auth-provider/auth-provider-mutation.js +20 -20
  167. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  168. package/dist-server/service/auth-provider/auth-provider-query.d.ts +3 -3
  169. package/dist-server/service/auth-provider/auth-provider-query.js +20 -20
  170. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  171. package/dist-server/service/auth-provider/auth-provider-type.d.ts +1 -1
  172. package/dist-server/service/auth-provider/auth-provider-type.js +2 -2
  173. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  174. package/dist-server/service/auth-provider/auth-provider.d.ts +3 -3
  175. package/dist-server/service/auth-provider/auth-provider.js +12 -12
  176. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  177. package/dist-server/service/auth-provider/index.d.ts +3 -3
  178. package/dist-server/service/auth-provider/index.js +5 -5
  179. package/dist-server/service/auth-provider/index.js.map +1 -1
  180. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +1 -1
  181. package/dist-server/service/domain-generator/domain-generator-mutation.js +11 -11
  182. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  183. package/dist-server/service/domain-generator/domain-generator-types.d.ts +1 -1
  184. package/dist-server/service/domain-generator/domain-generator-types.js +3 -3
  185. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  186. package/dist-server/service/domain-generator/index.d.ts +1 -1
  187. package/dist-server/service/domain-generator/index.js +2 -2
  188. package/dist-server/service/domain-generator/index.js.map +1 -1
  189. package/dist-server/service/domain-link/domain-link-mutation.d.ts +9 -0
  190. package/dist-server/service/domain-link/domain-link-mutation.js +116 -0
  191. package/dist-server/service/domain-link/domain-link-mutation.js.map +1 -0
  192. package/dist-server/service/domain-link/domain-link-query.d.ts +11 -0
  193. package/dist-server/service/domain-link/domain-link-query.js +75 -0
  194. package/dist-server/service/domain-link/domain-link-query.js.map +1 -0
  195. package/dist-server/service/domain-link/domain-link-types.d.ts +18 -0
  196. package/dist-server/service/domain-link/domain-link-types.js +66 -0
  197. package/dist-server/service/domain-link/domain-link-types.js.map +1 -0
  198. package/dist-server/service/domain-link/domain-link.d.ts +28 -0
  199. package/dist-server/service/domain-link/domain-link.js +105 -0
  200. package/dist-server/service/domain-link/domain-link.js.map +1 -0
  201. package/dist-server/service/domain-link/index.d.ts +6 -0
  202. package/dist-server/service/domain-link/index.js +10 -0
  203. package/dist-server/service/domain-link/index.js.map +1 -0
  204. package/dist-server/service/granted-role/granted-role-mutation.d.ts +3 -3
  205. package/dist-server/service/granted-role/granted-role-mutation.js +17 -17
  206. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  207. package/dist-server/service/granted-role/granted-role-query.d.ts +2 -2
  208. package/dist-server/service/granted-role/granted-role-query.js +13 -13
  209. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  210. package/dist-server/service/granted-role/granted-role.d.ts +1 -1
  211. package/dist-server/service/granted-role/granted-role.js +3 -3
  212. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  213. package/dist-server/service/granted-role/index.d.ts +3 -3
  214. package/dist-server/service/granted-role/index.js +5 -5
  215. package/dist-server/service/granted-role/index.js.map +1 -1
  216. package/dist-server/service/index.d.ts +27 -25
  217. package/dist-server/service/index.js +75 -70
  218. package/dist-server/service/index.js.map +1 -1
  219. package/dist-server/service/invitation/index.d.ts +3 -3
  220. package/dist-server/service/invitation/index.js +5 -5
  221. package/dist-server/service/invitation/index.js.map +1 -1
  222. package/dist-server/service/invitation/invitation-mutation.d.ts +2 -2
  223. package/dist-server/service/invitation/invitation-mutation.js +10 -10
  224. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  225. package/dist-server/service/invitation/invitation-query.d.ts +1 -1
  226. package/dist-server/service/invitation/invitation-query.js +7 -7
  227. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  228. package/dist-server/service/invitation/invitation-types.d.ts +1 -1
  229. package/dist-server/service/invitation/invitation-types.js +2 -2
  230. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  231. package/dist-server/service/invitation/invitation.d.ts +1 -1
  232. package/dist-server/service/invitation/invitation.js +5 -5
  233. package/dist-server/service/invitation/invitation.js.map +1 -1
  234. package/dist-server/service/login-history/index.d.ts +2 -2
  235. package/dist-server/service/login-history/index.js +4 -4
  236. package/dist-server/service/login-history/index.js.map +1 -1
  237. package/dist-server/service/login-history/login-history-query.d.ts +3 -3
  238. package/dist-server/service/login-history/login-history-query.js +11 -11
  239. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  240. package/dist-server/service/login-history/login-history-type.d.ts +1 -1
  241. package/dist-server/service/login-history/login-history-type.js +2 -2
  242. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  243. package/dist-server/service/login-history/login-history.d.ts +1 -1
  244. package/dist-server/service/login-history/login-history.js +4 -4
  245. package/dist-server/service/login-history/login-history.js.map +1 -1
  246. package/dist-server/service/partner/index.d.ts +3 -3
  247. package/dist-server/service/partner/index.js +5 -5
  248. package/dist-server/service/partner/index.js.map +1 -1
  249. package/dist-server/service/partner/partner-mutation.js +8 -8
  250. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  251. package/dist-server/service/partner/partner-query.d.ts +3 -3
  252. package/dist-server/service/partner/partner-query.js +17 -17
  253. package/dist-server/service/partner/partner-query.js.map +1 -1
  254. package/dist-server/service/partner/partner-types.d.ts +1 -1
  255. package/dist-server/service/partner/partner-types.js +2 -2
  256. package/dist-server/service/partner/partner-types.js.map +1 -1
  257. package/dist-server/service/partner/partner.d.ts +1 -1
  258. package/dist-server/service/partner/partner.js +5 -5
  259. package/dist-server/service/partner/partner.js.map +1 -1
  260. package/dist-server/service/password-history/index.d.ts +1 -1
  261. package/dist-server/service/password-history/index.js +2 -2
  262. package/dist-server/service/password-history/index.js.map +1 -1
  263. package/dist-server/service/privilege/index.d.ts +3 -3
  264. package/dist-server/service/privilege/index.js +5 -5
  265. package/dist-server/service/privilege/index.js.map +1 -1
  266. package/dist-server/service/privilege/privilege-directive.js +2 -2
  267. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  268. package/dist-server/service/privilege/privilege-mutation.d.ts +2 -2
  269. package/dist-server/service/privilege/privilege-mutation.js +15 -15
  270. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  271. package/dist-server/service/privilege/privilege-query.d.ts +4 -4
  272. package/dist-server/service/privilege/privilege-query.js +20 -20
  273. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  274. package/dist-server/service/privilege/privilege-types.d.ts +1 -1
  275. package/dist-server/service/privilege/privilege-types.js +2 -2
  276. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  277. package/dist-server/service/privilege/privilege.d.ts +2 -2
  278. package/dist-server/service/privilege/privilege.js +10 -10
  279. package/dist-server/service/privilege/privilege.js.map +1 -1
  280. package/dist-server/service/role/index.d.ts +3 -3
  281. package/dist-server/service/role/index.js +5 -5
  282. package/dist-server/service/role/index.js.map +1 -1
  283. package/dist-server/service/role/role-mutation.d.ts +2 -2
  284. package/dist-server/service/role/role-mutation.js +19 -19
  285. package/dist-server/service/role/role-mutation.js.map +1 -1
  286. package/dist-server/service/role/role-query.d.ts +9 -5
  287. package/dist-server/service/role/role-query.js +38 -31
  288. package/dist-server/service/role/role-query.js.map +1 -1
  289. package/dist-server/service/role/role-types.d.ts +1 -1
  290. package/dist-server/service/role/role-types.js +2 -2
  291. package/dist-server/service/role/role-types.js.map +1 -1
  292. package/dist-server/service/role/role.d.ts +2 -2
  293. package/dist-server/service/role/role.js +12 -12
  294. package/dist-server/service/role/role.js.map +1 -1
  295. package/dist-server/service/user/domain-query.d.ts +1 -1
  296. package/dist-server/service/user/domain-query.js +3 -3
  297. package/dist-server/service/user/domain-query.js.map +1 -1
  298. package/dist-server/service/user/index.d.ts +4 -4
  299. package/dist-server/service/user/index.js +6 -6
  300. package/dist-server/service/user/index.js.map +1 -1
  301. package/dist-server/service/user/user-mutation.d.ts +3 -3
  302. package/dist-server/service/user/user-mutation.js +49 -84
  303. package/dist-server/service/user/user-mutation.js.map +1 -1
  304. package/dist-server/service/user/user-query.d.ts +4 -3
  305. package/dist-server/service/user/user-query.js +31 -21
  306. package/dist-server/service/user/user-query.js.map +1 -1
  307. package/dist-server/service/user/user-types.d.ts +1 -1
  308. package/dist-server/service/user/user-types.js +2 -2
  309. package/dist-server/service/user/user-types.js.map +1 -1
  310. package/dist-server/service/user/user.d.ts +3 -3
  311. package/dist-server/service/user/user.js +41 -46
  312. package/dist-server/service/user/user.js.map +1 -1
  313. package/dist-server/service/users-auth-providers/index.d.ts +1 -1
  314. package/dist-server/service/users-auth-providers/index.js +2 -2
  315. package/dist-server/service/users-auth-providers/index.js.map +1 -1
  316. package/dist-server/service/users-auth-providers/users-auth-providers.d.ts +2 -2
  317. package/dist-server/service/users-auth-providers/users-auth-providers.js +8 -8
  318. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  319. package/dist-server/service/verification-token/index.d.ts +1 -1
  320. package/dist-server/service/verification-token/index.js +2 -2
  321. package/dist-server/service/verification-token/index.js.map +1 -1
  322. package/dist-server/service/web-auth-credential/index.d.ts +1 -1
  323. package/dist-server/service/web-auth-credential/index.js +2 -2
  324. package/dist-server/service/web-auth-credential/index.js.map +1 -1
  325. package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +1 -1
  326. package/dist-server/service/web-auth-credential/web-auth-credential.js +10 -10
  327. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  328. package/dist-server/tsconfig.tsbuildinfo +1 -1
  329. package/dist-server/types.d.ts +1 -1
  330. package/dist-server/types.js.map +1 -1
  331. package/dist-server/utils/access-token-cookie.js +2 -2
  332. package/dist-server/utils/access-token-cookie.js.map +1 -1
  333. package/dist-server/utils/check-permission.d.ts +2 -2
  334. package/dist-server/utils/check-permission.js +3 -3
  335. package/dist-server/utils/check-permission.js.map +1 -1
  336. package/dist-server/utils/check-user-belongs-domain.d.ts +1 -1
  337. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  338. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  339. package/dist-server/utils/get-domain-users.d.ts +1 -1
  340. package/dist-server/utils/get-domain-users.js +2 -2
  341. package/dist-server/utils/get-domain-users.js.map +1 -1
  342. package/dist-server/utils/get-user-domains.d.ts +2 -2
  343. package/dist-server/utils/get-user-domains.js +7 -5
  344. package/dist-server/utils/get-user-domains.js.map +1 -1
  345. package/helps/config/recaptcha.ja.md +49 -0
  346. package/helps/config/recaptcha.ko.md +49 -0
  347. package/helps/config/recaptcha.md +49 -0
  348. package/helps/config/recaptcha.ms.md +49 -0
  349. package/helps/config/recaptcha.zh.md +49 -0
  350. package/package.json +7 -6
  351. package/client/actions/auth.ts +0 -24
  352. package/client/auth.ts +0 -268
  353. package/client/bootstrap.ts +0 -47
  354. package/client/directive/privileged.ts +0 -28
  355. package/client/index.ts +0 -3
  356. package/client/profiled.ts +0 -83
  357. package/client/reducers/auth.ts +0 -31
  358. package/server/constants/error-code.ts +0 -22
  359. package/server/constants/error-message.ts +0 -0
  360. package/server/constants/max-age.ts +0 -1
  361. package/server/controllers/auth.ts +0 -5
  362. package/server/controllers/change-pwd.ts +0 -100
  363. package/server/controllers/checkin.ts +0 -21
  364. package/server/controllers/delete-user.ts +0 -76
  365. package/server/controllers/invitation.ts +0 -168
  366. package/server/controllers/profile.ts +0 -55
  367. package/server/controllers/reset-password.ts +0 -126
  368. package/server/controllers/signin.ts +0 -103
  369. package/server/controllers/signup.ts +0 -77
  370. package/server/controllers/unlock-user.ts +0 -62
  371. package/server/controllers/utils/make-invitation-token.ts +0 -5
  372. package/server/controllers/utils/make-verification-token.ts +0 -4
  373. package/server/controllers/utils/password-rule.ts +0 -120
  374. package/server/controllers/utils/save-invitation-token.ts +0 -10
  375. package/server/controllers/utils/save-verification-token.ts +0 -12
  376. package/server/controllers/verification.ts +0 -84
  377. package/server/errors/auth-error.ts +0 -24
  378. package/server/errors/index.ts +0 -2
  379. package/server/errors/user-domain-not-match-error.ts +0 -29
  380. package/server/index.ts +0 -37
  381. package/server/middlewares/authenticate-401-middleware.ts +0 -114
  382. package/server/middlewares/domain-authenticate-middleware.ts +0 -73
  383. package/server/middlewares/graphql-authenticate-middleware.ts +0 -13
  384. package/server/middlewares/index.ts +0 -67
  385. package/server/middlewares/jwt-authenticate-middleware.ts +0 -84
  386. package/server/middlewares/signin-middleware.ts +0 -56
  387. package/server/middlewares/webauthn-middleware.ts +0 -131
  388. package/server/migrations/1548206416130-SeedUser.ts +0 -60
  389. package/server/migrations/1566805283882-SeedPrivilege.ts +0 -28
  390. package/server/migrations/index.ts +0 -9
  391. package/server/router/auth-checkin-router.ts +0 -115
  392. package/server/router/auth-private-process-router.ts +0 -127
  393. package/server/router/auth-public-process-router.ts +0 -319
  394. package/server/router/auth-signin-router.ts +0 -76
  395. package/server/router/auth-signup-router.ts +0 -95
  396. package/server/router/index.ts +0 -9
  397. package/server/router/oauth2/index.ts +0 -2
  398. package/server/router/oauth2/oauth2-authorize-router.ts +0 -81
  399. package/server/router/oauth2/oauth2-router.ts +0 -165
  400. package/server/router/oauth2/oauth2-server.ts +0 -262
  401. package/server/router/oauth2/passport-oauth2-client-password.ts +0 -87
  402. package/server/router/oauth2/passport-refresh-token.ts +0 -87
  403. package/server/router/path-base-domain-router.ts +0 -8
  404. package/server/router/site-root-router.ts +0 -48
  405. package/server/router/webauthn-router.ts +0 -85
  406. package/server/routes.ts +0 -89
  407. package/server/service/app-binding/app-binding-mutation.ts +0 -22
  408. package/server/service/app-binding/app-binding-query.ts +0 -92
  409. package/server/service/app-binding/app-binding-types.ts +0 -11
  410. package/server/service/app-binding/app-binding.ts +0 -17
  411. package/server/service/app-binding/index.ts +0 -4
  412. package/server/service/appliance/appliance-mutation.ts +0 -113
  413. package/server/service/appliance/appliance-query.ts +0 -76
  414. package/server/service/appliance/appliance-types.ts +0 -56
  415. package/server/service/appliance/appliance.ts +0 -133
  416. package/server/service/appliance/index.ts +0 -6
  417. package/server/service/application/application-mutation.ts +0 -104
  418. package/server/service/application/application-query.ts +0 -98
  419. package/server/service/application/application-types.ts +0 -76
  420. package/server/service/application/application.ts +0 -216
  421. package/server/service/application/index.ts +0 -6
  422. package/server/service/auth-provider/auth-provider-mutation.ts +0 -159
  423. package/server/service/auth-provider/auth-provider-parameter-spec.ts +0 -24
  424. package/server/service/auth-provider/auth-provider-query.ts +0 -88
  425. package/server/service/auth-provider/auth-provider-type.ts +0 -67
  426. package/server/service/auth-provider/auth-provider.ts +0 -155
  427. package/server/service/auth-provider/index.ts +0 -7
  428. package/server/service/domain-generator/domain-generator-mutation.ts +0 -117
  429. package/server/service/domain-generator/domain-generator-types.ts +0 -46
  430. package/server/service/domain-generator/index.ts +0 -3
  431. package/server/service/granted-role/granted-role-mutation.ts +0 -156
  432. package/server/service/granted-role/granted-role-query.ts +0 -60
  433. package/server/service/granted-role/granted-role.ts +0 -27
  434. package/server/service/granted-role/index.ts +0 -6
  435. package/server/service/index.ts +0 -90
  436. package/server/service/invitation/index.ts +0 -6
  437. package/server/service/invitation/invitation-mutation.ts +0 -78
  438. package/server/service/invitation/invitation-query.ts +0 -33
  439. package/server/service/invitation/invitation-types.ts +0 -11
  440. package/server/service/invitation/invitation.ts +0 -63
  441. package/server/service/login-history/index.ts +0 -5
  442. package/server/service/login-history/login-history-query.ts +0 -51
  443. package/server/service/login-history/login-history-type.ts +0 -12
  444. package/server/service/login-history/login-history.ts +0 -45
  445. package/server/service/partner/index.ts +0 -6
  446. package/server/service/partner/partner-mutation.ts +0 -61
  447. package/server/service/partner/partner-query.ts +0 -102
  448. package/server/service/partner/partner-types.ts +0 -11
  449. package/server/service/partner/partner.ts +0 -57
  450. package/server/service/password-history/index.ts +0 -3
  451. package/server/service/password-history/password-history.ts +0 -16
  452. package/server/service/privilege/index.ts +0 -6
  453. package/server/service/privilege/privilege-directive.ts +0 -77
  454. package/server/service/privilege/privilege-mutation.ts +0 -92
  455. package/server/service/privilege/privilege-query.ts +0 -94
  456. package/server/service/privilege/privilege-types.ts +0 -60
  457. package/server/service/privilege/privilege.ts +0 -102
  458. package/server/service/role/index.ts +0 -6
  459. package/server/service/role/role-mutation.ts +0 -109
  460. package/server/service/role/role-query.ts +0 -155
  461. package/server/service/role/role-types.ts +0 -81
  462. package/server/service/role/role.ts +0 -72
  463. package/server/service/user/domain-query.ts +0 -24
  464. package/server/service/user/index.ts +0 -7
  465. package/server/service/user/user-mutation.ts +0 -517
  466. package/server/service/user/user-query.ts +0 -145
  467. package/server/service/user/user-types.ts +0 -100
  468. package/server/service/user/user.ts +0 -386
  469. package/server/service/users-auth-providers/index.ts +0 -5
  470. package/server/service/users-auth-providers/users-auth-providers.ts +0 -71
  471. package/server/service/verification-token/index.ts +0 -3
  472. package/server/service/verification-token/verification-token.ts +0 -60
  473. package/server/service/web-auth-credential/index.ts +0 -3
  474. package/server/service/web-auth-credential/web-auth-credential.ts +0 -66
  475. package/server/templates/account-unlock-email.ts +0 -65
  476. package/server/templates/invitation-email.ts +0 -66
  477. package/server/templates/reset-password-email.ts +0 -65
  478. package/server/templates/verification-email.ts +0 -66
  479. package/server/types.ts +0 -21
  480. package/server/utils/accepts.ts +0 -11
  481. package/server/utils/access-token-cookie.ts +0 -50
  482. package/server/utils/check-permission.ts +0 -52
  483. package/server/utils/check-user-belongs-domain.ts +0 -19
  484. package/server/utils/check-user-has-role.ts +0 -29
  485. package/server/utils/encrypt-state.ts +0 -22
  486. package/server/utils/get-aes-256-key.ts +0 -13
  487. package/server/utils/get-domain-users.ts +0 -38
  488. package/server/utils/get-secret.ts +0 -13
  489. package/server/utils/get-user-domains.ts +0 -115
package/client/auth.ts DELETED
@@ -1,268 +0,0 @@
1
- /* [ AUTH PATH ]
2
- signinPath = '/auth/signin'
3
- signoutPath = '/auth/signout'
4
- profilePath = '/auth/profile'
5
- updateProfilePath = '/auth/update-profile'
6
- changepassPath = '/auth/change-pass'
7
- deleteUserPath = '/auth/delete-user'
8
- */
9
-
10
- const HEADER_JSON = {
11
- 'Content-Type': 'application/json',
12
- Accept: 'application/json'
13
- }
14
- type AuthEventName = 'profile' | 'signin' | 'signout' | 'presignout' | 'passwordchange' | 'error'
15
- type AuthEventHandler = (e?: {
16
- accessToken?: string
17
- credential?: string
18
- domains: any[]
19
- domain: any
20
- languages?: { code: string; display: string }[]
21
- }) => void
22
- type AuthErrorHandler = (err: any) => void
23
-
24
- class ClientAuth {
25
- private listeners: {
26
- profile: AuthEventHandler[]
27
- signout: AuthEventHandler[]
28
- signin: AuthEventHandler[]
29
- presignout: AuthEventHandler[]
30
- passwordchange: AuthEventHandler[]
31
- error: AuthErrorHandler[]
32
- } = {
33
- profile: [],
34
- signout: [],
35
- signin: [],
36
- presignout: [],
37
- passwordchange: [],
38
- error: []
39
- }
40
-
41
- private authRequiredEventListener = this.onAuthRequired.bind(this)
42
- private activateRequiredEventListener = this.onActivateRequired.bind(this)
43
-
44
- private _credential: any
45
- private accessToken?: string
46
- private domains: any[] = []
47
- private domain: any
48
- private languages: { code: string; display: string }[] = []
49
-
50
- constructor() {
51
- document.addEventListener('auth-required', this.authRequiredEventListener)
52
- document.addEventListener('activate-required', this.activateRequiredEventListener)
53
- }
54
-
55
- on(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {
56
- var listeners = this.listeners[event]
57
- if (listeners) {
58
- listeners.push(handler)
59
- } else {
60
- console.log('unknown event', event)
61
- }
62
-
63
- if (event == 'profile' && this._credential) {
64
- /*
65
- 특별히 event 가 profile 인 경우에는 이미 fetch된 credential이 있다면, 콜백을 해준다.
66
- 시스템 bootstrap에서 profile 이벤트가 사용되는 경우가 많은데, profile도 매우 초기에 fetch 되므로 레이스컨디션이 발생할 수 있기 때문에, 확실하게 event 콜백을 보장하기 위해서이다.
67
- */
68
- handler({ credential: this._credential, domains: this.domains, domain: this.domain, languages: this.languages })
69
- }
70
- }
71
-
72
- off(event: AuthEventName, handler: AuthEventHandler | AuthErrorHandler) {
73
- var listeners = this.listeners[event]
74
- if (listeners) {
75
- let idx = listeners.indexOf(handler)
76
- idx >= 0 && listeners.splice(idx, 1)
77
- } else {
78
- console.log('unknown event', event)
79
- }
80
- }
81
-
82
- dispose() {
83
- document.removeEventListener('auth-required', this.authRequiredEventListener)
84
- document.removeEventListener('activate-required', this.activateRequiredEventListener)
85
-
86
- this.listeners = {
87
- profile: [],
88
- signin: [],
89
- signout: [],
90
- presignout: [],
91
- passwordchange: [],
92
- error: []
93
- }
94
- }
95
-
96
- private onProfileFetched({ credential, accessToken, domains, domain, languages }) {
97
- this._credential = credential
98
- this.domains = domains
99
- this.domain = domain
100
- this.languages = languages
101
-
102
- if (accessToken && !this.accessToken) {
103
- /*
104
- 기존에 세션을 가지거나, 액세스토큰으로 인증된 경우,
105
- 이 경우는 signin 이벤트리스너들을 호출해서 authenticated 상태로 되도록 유도한다.
106
- */
107
- this.accessToken = accessToken
108
- this.listeners.signin.forEach(handler => handler({ accessToken, domains, domain, languages }))
109
- }
110
- accessToken && (this.accessToken = accessToken)
111
- this.listeners.profile.forEach(handler => handler({ credential, domains, domain, languages }))
112
- }
113
-
114
- private async onPreSignout() {
115
- for (let onpresignout of this.listeners.presignout) {
116
- await onpresignout()
117
- }
118
- }
119
-
120
- private onAuthError(error) {
121
- /* signin, signup 과정에서 에러가 발생한 경우 */
122
- this.listeners?.error.forEach(handler => handler(error))
123
- }
124
-
125
- private onPasswordChanged(result) {
126
- //event is passwordchange, handler is result
127
- this.listeners?.passwordchange.forEach(handler => handler(result))
128
- }
129
-
130
- private onAuthRequired(e) {
131
- console.warn('authentication required')
132
- let url = new URL(window.location.href)
133
- url.pathname = '/auth/signin'
134
- url.searchParams.append('redirect_to', window.location.href)
135
-
136
- window.location.href = url.href
137
- }
138
-
139
- private onActivateRequired(e) {
140
- console.warn('activate required')
141
- var params = new URLSearchParams()
142
- params.append('email', e.email)
143
-
144
- window.location.replace(`/auth/activate?${params}`)
145
- }
146
-
147
- get credential() {
148
- return this._credential
149
- }
150
-
151
- route(path, redirected) {
152
- /* history에 남긴다. redirected된 상태임을 남긴다. */
153
- const location = window.location
154
- const origin = location.origin || location.protocol + '//' + location.host
155
- const href = `${origin}${path}`
156
-
157
- if (location.pathname === path) return
158
-
159
- // popstate 이벤트가 history.back() 에서만 발생하므로
160
- // 히스토리에 두번을 넣고 back()을 호출하는 편법을 사용함.
161
- // forward history가 한번 남는 문제가 있으나 signin 프로세스 중에만 발생하므로 큰 문제는 아님.
162
- // 이 로직은 login process가 어플리케이션 구조에 종속되는 것을 최소화하기 위함임.
163
- // 예를 들면, redux 구조에 들어가지 않아도 로그인 프로세스가 동작하도록 한 것임.
164
- window.history.pushState({ redirected }, '', href)
165
- window.history.pushState({}, '', href)
166
-
167
- window.history.back()
168
- }
169
-
170
- async updateProfile(formProps) {
171
- const response = await fetch('/auth/update-profile', {
172
- method: 'POST',
173
- credentials: 'include',
174
- headers: HEADER_JSON,
175
- body: JSON.stringify(formProps)
176
- })
177
-
178
- const message = await response.text()
179
- if (response.ok) {
180
- return message
181
- }
182
-
183
- throw new Error(message)
184
- }
185
-
186
- async changePassword(formProps) {
187
- try {
188
- const response = await fetch('/auth/change-pass', {
189
- method: 'POST',
190
- credentials: 'include',
191
- headers: HEADER_JSON,
192
- body: JSON.stringify(formProps)
193
- })
194
-
195
- const message = await response.text()
196
- if (response.ok) {
197
- this.onPasswordChanged({ message })
198
- } else {
199
- this.onAuthError({ message })
200
- }
201
- } catch (e) {
202
- this.onAuthError(e)
203
- }
204
- }
205
-
206
- async deleteUser(params) {
207
- const response = await fetch('/auth/delete-user', {
208
- method: 'POST',
209
- credentials: 'include',
210
- headers: HEADER_JSON,
211
- body: JSON.stringify(params)
212
- })
213
-
214
- const message = await response.text()
215
- if (response.ok) {
216
- return message
217
- } else {
218
- throw new Error(message)
219
- }
220
- }
221
-
222
- async profile() {
223
- try {
224
- var searchParams = new URLSearchParams(location.search)
225
- var token = searchParams.get('token')
226
- var headers = JSON.parse(JSON.stringify(HEADER_JSON))
227
-
228
- if (token) {
229
- headers.authorization = `Bearer ${token}`
230
- }
231
-
232
- const response = await fetch('/auth/profile', {
233
- method: 'GET',
234
- credentials: 'include',
235
- headers
236
- })
237
-
238
- if (response.ok) {
239
- if (response.redirected) {
240
- location.href = response.url
241
- return
242
- }
243
-
244
- const data = await response.json()
245
-
246
- this.onProfileFetched({
247
- credential: data.user,
248
- accessToken: data.token,
249
- domains: data.domains,
250
- domain: data.domain,
251
- languages: data.languages
252
- })
253
-
254
- return
255
- }
256
- } catch (e) {
257
- this.onAuthError(e)
258
- }
259
- }
260
-
261
- async signout() {
262
- await this.onPreSignout()
263
-
264
- window.location.href = '/auth/signout'
265
- }
266
- }
267
-
268
- export const auth = new ClientAuth()
@@ -1,47 +0,0 @@
1
- import { store, updateDomains } from '@operato/shell'
2
-
3
- import { updateAuthenticated, updateUser } from './actions/auth'
4
- import { auth } from './auth'
5
- import reducerAuth from './reducers/auth'
6
-
7
- import './directive/privileged' /* directive 초기화를 보장하기 위해서 호출함. */
8
-
9
- export default function bootstrap() {
10
- store.addReducers({
11
- auth: reducerAuth
12
- })
13
-
14
- auth.on('profile', ({ credential, domains, domain, languages }) => {
15
- store.dispatch(
16
- updateAuthenticated({
17
- authenticated: true
18
- }) as any
19
- )
20
- store.dispatch(updateUser(credential) as any)
21
- store.dispatch(updateDomains(domains, domain) as any)
22
- })
23
-
24
- auth.on('passwordchange', result => {
25
- let message = result.message
26
-
27
- document.dispatchEvent(
28
- new CustomEvent('notify', {
29
- detail: {
30
- level: result.error ? 'error' : 'info',
31
- message
32
- }
33
- })
34
- )
35
- })
36
-
37
- auth.on('error', ex => {
38
- document.dispatchEvent(
39
- new CustomEvent('notify', {
40
- detail: {
41
- level: 'error',
42
- message: ex.message
43
- }
44
- })
45
- )
46
- })
47
- }
@@ -1,28 +0,0 @@
1
- import { nothing } from 'lit'
2
- import { directive, AsyncDirective } from 'lit/async-directive.js'
3
- import { hasPrivilege } from '../profiled'
4
-
5
- class PrivilegedDirective extends AsyncDirective {
6
- render(
7
- privilege: {
8
- privilege?: string
9
- category?: string
10
- domainOwnerGranted?: boolean
11
- superUserGranted?: boolean
12
- },
13
- trueResult: any,
14
- falseResult: any = nothing
15
- ) {
16
- this.setValue(nothing)
17
-
18
- hasPrivilege(privilege).then(result => {
19
- if (result) {
20
- this.setValue(trueResult)
21
- } else {
22
- this.setValue(falseResult)
23
- }
24
- })
25
- }
26
- }
27
-
28
- export const privileged = directive(PrivilegedDirective)
package/client/index.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './auth'
2
- export * from './profiled'
3
- export * from './directive/privileged'
@@ -1,83 +0,0 @@
1
- import { auth } from './auth'
2
-
3
- var profileResolved = false
4
- var user
5
- var languages
6
- var domain
7
- var domains
8
-
9
- const profileReady = new Promise<void>(resolve => {
10
- auth.on('profile', (data: { credential; domains; domain; languages }) => {
11
- profileResolved = true
12
-
13
- user = data.credential
14
- languages = data.languages
15
- domain = data.domain
16
- domains = data.domains
17
-
18
- resolve()
19
- })
20
- })
21
-
22
- export async function hasPrivilege({
23
- privilege,
24
- category,
25
- domainOwnerGranted,
26
- superUserGranted
27
- }: {
28
- privilege?: string
29
- category?: string
30
- domainOwnerGranted?: boolean
31
- superUserGranted?: boolean
32
- }) {
33
- if (!profileResolved) {
34
- await profileReady
35
- }
36
-
37
- const { privileges, owner, super: superUser, unsafeIP } = user
38
-
39
- if (unsafeIP) {
40
- if (privilege && category) {
41
- // unsafeIP 상황에서는 ownership granted는 적용되지 않는다.
42
- return (privileges || []).find(p => p.privilege == privilege && p.category == category)
43
- }
44
-
45
- // privileage, category가 설정되지 않은 경우에는 ownership granted가 설정되었다면 허가하지 않는다.
46
- return !domainOwnerGranted && !superUserGranted
47
- } else {
48
- if (!privilege || !category) {
49
- // privileage, category가 설정되지 않은 경우에는 ownership granted만을 적용한다.
50
- return (domainOwnerGranted && owner) || (superUserGranted && superUser)
51
- }
52
-
53
- if ((domainOwnerGranted && owner) || (superUserGranted && superUser)) {
54
- return true
55
- }
56
-
57
- return (privileges || []).find(p => p.privilege == privilege && p.category == category)
58
- }
59
- }
60
-
61
- export async function getLanguages() {
62
- if (!profileResolved) {
63
- await profileReady
64
- }
65
-
66
- return languages
67
- }
68
-
69
- export async function getDomain() {
70
- if (!profileResolved) {
71
- await profileReady
72
- }
73
-
74
- return domain
75
- }
76
-
77
- export async function getDomains() {
78
- if (!profileResolved) {
79
- await profileReady
80
- }
81
-
82
- return domains
83
- }
@@ -1,31 +0,0 @@
1
- import { SET_AUTH, SET_PROFILE } from '../actions/auth'
2
-
3
- const INITIAL_STATE = {
4
- authenticated: false,
5
- accessToken: '',
6
- user: null
7
- }
8
-
9
- const auth = (state = INITIAL_STATE, action) => {
10
- switch (action.type) {
11
- case SET_AUTH:
12
- let auth = action.auth
13
-
14
- return {
15
- ...state,
16
- authenticated: auth.authenticated,
17
- accessToken: auth.accessToken
18
- }
19
-
20
- case SET_PROFILE:
21
- return {
22
- ...state,
23
- user: action.user
24
- }
25
-
26
- default:
27
- return state
28
- }
29
- }
30
-
31
- export default auth
@@ -1,22 +0,0 @@
1
- export const USER_NOT_FOUND = 'user not found'
2
- export const PASSWORD_NOT_MATCHED = 'password-not-matched'
3
- export const USER_NOT_ACTIVATED = 'user not activated'
4
- export const USER_LOCKED = 'user-locked'
5
- export const USER_DELETED = 'user-deleted'
6
- export const NO_AVAILABLE_DOMAIN = 'no-available-domain'
7
- export const UNAVAILABLE_DOMAIN = 'unavailable-domain'
8
- export const NO_SELECTED_DOMAIN = 'no-selected-domain'
9
- export const REDIRECT_TO_DEFAULT_DOMAIN = 'redirect-to-default-domain'
10
- export const TOKEN_INVALID = 'token-invalid'
11
- export const AUTH_INVALID = 'auth-invalid'
12
- export const SUBDOMAIN_NOTFOUND = 'subdomain not found'
13
- export const CONFIRM_PASSWORD_NOT_MATCHED = 'confirm password not matched'
14
- export const PASSWORD_PATTERN_NOT_MATCHED = 'password should match the rule'
15
- export const USER_DUPLICATED = 'user duplicated'
16
- export const PASSWORD_USED_PAST = 'password used in the past'
17
- export const VERIFICATION_ERROR = 'user or verification token not found'
18
- export const AUTHN_VERIFICATION_FAILED = 'authn verification failed'
19
- export const USER_CREDENTIAL_NOT_FOUND = 'user credential not found'
20
- export const EMAIL_ALREADY_EXISTS = 'email already exists'
21
- export const USERNAME_ALREADY_EXISTS = 'email already exists'
22
- export const AUTH_ERROR = 'auth error'
File without changes
@@ -1 +0,0 @@
1
- export const MAX_AGE = 7 * 24 * 3600 * 1000
@@ -1,5 +0,0 @@
1
- export * from './change-pwd'
2
- export * from './signin'
3
- export * from './signup'
4
- export * from './verification'
5
- export * from './invitation'
@@ -1,100 +0,0 @@
1
- import { config } from '@things-factory/env'
2
- import { getRepository } from '@things-factory/shell'
3
-
4
- import {
5
- CONFIRM_PASSWORD_NOT_MATCHED,
6
- PASSWORD_NOT_MATCHED,
7
- PASSWORD_USED_PAST,
8
- USER_NOT_FOUND
9
- } from '../constants/error-code'
10
- import { AuthError } from '../errors/auth-error'
11
- import { PasswordHistory } from '../service/password-history/password-history'
12
- import { User } from '../service/user/user'
13
-
14
- const HISTORY_SIZE = config.get('password', { history: 0 }).history
15
-
16
- export async function changePwd(attrs, currentPass, newPass, confirmPass, context) {
17
- const { domain } = context.state
18
-
19
- // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.
20
- const repository = getRepository(User)
21
-
22
- const user: User = await repository.findOne({ where: { id: attrs.id } })
23
-
24
- if (!user) {
25
- throw new AuthError({
26
- errorCode: USER_NOT_FOUND
27
- })
28
- }
29
-
30
- if (newPass !== confirmPass) {
31
- throw new AuthError({
32
- errorCode: CONFIRM_PASSWORD_NOT_MATCHED
33
- })
34
- }
35
-
36
- if (!User.verify(user.password, currentPass, user.salt)) {
37
- throw new AuthError({
38
- errorCode: PASSWORD_NOT_MATCHED,
39
- detail: {
40
- username: user.username,
41
- email: user.email,
42
- failCount: user.failCount
43
- }
44
- })
45
- }
46
-
47
- /* check if password is following the rule */
48
- User.validatePasswordByRule(newPass, context?.lng)
49
-
50
- user.password = User.encode(newPass, user.salt)
51
-
52
- if (HISTORY_SIZE > 0) {
53
- var passwordHistory: PasswordHistory = await getRepository(PasswordHistory).findOneBy({ userId: user.id })
54
- var history = []
55
-
56
- if (passwordHistory) {
57
- try {
58
- history = JSON.parse(passwordHistory.history)
59
- if (!(history instanceof Array)) {
60
- console.error('password history maybe currupted - not an array')
61
- history = []
62
- }
63
- } catch (e) {
64
- console.error('password history currupted - not json format')
65
- }
66
-
67
- const found = history.slice(0, HISTORY_SIZE).find(h => {
68
- return User.verify(h.password, newPass, h.salt)
69
- })
70
-
71
- if (found) {
72
- throw new AuthError({
73
- errorCode: PASSWORD_USED_PAST
74
- })
75
- }
76
- }
77
- }
78
-
79
- await repository.save({
80
- ...user,
81
- passwordUpdatedAt: new Date()
82
- })
83
-
84
- if (HISTORY_SIZE > 0) {
85
- history = [
86
- {
87
- password: user.password,
88
- salt: user.salt
89
- },
90
- ...history
91
- ].slice(0, HISTORY_SIZE)
92
-
93
- await getRepository(PasswordHistory).save({
94
- userId: user.id,
95
- history: JSON.stringify(history)
96
- })
97
- }
98
-
99
- return await user.sign({ subdomain: domain.subdomain })
100
- }
@@ -1,21 +0,0 @@
1
- import { Domain, getRepository } from '@things-factory/shell'
2
-
3
- import { User } from '../service/user/user'
4
- import { getUserDomains } from '../utils/get-user-domains'
5
-
6
- export async function checkin({ userId, subdomain }) {
7
- const userRepo = getRepository(User)
8
- const user = await userRepo.findOne({ where: { id: userId } })
9
- const domains: Partial<Domain>[] = await getUserDomains(user)
10
-
11
- if (!domains?.length) {
12
- return false
13
- }
14
-
15
- const domain = domains.find(domain => domain.subdomain == subdomain)
16
- if (!domain) {
17
- return false
18
- }
19
-
20
- return await user.sign({ subdomain })
21
- }
@@ -1,76 +0,0 @@
1
- import { EntityManager, ILike, In } from 'typeorm'
2
- import { User, UserStatus } from '../service/user/user'
3
- import { AuthError } from '../errors/auth-error'
4
- import { USER_NOT_FOUND } from '../constants/error-code'
5
-
6
- export async function deleteUser(attrs, tx?: EntityManager) {
7
- // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.
8
- // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.
9
-
10
- const repository = tx?.getRepository(User)
11
- const { username } = attrs
12
-
13
- var user = await repository.findOne({
14
- where: { username },
15
- relations: ['domains']
16
- })
17
-
18
- /*
19
- 정확한 이메일 정규표현식은 /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(username) 이지만,
20
- appliance 용으로 사용된 이메일로 {{uuid}}@{{domain slugger}} 식으로 사용했으므로
21
- email 유효성 판단에 /^[^\s@]+@[^\s@]+$/.test(username) 를 사용함.
22
- */
23
- if (!user && /^[^\s@]+@[^\s@]+$/.test(username)) {
24
- user = await repository.findOne({
25
- where: { email: ILike(username) },
26
- relations: ['domains']
27
- })
28
- }
29
-
30
- if (!user) {
31
- throw new AuthError({
32
- errorCode: USER_NOT_FOUND
33
- })
34
- }
35
-
36
- user.status = UserStatus.DELETED
37
- user.domains = []
38
-
39
- await repository.save(user)
40
- }
41
-
42
- export async function deleteUsers(attrs, tx?: EntityManager) {
43
- // TODO 이 사용자가 이 도메인에 속한 사용자인지 확인해야함.
44
- // TODO 다른 도메인에도 포함되어있다면, domains-users 관게와 해당 도메인 관련 정보만 삭제해야 함.
45
-
46
- const { usernames } = attrs
47
-
48
- const repo = tx?.getRepository(User)
49
-
50
- const users = await repo.find({
51
- where: {
52
- username: In(usernames)
53
- }
54
- })
55
-
56
- const userIds = []
57
- users.forEach(user => {
58
- user.status = UserStatus.DELETED
59
- user.domains = []
60
-
61
- userIds.push(user.id)
62
- })
63
-
64
- await repo.save(users)
65
-
66
- // repository api는 작동하지 않음.
67
- // await txManager
68
- // .createQueryBuilder()
69
- // .delete()
70
- // .from('users_domains')
71
- // .where({
72
- // usersId: In(userIds)
73
- // })
74
- // .execute()
75
- return true
76
- }