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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/config/config.development.js +45 -0
  2. package/config/config.production.js +45 -0
  3. package/dist-client/bootstrap.d.ts +1 -1
  4. package/dist-client/bootstrap.js +4 -4
  5. package/dist-client/bootstrap.js.map +1 -1
  6. package/dist-client/directive/privileged.d.ts +1 -1
  7. package/dist-client/directive/privileged.js +1 -1
  8. package/dist-client/directive/privileged.js.map +1 -1
  9. package/dist-client/index.d.ts +4 -3
  10. package/dist-client/index.js +4 -3
  11. package/dist-client/index.js.map +1 -1
  12. package/dist-client/profiled.js +1 -1
  13. package/dist-client/profiled.js.map +1 -1
  14. package/dist-client/reducers/auth.js +1 -1
  15. package/dist-client/reducers/auth.js.map +1 -1
  16. package/dist-client/tsconfig.tsbuildinfo +1 -1
  17. package/dist-client/verify-webauthn.d.ts +13 -0
  18. package/dist-client/verify-webauthn.js +72 -0
  19. package/dist-client/verify-webauthn.js.map +1 -0
  20. package/dist-server/constants/error-code.d.ts +2 -0
  21. package/dist-server/constants/error-code.js +3 -1
  22. package/dist-server/constants/error-code.js.map +1 -1
  23. package/dist-server/controllers/auth.d.ts +5 -5
  24. package/dist-server/controllers/auth.js +5 -5
  25. package/dist-server/controllers/auth.js.map +1 -1
  26. package/dist-server/controllers/change-pwd.js +21 -21
  27. package/dist-server/controllers/change-pwd.js.map +1 -1
  28. package/dist-server/controllers/checkin.js +4 -4
  29. package/dist-server/controllers/checkin.js.map +1 -1
  30. package/dist-server/controllers/delete-user.js +22 -21
  31. package/dist-server/controllers/delete-user.js.map +1 -1
  32. package/dist-server/controllers/invitation.d.ts +2 -1
  33. package/dist-server/controllers/invitation.js +46 -21
  34. package/dist-server/controllers/invitation.js.map +1 -1
  35. package/dist-server/controllers/profile.d.ts +9 -8
  36. package/dist-server/controllers/profile.js +26 -8
  37. package/dist-server/controllers/profile.js.map +1 -1
  38. package/dist-server/controllers/reset-password.js +24 -24
  39. package/dist-server/controllers/reset-password.js.map +1 -1
  40. package/dist-server/controllers/signin.d.ts +5 -2
  41. package/dist-server/controllers/signin.js +41 -25
  42. package/dist-server/controllers/signin.js.map +1 -1
  43. package/dist-server/controllers/signup.d.ts +1 -1
  44. package/dist-server/controllers/signup.js +26 -17
  45. package/dist-server/controllers/signup.js.map +1 -1
  46. package/dist-server/controllers/unlock-user.js +18 -17
  47. package/dist-server/controllers/unlock-user.js.map +1 -1
  48. package/dist-server/controllers/utils/password-rule.js +4 -4
  49. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  50. package/dist-server/controllers/utils/save-invitation-token.d.ts +1 -1
  51. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  52. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  53. package/dist-server/controllers/utils/save-verification-token.d.ts +1 -1
  54. package/dist-server/controllers/utils/save-verification-token.js +3 -3
  55. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  56. package/dist-server/controllers/verification.js +24 -23
  57. package/dist-server/controllers/verification.js.map +1 -1
  58. package/dist-server/errors/auth-error.js +1 -1
  59. package/dist-server/errors/auth-error.js.map +1 -1
  60. package/dist-server/errors/index.d.ts +2 -2
  61. package/dist-server/errors/index.js +2 -2
  62. package/dist-server/errors/index.js.map +1 -1
  63. package/dist-server/errors/user-domain-not-match-error.d.ts +1 -1
  64. package/dist-server/errors/user-domain-not-match-error.js +8 -8
  65. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  66. package/dist-server/index.d.ts +16 -16
  67. package/dist-server/index.js +18 -18
  68. package/dist-server/index.js.map +1 -1
  69. package/dist-server/middlewares/authenticate-401-middleware.js +11 -11
  70. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  71. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +1 -1
  72. package/dist-server/middlewares/domain-authenticate-middleware.js +9 -9
  73. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  74. package/dist-server/middlewares/graphql-authenticate-middleware.js +4 -4
  75. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  76. package/dist-server/middlewares/index.d.ts +5 -5
  77. package/dist-server/middlewares/index.js +18 -18
  78. package/dist-server/middlewares/index.js.map +1 -1
  79. package/dist-server/middlewares/jwt-authenticate-middleware.js +15 -15
  80. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  81. package/dist-server/middlewares/signin-middleware.js +7 -6
  82. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  83. package/dist-server/middlewares/verify-recaptcha-middleware.d.ts +3 -0
  84. package/dist-server/middlewares/verify-recaptcha-middleware.js +95 -0
  85. package/dist-server/middlewares/verify-recaptcha-middleware.js.map +1 -0
  86. package/dist-server/middlewares/webauthn-middleware.js +16 -13
  87. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  88. package/dist-server/migrations/1548206416130-SeedUser.js +8 -7
  89. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  90. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  91. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  92. package/dist-server/migrations/index.js.map +1 -1
  93. package/dist-server/router/auth-checkin-router.js +18 -12
  94. package/dist-server/router/auth-checkin-router.js.map +1 -1
  95. package/dist-server/router/auth-private-process-router.js +26 -21
  96. package/dist-server/router/auth-private-process-router.js.map +1 -1
  97. package/dist-server/router/auth-public-process-router.js +42 -31
  98. package/dist-server/router/auth-public-process-router.js.map +1 -1
  99. package/dist-server/router/auth-signin-router.js +16 -16
  100. package/dist-server/router/auth-signin-router.js.map +1 -1
  101. package/dist-server/router/auth-signup-router.js +13 -9
  102. package/dist-server/router/auth-signup-router.js.map +1 -1
  103. package/dist-server/router/index.d.ts +9 -9
  104. package/dist-server/router/index.js +9 -9
  105. package/dist-server/router/index.js.map +1 -1
  106. package/dist-server/router/oauth2/index.d.ts +2 -2
  107. package/dist-server/router/oauth2/index.js +2 -2
  108. package/dist-server/router/oauth2/index.js.map +1 -1
  109. package/dist-server/router/oauth2/oauth2-authorize-router.js +6 -6
  110. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  111. package/dist-server/router/oauth2/oauth2-router.d.ts +1 -1
  112. package/dist-server/router/oauth2/oauth2-router.js +21 -21
  113. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  114. package/dist-server/router/oauth2/oauth2-server.js +21 -21
  115. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  116. package/dist-server/router/site-root-router.js +4 -4
  117. package/dist-server/router/site-root-router.js.map +1 -1
  118. package/dist-server/router/webauthn-router.js +58 -8
  119. package/dist-server/router/webauthn-router.js.map +1 -1
  120. package/dist-server/routes.js +19 -19
  121. package/dist-server/routes.js.map +1 -1
  122. package/dist-server/service/app-binding/app-binding-mutation.js +4 -4
  123. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  124. package/dist-server/service/app-binding/app-binding-query.d.ts +4 -4
  125. package/dist-server/service/app-binding/app-binding-query.js +22 -22
  126. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  127. package/dist-server/service/app-binding/app-binding-types.d.ts +1 -1
  128. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  129. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  130. package/dist-server/service/app-binding/app-binding.d.ts +2 -2
  131. package/dist-server/service/app-binding/app-binding.js +4 -4
  132. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  133. package/dist-server/service/app-binding/index.d.ts +2 -2
  134. package/dist-server/service/app-binding/index.js +3 -3
  135. package/dist-server/service/app-binding/index.js.map +1 -1
  136. package/dist-server/service/appliance/appliance-mutation.d.ts +2 -2
  137. package/dist-server/service/appliance/appliance-mutation.js +21 -21
  138. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  139. package/dist-server/service/appliance/appliance-query.d.ts +3 -3
  140. package/dist-server/service/appliance/appliance-query.js +17 -17
  141. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  142. package/dist-server/service/appliance/appliance-types.d.ts +1 -1
  143. package/dist-server/service/appliance/appliance-types.js +2 -2
  144. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  145. package/dist-server/service/appliance/appliance.d.ts +1 -1
  146. package/dist-server/service/appliance/appliance.js +8 -8
  147. package/dist-server/service/appliance/appliance.js.map +1 -1
  148. package/dist-server/service/appliance/index.d.ts +3 -3
  149. package/dist-server/service/appliance/index.js +5 -5
  150. package/dist-server/service/appliance/index.js.map +1 -1
  151. package/dist-server/service/application/application-mutation.d.ts +8 -8
  152. package/dist-server/service/application/application-mutation.js +20 -20
  153. package/dist-server/service/application/application-mutation.js.map +1 -1
  154. package/dist-server/service/application/application-query.d.ts +2 -2
  155. package/dist-server/service/application/application-query.js +16 -16
  156. package/dist-server/service/application/application-query.js.map +1 -1
  157. package/dist-server/service/application/application-types.d.ts +1 -1
  158. package/dist-server/service/application/application-types.js +4 -4
  159. package/dist-server/service/application/application-types.js.map +1 -1
  160. package/dist-server/service/application/application.d.ts +1 -1
  161. package/dist-server/service/application/application.js +12 -12
  162. package/dist-server/service/application/application.js.map +1 -1
  163. package/dist-server/service/application/index.d.ts +3 -3
  164. package/dist-server/service/application/index.js +5 -5
  165. package/dist-server/service/application/index.js.map +1 -1
  166. package/dist-server/service/auth-provider/auth-provider-mutation.d.ts +2 -2
  167. package/dist-server/service/auth-provider/auth-provider-mutation.js +20 -20
  168. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  169. package/dist-server/service/auth-provider/auth-provider-query.d.ts +3 -3
  170. package/dist-server/service/auth-provider/auth-provider-query.js +20 -20
  171. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  172. package/dist-server/service/auth-provider/auth-provider-type.d.ts +1 -1
  173. package/dist-server/service/auth-provider/auth-provider-type.js +2 -2
  174. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  175. package/dist-server/service/auth-provider/auth-provider.d.ts +3 -3
  176. package/dist-server/service/auth-provider/auth-provider.js +12 -12
  177. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  178. package/dist-server/service/auth-provider/index.d.ts +3 -3
  179. package/dist-server/service/auth-provider/index.js +5 -5
  180. package/dist-server/service/auth-provider/index.js.map +1 -1
  181. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +1 -1
  182. package/dist-server/service/domain-generator/domain-generator-mutation.js +11 -11
  183. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  184. package/dist-server/service/domain-generator/domain-generator-types.d.ts +1 -1
  185. package/dist-server/service/domain-generator/domain-generator-types.js +3 -3
  186. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  187. package/dist-server/service/domain-generator/index.d.ts +1 -1
  188. package/dist-server/service/domain-generator/index.js +2 -2
  189. package/dist-server/service/domain-generator/index.js.map +1 -1
  190. package/dist-server/service/granted-role/granted-role-mutation.d.ts +3 -3
  191. package/dist-server/service/granted-role/granted-role-mutation.js +17 -17
  192. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  193. package/dist-server/service/granted-role/granted-role-query.d.ts +2 -2
  194. package/dist-server/service/granted-role/granted-role-query.js +13 -13
  195. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  196. package/dist-server/service/granted-role/granted-role.d.ts +1 -1
  197. package/dist-server/service/granted-role/granted-role.js +3 -3
  198. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  199. package/dist-server/service/granted-role/index.d.ts +3 -3
  200. package/dist-server/service/granted-role/index.js +5 -5
  201. package/dist-server/service/granted-role/index.js.map +1 -1
  202. package/dist-server/service/index.d.ts +25 -25
  203. package/dist-server/service/index.js +70 -70
  204. package/dist-server/service/index.js.map +1 -1
  205. package/dist-server/service/invitation/index.d.ts +3 -3
  206. package/dist-server/service/invitation/index.js +5 -5
  207. package/dist-server/service/invitation/index.js.map +1 -1
  208. package/dist-server/service/invitation/invitation-mutation.d.ts +4 -3
  209. package/dist-server/service/invitation/invitation-mutation.js +26 -14
  210. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  211. package/dist-server/service/invitation/invitation-query.d.ts +1 -1
  212. package/dist-server/service/invitation/invitation-query.js +7 -7
  213. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  214. package/dist-server/service/invitation/invitation-types.d.ts +1 -1
  215. package/dist-server/service/invitation/invitation-types.js +2 -2
  216. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  217. package/dist-server/service/invitation/invitation.d.ts +1 -1
  218. package/dist-server/service/invitation/invitation.js +5 -5
  219. package/dist-server/service/invitation/invitation.js.map +1 -1
  220. package/dist-server/service/login-history/index.d.ts +2 -2
  221. package/dist-server/service/login-history/index.js +4 -4
  222. package/dist-server/service/login-history/index.js.map +1 -1
  223. package/dist-server/service/login-history/login-history-query.d.ts +3 -3
  224. package/dist-server/service/login-history/login-history-query.js +11 -11
  225. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  226. package/dist-server/service/login-history/login-history-type.d.ts +1 -1
  227. package/dist-server/service/login-history/login-history-type.js +2 -2
  228. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  229. package/dist-server/service/login-history/login-history.d.ts +1 -1
  230. package/dist-server/service/login-history/login-history.js +4 -4
  231. package/dist-server/service/login-history/login-history.js.map +1 -1
  232. package/dist-server/service/partner/index.d.ts +3 -3
  233. package/dist-server/service/partner/index.js +5 -5
  234. package/dist-server/service/partner/index.js.map +1 -1
  235. package/dist-server/service/partner/partner-mutation.js +8 -8
  236. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  237. package/dist-server/service/partner/partner-query.d.ts +3 -3
  238. package/dist-server/service/partner/partner-query.js +17 -17
  239. package/dist-server/service/partner/partner-query.js.map +1 -1
  240. package/dist-server/service/partner/partner-types.d.ts +1 -1
  241. package/dist-server/service/partner/partner-types.js +2 -2
  242. package/dist-server/service/partner/partner-types.js.map +1 -1
  243. package/dist-server/service/partner/partner.d.ts +1 -1
  244. package/dist-server/service/partner/partner.js +5 -5
  245. package/dist-server/service/partner/partner.js.map +1 -1
  246. package/dist-server/service/password-history/index.d.ts +1 -1
  247. package/dist-server/service/password-history/index.js +2 -2
  248. package/dist-server/service/password-history/index.js.map +1 -1
  249. package/dist-server/service/privilege/index.d.ts +3 -3
  250. package/dist-server/service/privilege/index.js +5 -5
  251. package/dist-server/service/privilege/index.js.map +1 -1
  252. package/dist-server/service/privilege/privilege-directive.js +2 -2
  253. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  254. package/dist-server/service/privilege/privilege-mutation.d.ts +2 -2
  255. package/dist-server/service/privilege/privilege-mutation.js +15 -15
  256. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  257. package/dist-server/service/privilege/privilege-query.d.ts +4 -4
  258. package/dist-server/service/privilege/privilege-query.js +20 -20
  259. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  260. package/dist-server/service/privilege/privilege-types.d.ts +1 -1
  261. package/dist-server/service/privilege/privilege-types.js +2 -2
  262. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  263. package/dist-server/service/privilege/privilege.d.ts +2 -2
  264. package/dist-server/service/privilege/privilege.js +10 -10
  265. package/dist-server/service/privilege/privilege.js.map +1 -1
  266. package/dist-server/service/role/index.d.ts +3 -3
  267. package/dist-server/service/role/index.js +5 -5
  268. package/dist-server/service/role/index.js.map +1 -1
  269. package/dist-server/service/role/role-mutation.d.ts +2 -2
  270. package/dist-server/service/role/role-mutation.js +19 -19
  271. package/dist-server/service/role/role-mutation.js.map +1 -1
  272. package/dist-server/service/role/role-query.d.ts +4 -4
  273. package/dist-server/service/role/role-query.js +29 -29
  274. package/dist-server/service/role/role-query.js.map +1 -1
  275. package/dist-server/service/role/role-types.d.ts +1 -1
  276. package/dist-server/service/role/role-types.js +2 -2
  277. package/dist-server/service/role/role-types.js.map +1 -1
  278. package/dist-server/service/role/role.d.ts +2 -2
  279. package/dist-server/service/role/role.js +12 -12
  280. package/dist-server/service/role/role.js.map +1 -1
  281. package/dist-server/service/user/domain-query.d.ts +1 -1
  282. package/dist-server/service/user/domain-query.js +3 -3
  283. package/dist-server/service/user/domain-query.js.map +1 -1
  284. package/dist-server/service/user/index.d.ts +4 -4
  285. package/dist-server/service/user/index.js +6 -6
  286. package/dist-server/service/user/index.js.map +1 -1
  287. package/dist-server/service/user/user-mutation.d.ts +13 -12
  288. package/dist-server/service/user/user-mutation.js +141 -83
  289. package/dist-server/service/user/user-mutation.js.map +1 -1
  290. package/dist-server/service/user/user-query.d.ts +3 -3
  291. package/dist-server/service/user/user-query.js +21 -21
  292. package/dist-server/service/user/user-query.js.map +1 -1
  293. package/dist-server/service/user/user-types.d.ts +2 -1
  294. package/dist-server/service/user/user-types.js +6 -2
  295. package/dist-server/service/user/user-types.js.map +1 -1
  296. package/dist-server/service/user/user.d.ts +4 -3
  297. package/dist-server/service/user/user.js +80 -54
  298. package/dist-server/service/user/user.js.map +1 -1
  299. package/dist-server/service/users-auth-providers/index.d.ts +1 -1
  300. package/dist-server/service/users-auth-providers/index.js +2 -2
  301. package/dist-server/service/users-auth-providers/index.js.map +1 -1
  302. package/dist-server/service/users-auth-providers/users-auth-providers.d.ts +2 -2
  303. package/dist-server/service/users-auth-providers/users-auth-providers.js +8 -8
  304. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  305. package/dist-server/service/verification-token/index.d.ts +1 -1
  306. package/dist-server/service/verification-token/index.js +2 -2
  307. package/dist-server/service/verification-token/index.js.map +1 -1
  308. package/dist-server/service/web-auth-credential/index.d.ts +1 -1
  309. package/dist-server/service/web-auth-credential/index.js +2 -2
  310. package/dist-server/service/web-auth-credential/index.js.map +1 -1
  311. package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +1 -1
  312. package/dist-server/service/web-auth-credential/web-auth-credential.js +10 -10
  313. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  314. package/dist-server/templates/account-unlock-email.d.ts +2 -1
  315. package/dist-server/templates/account-unlock-email.js +1 -1
  316. package/dist-server/templates/account-unlock-email.js.map +1 -1
  317. package/dist-server/templates/invitation-email.d.ts +2 -1
  318. package/dist-server/templates/invitation-email.js +1 -1
  319. package/dist-server/templates/invitation-email.js.map +1 -1
  320. package/dist-server/templates/verification-email.d.ts +2 -1
  321. package/dist-server/templates/verification-email.js +1 -1
  322. package/dist-server/templates/verification-email.js.map +1 -1
  323. package/dist-server/tsconfig.tsbuildinfo +1 -1
  324. package/dist-server/types.d.ts +1 -1
  325. package/dist-server/types.js.map +1 -1
  326. package/dist-server/utils/access-token-cookie.js +2 -2
  327. package/dist-server/utils/access-token-cookie.js.map +1 -1
  328. package/dist-server/utils/check-permission.d.ts +2 -2
  329. package/dist-server/utils/check-permission.js +3 -3
  330. package/dist-server/utils/check-permission.js.map +1 -1
  331. package/dist-server/utils/check-user-belongs-domain.d.ts +1 -1
  332. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  333. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  334. package/dist-server/utils/check-user-has-role.d.ts +1 -1
  335. package/dist-server/utils/check-user-has-role.js +2 -2
  336. package/dist-server/utils/check-user-has-role.js.map +1 -1
  337. package/dist-server/utils/get-domain-users.d.ts +1 -1
  338. package/dist-server/utils/get-domain-users.js +2 -2
  339. package/dist-server/utils/get-domain-users.js.map +1 -1
  340. package/dist-server/utils/get-user-domains.d.ts +1 -1
  341. package/dist-server/utils/get-user-domains.js +4 -4
  342. package/dist-server/utils/get-user-domains.js.map +1 -1
  343. package/helps/config/recaptcha.ja.md +49 -0
  344. package/helps/config/recaptcha.ko.md +49 -0
  345. package/helps/config/recaptcha.md +49 -0
  346. package/helps/config/recaptcha.ms.md +49 -0
  347. package/helps/config/recaptcha.zh.md +49 -0
  348. package/package.json +10 -9
  349. package/translations/en.json +5 -1
  350. package/translations/ja.json +5 -1
  351. package/translations/ko.json +6 -3
  352. package/translations/ms.json +5 -1
  353. package/translations/zh.json +5 -1
  354. package/client/actions/auth.ts +0 -24
  355. package/client/auth.ts +0 -272
  356. package/client/bootstrap.ts +0 -47
  357. package/client/directive/privileged.ts +0 -28
  358. package/client/index.ts +0 -3
  359. package/client/profiled.ts +0 -83
  360. package/client/reducers/auth.ts +0 -31
  361. package/server/constants/error-code.ts +0 -20
  362. package/server/constants/error-message.ts +0 -0
  363. package/server/constants/max-age.ts +0 -1
  364. package/server/controllers/auth.ts +0 -5
  365. package/server/controllers/change-pwd.ts +0 -99
  366. package/server/controllers/checkin.ts +0 -21
  367. package/server/controllers/delete-user.ts +0 -68
  368. package/server/controllers/invitation.ts +0 -132
  369. package/server/controllers/profile.ts +0 -28
  370. package/server/controllers/reset-password.ts +0 -126
  371. package/server/controllers/signin.ts +0 -79
  372. package/server/controllers/signup.ts +0 -60
  373. package/server/controllers/unlock-user.ts +0 -61
  374. package/server/controllers/utils/make-invitation-token.ts +0 -5
  375. package/server/controllers/utils/make-verification-token.ts +0 -4
  376. package/server/controllers/utils/password-rule.ts +0 -120
  377. package/server/controllers/utils/save-invitation-token.ts +0 -10
  378. package/server/controllers/utils/save-verification-token.ts +0 -12
  379. package/server/controllers/verification.ts +0 -83
  380. package/server/errors/auth-error.ts +0 -24
  381. package/server/errors/index.ts +0 -2
  382. package/server/errors/user-domain-not-match-error.ts +0 -29
  383. package/server/index.ts +0 -37
  384. package/server/middlewares/authenticate-401-middleware.ts +0 -114
  385. package/server/middlewares/domain-authenticate-middleware.ts +0 -78
  386. package/server/middlewares/graphql-authenticate-middleware.ts +0 -13
  387. package/server/middlewares/index.ts +0 -67
  388. package/server/middlewares/jwt-authenticate-middleware.ts +0 -84
  389. package/server/middlewares/signin-middleware.ts +0 -55
  390. package/server/middlewares/webauthn-middleware.ts +0 -127
  391. package/server/migrations/1548206416130-SeedUser.ts +0 -59
  392. package/server/migrations/1566805283882-SeedPrivilege.ts +0 -28
  393. package/server/migrations/index.ts +0 -9
  394. package/server/router/auth-checkin-router.ts +0 -107
  395. package/server/router/auth-private-process-router.ts +0 -107
  396. package/server/router/auth-public-process-router.ts +0 -302
  397. package/server/router/auth-signin-router.ts +0 -65
  398. package/server/router/auth-signup-router.ts +0 -95
  399. package/server/router/index.ts +0 -9
  400. package/server/router/oauth2/index.ts +0 -2
  401. package/server/router/oauth2/oauth2-authorize-router.ts +0 -81
  402. package/server/router/oauth2/oauth2-router.ts +0 -165
  403. package/server/router/oauth2/oauth2-server.ts +0 -262
  404. package/server/router/oauth2/passport-oauth2-client-password.ts +0 -87
  405. package/server/router/oauth2/passport-refresh-token.ts +0 -87
  406. package/server/router/path-base-domain-router.ts +0 -8
  407. package/server/router/site-root-router.ts +0 -48
  408. package/server/router/webauthn-router.ts +0 -87
  409. package/server/routes.ts +0 -80
  410. package/server/service/app-binding/app-binding-mutation.ts +0 -22
  411. package/server/service/app-binding/app-binding-query.ts +0 -92
  412. package/server/service/app-binding/app-binding-types.ts +0 -11
  413. package/server/service/app-binding/app-binding.ts +0 -17
  414. package/server/service/app-binding/index.ts +0 -4
  415. package/server/service/appliance/appliance-mutation.ts +0 -113
  416. package/server/service/appliance/appliance-query.ts +0 -76
  417. package/server/service/appliance/appliance-types.ts +0 -56
  418. package/server/service/appliance/appliance.ts +0 -133
  419. package/server/service/appliance/index.ts +0 -6
  420. package/server/service/application/application-mutation.ts +0 -104
  421. package/server/service/application/application-query.ts +0 -98
  422. package/server/service/application/application-types.ts +0 -76
  423. package/server/service/application/application.ts +0 -216
  424. package/server/service/application/index.ts +0 -6
  425. package/server/service/auth-provider/auth-provider-mutation.ts +0 -159
  426. package/server/service/auth-provider/auth-provider-parameter-spec.ts +0 -24
  427. package/server/service/auth-provider/auth-provider-query.ts +0 -88
  428. package/server/service/auth-provider/auth-provider-type.ts +0 -67
  429. package/server/service/auth-provider/auth-provider.ts +0 -155
  430. package/server/service/auth-provider/index.ts +0 -7
  431. package/server/service/domain-generator/domain-generator-mutation.ts +0 -117
  432. package/server/service/domain-generator/domain-generator-types.ts +0 -46
  433. package/server/service/domain-generator/index.ts +0 -3
  434. package/server/service/granted-role/granted-role-mutation.ts +0 -156
  435. package/server/service/granted-role/granted-role-query.ts +0 -60
  436. package/server/service/granted-role/granted-role.ts +0 -27
  437. package/server/service/granted-role/index.ts +0 -6
  438. package/server/service/index.ts +0 -90
  439. package/server/service/invitation/index.ts +0 -6
  440. package/server/service/invitation/invitation-mutation.ts +0 -63
  441. package/server/service/invitation/invitation-query.ts +0 -33
  442. package/server/service/invitation/invitation-types.ts +0 -11
  443. package/server/service/invitation/invitation.ts +0 -63
  444. package/server/service/login-history/index.ts +0 -5
  445. package/server/service/login-history/login-history-query.ts +0 -51
  446. package/server/service/login-history/login-history-type.ts +0 -12
  447. package/server/service/login-history/login-history.ts +0 -45
  448. package/server/service/partner/index.ts +0 -6
  449. package/server/service/partner/partner-mutation.ts +0 -61
  450. package/server/service/partner/partner-query.ts +0 -102
  451. package/server/service/partner/partner-types.ts +0 -11
  452. package/server/service/partner/partner.ts +0 -57
  453. package/server/service/password-history/index.ts +0 -3
  454. package/server/service/password-history/password-history.ts +0 -16
  455. package/server/service/privilege/index.ts +0 -6
  456. package/server/service/privilege/privilege-directive.ts +0 -77
  457. package/server/service/privilege/privilege-mutation.ts +0 -92
  458. package/server/service/privilege/privilege-query.ts +0 -94
  459. package/server/service/privilege/privilege-types.ts +0 -60
  460. package/server/service/privilege/privilege.ts +0 -102
  461. package/server/service/role/index.ts +0 -6
  462. package/server/service/role/role-mutation.ts +0 -109
  463. package/server/service/role/role-query.ts +0 -155
  464. package/server/service/role/role-types.ts +0 -81
  465. package/server/service/role/role.ts +0 -72
  466. package/server/service/user/domain-query.ts +0 -24
  467. package/server/service/user/index.ts +0 -7
  468. package/server/service/user/user-mutation.ts +0 -413
  469. package/server/service/user/user-query.ts +0 -145
  470. package/server/service/user/user-types.ts +0 -97
  471. package/server/service/user/user.ts +0 -354
  472. package/server/service/users-auth-providers/index.ts +0 -5
  473. package/server/service/users-auth-providers/users-auth-providers.ts +0 -71
  474. package/server/service/verification-token/index.ts +0 -3
  475. package/server/service/verification-token/verification-token.ts +0 -60
  476. package/server/service/web-auth-credential/index.ts +0 -3
  477. package/server/service/web-auth-credential/web-auth-credential.ts +0 -67
  478. package/server/templates/account-unlock-email.ts +0 -65
  479. package/server/templates/invitation-email.ts +0 -66
  480. package/server/templates/reset-password-email.ts +0 -65
  481. package/server/templates/verification-email.ts +0 -66
  482. package/server/types.ts +0 -21
  483. package/server/utils/accepts.ts +0 -11
  484. package/server/utils/access-token-cookie.ts +0 -61
  485. package/server/utils/check-permission.ts +0 -52
  486. package/server/utils/check-user-belongs-domain.ts +0 -19
  487. package/server/utils/check-user-has-role.ts +0 -29
  488. package/server/utils/encrypt-state.ts +0 -22
  489. package/server/utils/get-aes-256-key.ts +0 -13
  490. package/server/utils/get-domain-from-hostname.ts +0 -7
  491. package/server/utils/get-domain-users.ts +0 -38
  492. package/server/utils/get-secret.ts +0 -13
  493. package/server/utils/get-user-domains.ts +0 -112
@@ -6,12 +6,12 @@ const typeorm_1 = require("typeorm");
6
6
  const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
7
7
  const env_1 = require("@things-factory/env");
8
8
  const shell_1 = require("@things-factory/shell");
9
- const change_pwd_1 = require("../controllers/change-pwd");
10
- const delete_user_1 = require("../controllers/delete-user");
11
- const profile_1 = require("../controllers/profile");
12
- const user_1 = require("../service/user/user");
13
- const access_token_cookie_1 = require("../utils/access-token-cookie");
14
- const get_user_domains_1 = require("../utils/get-user-domains");
9
+ const change_pwd_js_1 = require("../controllers/change-pwd.js");
10
+ const delete_user_js_1 = require("../controllers/delete-user.js");
11
+ const profile_js_1 = require("../controllers/profile.js");
12
+ const user_js_1 = require("../service/user/user.js");
13
+ const access_token_cookie_js_1 = require("../utils/access-token-cookie.js");
14
+ const get_user_domains_js_1 = require("../utils/get-user-domains.js");
15
15
  const domainType = env_1.config.get('domainType');
16
16
  const languages = env_1.config.get('i18n/languages') || [];
17
17
  exports.authPrivateProcessRouter = new koa_router_1.default({
@@ -21,14 +21,14 @@ exports.authPrivateProcessRouter
21
21
  .post('/change-pass', async (context, next) => {
22
22
  const { t } = context;
23
23
  let { current_pass, new_pass, confirm_pass } = context.request.body;
24
- const token = await (0, change_pwd_1.changePwd)(context.state.user, current_pass, new_pass, confirm_pass, context);
24
+ const token = await (0, change_pwd_js_1.changePwd)(context.state.user, current_pass, new_pass, confirm_pass, context);
25
25
  context.body = t('text.password changed successfully');
26
- (0, access_token_cookie_1.setAccessTokenCookie)(context, token);
26
+ (0, access_token_cookie_js_1.setAccessTokenCookie)(context, token);
27
27
  })
28
28
  .post('/update-profile', async (context, next) => {
29
29
  const { i18next, t } = context;
30
30
  const newProfiles = context.request.body;
31
- await (0, profile_1.updateProfile)(context.state.user, newProfiles);
31
+ await (0, profile_js_1.updateProfile)(context.state.user, newProfiles);
32
32
  if (newProfiles.locale) {
33
33
  context.body = i18next.getFixedT(newProfiles.locale)('text.profile changed successfully');
34
34
  }
@@ -39,23 +39,27 @@ exports.authPrivateProcessRouter
39
39
  .post('/delete-user', async (context, next) => {
40
40
  const { t, session } = context;
41
41
  var { user } = context.state;
42
- var { email: userEmail } = user;
43
- var { password, email } = context.request.body;
44
- const userRepo = (0, shell_1.getRepository)(user_1.User);
45
- const userInfo = await userRepo.findOne({
46
- where: {
47
- email: (0, typeorm_1.ILike)(userEmail)
48
- },
42
+ var { id: userId } = user;
43
+ var { password, username } = context.request.body;
44
+ const userRepo = (0, shell_1.getRepository)(user_js_1.User);
45
+ var userInfo = await userRepo.findOne({
46
+ where: { username },
49
47
  relations: ['domains']
50
48
  });
51
- if (email != userEmail || !user_1.User.verify(userInfo.password, password, userInfo.salt)) {
49
+ if (!userInfo && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(username)) {
50
+ userInfo = await userRepo.findOne({
51
+ where: { email: (0, typeorm_1.ILike)(username) },
52
+ relations: ['domains']
53
+ });
54
+ }
55
+ if (userInfo.id != userId || !user_js_1.User.verify(userInfo.password, password, userInfo.salt)) {
52
56
  context.status = 401;
53
57
  context.body = t('error.user validation failed');
54
58
  return;
55
59
  }
56
- await (0, delete_user_1.deleteUser)(user);
60
+ await (0, delete_user_js_1.deleteUser)(user);
57
61
  context.body = t('text.delete account succeed');
58
- (0, access_token_cookie_1.clearAccessTokenCookie)(context);
62
+ (0, access_token_cookie_js_1.clearAccessTokenCookie)(context);
59
63
  })
60
64
  .get('/profile', async (context, next) => {
61
65
  const { t } = context;
@@ -65,9 +69,9 @@ exports.authPrivateProcessRouter
65
69
  context.body = t('error.user validation failed');
66
70
  return;
67
71
  }
68
- let domains = await (0, get_user_domains_1.getUserDomains)(user);
72
+ let domains = await (0, get_user_domains_js_1.getUserDomains)(user);
69
73
  domains = domains.filter((d) => d.extType == domainType);
70
- var privileges = await user_1.User.getPrivilegesByDomain(user, domain);
74
+ var privileges = await user_js_1.User.getPrivilegesByDomain(user, domain);
71
75
  if (prohibitedPrivileges) {
72
76
  prohibitedPrivileges.forEach(({ category, privilege }) => {
73
77
  privileges = privileges.filter(p => p.category != category || p.privilege != privilege);
@@ -75,6 +79,7 @@ exports.authPrivateProcessRouter
75
79
  }
76
80
  context.body = {
77
81
  user: {
82
+ username: user.username,
78
83
  email: user.email,
79
84
  name: user.name,
80
85
  userType: user.userType,
@@ -1 +1 @@
1
- {"version":3,"file":"auth-private-process-router.js","sourceRoot":"","sources":["../../server/router/auth-private-process-router.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILike } from 'typeorm'\nimport Router from 'koa-router'\n\nimport { config } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { changePwd } from '../controllers/change-pwd'\nimport { deleteUser } from '../controllers/delete-user'\nimport { updateProfile } from '../controllers/profile'\nimport { User } from '../service/user/user'\nimport { clearAccessTokenCookie, setAccessTokenCookie } from '../utils/access-token-cookie'\nimport { getUserDomains } from '../utils/get-user-domains'\n\nconst domainType = config.get('domainType')\nconst languages = config.get('i18n/languages') || []\n\nexport const authPrivateProcessRouter = new Router({\n prefix: '/auth'\n})\n\nauthPrivateProcessRouter\n .post('/change-pass', async (context, next) => {\n const { t } = context\n let { current_pass, new_pass, confirm_pass } = context.request.body\n\n const token = await changePwd(context.state.user, current_pass, new_pass, confirm_pass, context)\n\n context.body = t('text.password changed successfully')\n\n setAccessTokenCookie(context, token)\n })\n .post('/update-profile', async (context, next) => {\n const { i18next, t } = context\n const newProfiles = context.request.body\n await updateProfile(context.state.user, newProfiles)\n\n if (newProfiles.locale) {\n context.body = i18next.getFixedT(newProfiles.locale)('text.profile changed successfully')\n } else {\n context.body = t('text.profile changed successfully')\n }\n })\n .post('/delete-user', async (context, next) => {\n const { t, session } = context\n var { user } = context.state\n var { email: userEmail } = user\n\n var { password, email } = context.request.body\n\n const userRepo = getRepository(User)\n const userInfo = await userRepo.findOne({\n where: {\n email: ILike(userEmail)\n },\n relations: ['domains']\n })\n\n if (email != userEmail || !User.verify(userInfo.password, password, userInfo.salt)) {\n context.status = 401\n context.body = t('error.user validation failed')\n return\n }\n\n await deleteUser(user)\n\n context.body = t('text.delete account succeed')\n clearAccessTokenCookie(context)\n })\n .get('/profile', async (context, next) => {\n const { t } = context\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n\n if (!domain) {\n context.status = 401\n context.body = t('error.user validation failed')\n return\n }\n\n let domains: Partial<Domain>[] = await getUserDomains(user)\n domains = domains.filter((d: Domain) => d.extType == domainType)\n\n var privileges = await User.getPrivilegesByDomain(user, domain)\n\n if (prohibitedPrivileges) {\n prohibitedPrivileges.forEach(({ category, privilege }) => {\n privileges = privileges.filter(p => p.category != category || p.privilege != privilege)\n })\n }\n\n context.body = {\n user: {\n email: user.email,\n name: user.name,\n userType: user.userType,\n owner: await process.domainOwnerGranted(domain, user),\n super: await process.superUserGranted(domain, user),\n unsafeIP,\n privileges\n },\n domains,\n domain: domain && {\n name: domain.name,\n subdomain: domain.subdomain\n },\n languages\n }\n })\n"]}
1
+ {"version":3,"file":"auth-private-process-router.js","sourceRoot":"","sources":["../../server/router/auth-private-process-router.ts"],"names":[],"mappings":"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","sourcesContent":["import { ILike } from 'typeorm'\nimport Router from 'koa-router'\n\nimport { config } from '@things-factory/env'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { changePwd } from '../controllers/change-pwd.js'\nimport { deleteUser } from '../controllers/delete-user.js'\nimport { updateProfile } from '../controllers/profile.js'\nimport { User } from '../service/user/user.js'\nimport { clearAccessTokenCookie, setAccessTokenCookie } from '../utils/access-token-cookie.js'\nimport { getUserDomains } from '../utils/get-user-domains.js'\n\nconst domainType = config.get('domainType')\nconst languages = config.get('i18n/languages') || []\n\nexport const authPrivateProcessRouter = new Router({\n prefix: '/auth'\n})\n\nauthPrivateProcessRouter\n .post('/change-pass', async (context, next) => {\n const { t } = context\n let { current_pass, new_pass, confirm_pass } = context.request.body\n\n const token = await changePwd(context.state.user, current_pass, new_pass, confirm_pass, context)\n\n context.body = t('text.password changed successfully')\n\n setAccessTokenCookie(context, token)\n })\n .post('/update-profile', async (context, next) => {\n const { i18next, t } = context\n const newProfiles = context.request.body\n await updateProfile(context.state.user, newProfiles)\n\n if (newProfiles.locale) {\n context.body = i18next.getFixedT(newProfiles.locale)('text.profile changed successfully')\n } else {\n context.body = t('text.profile changed successfully')\n }\n })\n .post('/delete-user', async (context, next) => {\n const { t, session } = context\n var { user } = context.state\n var { id: userId } = user\n\n var { password, username } = context.request.body\n\n const userRepo = getRepository(User)\n\n var userInfo = await userRepo.findOne({\n where: { username },\n relations: ['domains']\n })\n\n if (!userInfo && /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(username)) {\n userInfo = await userRepo.findOne({\n where: { email: ILike(username) },\n relations: ['domains']\n })\n }\n\n if (userInfo.id != userId || !User.verify(userInfo.password, password, userInfo.salt)) {\n context.status = 401\n context.body = t('error.user validation failed')\n return\n }\n\n await deleteUser(user)\n\n context.body = t('text.delete account succeed')\n clearAccessTokenCookie(context)\n })\n .get('/profile', async (context, next) => {\n const { t } = context\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n\n if (!domain) {\n context.status = 401\n context.body = t('error.user validation failed')\n return\n }\n\n let domains: Partial<Domain>[] = await getUserDomains(user)\n domains = domains.filter((d: Domain) => d.extType == domainType)\n\n var privileges = await User.getPrivilegesByDomain(user, domain)\n\n if (prohibitedPrivileges) {\n prohibitedPrivileges.forEach(({ category, privilege }) => {\n privileges = privileges.filter(p => p.category != category || p.privilege != privilege)\n })\n }\n\n context.body = {\n user: {\n username: user.username,\n email: user.email,\n name: user.name,\n userType: user.userType,\n owner: await process.domainOwnerGranted(domain, user),\n super: await process.superUserGranted(domain, user),\n unsafeIP,\n privileges\n },\n domains,\n domain: domain && {\n name: domain.name,\n subdomain: domain.subdomain\n },\n languages\n }\n })\n"]}
@@ -3,15 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.authPublicProcessRouter = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
6
+ const typeorm_1 = require("typeorm");
6
7
  const env_1 = require("@things-factory/env");
7
8
  const shell_1 = require("@things-factory/shell");
8
- const invitation_1 = require("../controllers/invitation");
9
- const reset_password_1 = require("../controllers/reset-password");
10
- const unlock_user_1 = require("../controllers/unlock-user");
11
- const verification_1 = require("../controllers/verification");
12
- const user_1 = require("../service/user/user");
13
- const accepts_1 = require("../utils/accepts");
14
- const access_token_cookie_1 = require("../utils/access-token-cookie");
9
+ const invitation_js_1 = require("../controllers/invitation.js");
10
+ const reset_password_js_1 = require("../controllers/reset-password.js");
11
+ const unlock_user_js_1 = require("../controllers/unlock-user.js");
12
+ const verification_js_1 = require("../controllers/verification.js");
13
+ const user_js_1 = require("../service/user/user.js");
14
+ const accepts_js_1 = require("../utils/accepts.js");
15
+ const access_token_cookie_js_1 = require("../utils/access-token-cookie.js");
15
16
  const disableUserSignupProcess = env_1.config.get('disableUserSignupProcess', false);
16
17
  const disableUserFavoredLanguage = env_1.config.get('i18n/disableUserFavoredLanguage', false);
17
18
  const languages = env_1.config.get('i18n/languages', false);
@@ -31,21 +32,29 @@ exports.authPublicProcessRouter = new koa_router_1.default({
31
32
  });
32
33
  exports.authPublicProcessRouter.post('/join', async (context, next) => {
33
34
  const { email } = context.request.body || {};
34
- const user = await (0, shell_1.getRepository)(user_1.User).findOneBy({
35
- email
35
+ const repository = (0, shell_1.getRepository)(user_js_1.User);
36
+ var user = await repository.findOne({
37
+ where: { username: email },
38
+ relations: ['domains']
36
39
  });
40
+ if (!user && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
41
+ user = await repository.findOne({
42
+ where: { email: (0, typeorm_1.ILike)(email) },
43
+ relations: ['domains']
44
+ });
45
+ }
37
46
  if (user) {
38
- context.redirect(`/auth/signin?email=${email}`);
47
+ context.redirect(`/auth/signin?username=${email}`);
39
48
  }
40
49
  else {
41
- context.redirect(`/auth/signup?email=${email}`);
50
+ context.redirect(`/auth/signup?username=${email}&email=${email}`);
42
51
  }
43
52
  });
44
53
  exports.authPublicProcessRouter.all('/signout', async (context, next) => {
45
54
  const { header, t } = context;
46
- (0, access_token_cookie_1.clearAccessTokenCookie)(context);
55
+ (0, access_token_cookie_js_1.clearAccessTokenCookie)(context);
47
56
  context.body = t('text.signout successfully');
48
- if ((0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
57
+ if ((0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
49
58
  context.redirect((0, shell_1.getSiteRootPath)(context));
50
59
  }
51
60
  });
@@ -105,10 +114,10 @@ exports.authPublicProcessRouter.get('/activate/:email', async (context, next) =>
105
114
  exports.authPublicProcessRouter.get('/verify/:token', async (context, next) => {
106
115
  const { header, t } = context;
107
116
  var token = context.params.token;
108
- await (0, verification_1.verify)(token);
117
+ await (0, verification_js_1.verify)(token);
109
118
  var message = t('text.user activated successfully');
110
119
  context.body = message;
111
- if ((0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
120
+ if ((0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
112
121
  await context.render('auth-page', {
113
122
  pageElement: 'auth-result',
114
123
  elementScript: '/auth/result.js',
@@ -124,7 +133,7 @@ exports.authPublicProcessRouter.get('/verify/:token', async (context, next) => {
124
133
  exports.authPublicProcessRouter.post('/resend-verification-email', async (context, next) => {
125
134
  const { t } = context;
126
135
  const { email } = context.request.body;
127
- var succeed = await (0, verification_1.resendVerificationEmail)(email, context);
136
+ var succeed = await (0, verification_js_1.resendVerificationEmail)(email, context);
128
137
  var message = t('text.verification email sent');
129
138
  if (succeed) {
130
139
  context.status = 200;
@@ -134,7 +143,7 @@ exports.authPublicProcessRouter.post('/resend-verification-email', async (contex
134
143
  exports.authPublicProcessRouter.post('/resend-invitation-email', async (context, next) => {
135
144
  const { t } = context;
136
145
  const { email, reference, type } = context.request.body;
137
- var succeed = await (0, invitation_1.resendInvitationEmail)({
146
+ var succeed = await (0, invitation_js_1.resendInvitationEmail)({
138
147
  email,
139
148
  reference,
140
149
  type
@@ -150,13 +159,13 @@ exports.authPublicProcessRouter.post('/forgot-password', async (context, next) =
150
159
  const { email } = context.request.body;
151
160
  if (!email)
152
161
  return next();
153
- const userRepo = (0, shell_1.getRepository)(user_1.User);
162
+ const userRepo = (0, shell_1.getRepository)(user_js_1.User);
154
163
  const user = await userRepo.findOne({
155
164
  where: {
156
165
  email
157
166
  }
158
167
  });
159
- const succeed = await (0, reset_password_1.sendPasswordResetEmail)({
168
+ const succeed = await (0, reset_password_js_1.sendPasswordResetEmail)({
160
169
  user,
161
170
  context
162
171
  });
@@ -167,15 +176,15 @@ exports.authPublicProcessRouter.post('/forgot-password', async (context, next) =
167
176
  });
168
177
  exports.authPublicProcessRouter.post('/reset-password', async (context, next) => {
169
178
  const { header, t } = context;
179
+ const { password, token } = context.request.body;
170
180
  try {
171
- const { password, token } = context.request.body;
172
181
  if (!(token && password)) {
173
182
  let message = t('error.token or password is invalid');
174
183
  context.status = 404;
175
184
  context.body = {
176
185
  message
177
186
  };
178
- if ((0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
187
+ if ((0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
179
188
  await context.render('auth-page', {
180
189
  pageElement: 'reset-password',
181
190
  elementScript: '/auth/reset-password.js',
@@ -191,11 +200,11 @@ exports.authPublicProcessRouter.post('/reset-password', async (context, next) =>
191
200
  }
192
201
  return;
193
202
  }
194
- await (0, reset_password_1.resetPassword)(token, password, context);
195
- var message = t('text.password reset succeed');
203
+ await (0, reset_password_js_1.resetPassword)(token, password, context);
204
+ var message = t('text.password changed successfully');
196
205
  context.body = message;
197
- (0, access_token_cookie_1.clearAccessTokenCookie)(context);
198
- if ((0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
206
+ (0, access_token_cookie_js_1.clearAccessTokenCookie)(context);
207
+ if ((0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
199
208
  await context.render('auth-page', {
200
209
  pageElement: 'auth-result',
201
210
  elementScript: '/auth/result.js',
@@ -211,12 +220,14 @@ exports.authPublicProcessRouter.post('/reset-password', async (context, next) =>
211
220
  catch (e) {
212
221
  context.status = 404;
213
222
  context.body = e.message;
214
- if ((0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
223
+ if ((0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
215
224
  await context.render('auth-page', {
216
- pageElement: 'auth-result',
217
- elementScript: '/auth/result.js',
225
+ pageElement: 'reset-password',
226
+ elementScript: '/auth/reset-password.js',
218
227
  data: {
228
+ token,
219
229
  message: e.message,
230
+ passwordRule,
220
231
  disableUserSignupProcess,
221
232
  disableUserFavoredLanguage,
222
233
  languages
@@ -233,12 +244,12 @@ exports.authPublicProcessRouter.post('/unlock-user', async (context, next) => {
233
244
  context.body = t('error.token or password is invalid');
234
245
  return;
235
246
  }
236
- var succeed = await (0, unlock_user_1.unlockUser)(token, password);
247
+ var succeed = await (0, unlock_user_js_1.unlockUser)(token, password);
237
248
  if (succeed) {
238
249
  context.body = t('text.password reset succeed');
239
- (0, access_token_cookie_1.clearAccessTokenCookie)(context);
250
+ (0, access_token_cookie_js_1.clearAccessTokenCookie)(context);
240
251
  }
241
- if ((0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
252
+ if ((0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
242
253
  await context.render('auth-page', {
243
254
  pageElement: 'auth-result',
244
255
  elementScript: '/auth/result.js',
@@ -1 +1 @@
1
- {"version":3,"file":"auth-public-process-router.js","sourceRoot":"","sources":["../../server/router/auth-public-process-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAE/B,6CAA4C;AAC5C,iDAAsE;AAEtE,0DAAiE;AACjE,kEAAqF;AACrF,4DAAuD;AACvD,8DAA6E;AAC7E,+CAA2C;AAC3C,8CAA0C;AAC1C,sEAAqE;AAErE,MAAM,wBAAwB,GAAG,YAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;AAC9E,MAAM,0BAA0B,GAAG,YAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;AACvF,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AACrD,MAAM,YAAY,GAAG,YAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;IAC7C,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;IACvB,oBAAoB,EAAE,EAAE;CACzB,CAAA;AAEY,QAAA,uBAAuB,GAAG,IAAI,oBAAM,CAAC;IAChD,MAAM,EAAE,OAAO;CAChB,CAAC,CAAA;AAEF,+BAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IAE5C,MAAM,IAAI,GAAS,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,SAAS,CAAC;QACrD,KAAK;KACN,CAAC,CAAA;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,QAAQ,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,QAAQ,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAA;IACjD,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9D,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IAC7B,IAAA,4CAAsB,EAAC,OAAO,CAAC,CAAA;IAE/B,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAA;IAE7C,IAAI,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,QAAQ,CAAC,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAA;IAEvC,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,iBAAiB;QAC9B,aAAa,EAAE,0BAA0B;QACzC,IAAI,EAAE;YACJ,KAAK;YACL,wBAAwB;YACxB,0BAA0B;YAC1B,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAA;IAEvC,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,gBAAgB;QAC7B,aAAa,EAAE,yBAAyB;QACxC,IAAI,EAAE;YACJ,KAAK;YACL,YAAY;YACZ,wBAAwB;YACxB,0BAA0B;YAC1B,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAClE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAA;IAEvC,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,sBAAsB;QACrC,IAAI,EAAE;YACJ,KAAK;YACL,wBAAwB;YACxB,0BAA0B;YAC1B,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IAEhC,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,eAAe;QAC5B,aAAa,EAAE,mBAAmB;QAClC,IAAI,EAAE;YACJ,KAAK;YACL,wBAAwB;YACxB,0BAA0B;YAC1B,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACpE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IAC7B,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;IAEhC,MAAM,IAAA,qBAAM,EAAC,KAAK,CAAC,CAAA;IAEnB,IAAI,OAAO,GAAG,CAAC,CAAC,kCAAkC,CAAC,CAAA;IAEnD,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;IAEtB,IAAI,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;YAChC,WAAW,EAAE,aAAa;YAC1B,aAAa,EAAE,iBAAiB;YAChC,IAAI,EAAE;gBACJ,OAAO;gBACP,wBAAwB;gBACxB,0BAA0B;gBAC1B,SAAS;aACV;SACF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACjF,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IACrB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAEtC,IAAI,OAAO,GAAG,MAAM,IAAA,sCAAuB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3D,IAAI,OAAO,GAAG,CAAC,CAAC,8BAA8B,CAAC,CAAA;IAE/C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;IACxB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC/E,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IACrB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAEvD,IAAI,OAAO,GAAG,MAAM,IAAA,kCAAqB,EACvC;QACE,KAAK;QACL,SAAS;QACT,IAAI;KACL,EACD,OAAO,CACR,CAAA;IAED,IAAI,OAAO,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAA;IAE7C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;IACxB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACvE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IACrB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAEtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,EAAE,CAAA;IAEzB,MAAM,QAAQ,GAAG,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;QAClC,KAAK,EAAE;YACL,KAAK;SACN;KACF,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,IAAA,uCAAsB,EAAC;QAC3C,IAAI;QACJ,OAAO;KACR,CAAC,CAAA;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,gCAAgC,CAAC,CAAA;IACpD,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QAEhD,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,OAAO,GAAG,CAAC,CAAC,oCAAoC,CAAC,CAAA;YAErD,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;YACpB,OAAO,CAAC,IAAI,GAAG;gBACb,OAAO;aACR,CAAA;YAED,IAAI,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;oBAChC,WAAW,EAAE,gBAAgB;oBAC7B,aAAa,EAAE,yBAAyB;oBACxC,IAAI,EAAE;wBACJ,KAAK;wBACL,OAAO;wBACP,YAAY;wBACZ,wBAAwB;wBACxB,0BAA0B;wBAC1B,SAAS;qBACV;iBACF,CAAC,CAAA;YACJ,CAAC;YAED,OAAM;QACR,CAAC;QAED,MAAM,IAAA,8BAAa,EAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE7C,IAAI,OAAO,GAAG,CAAC,CAAC,6BAA6B,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;QAEtB,IAAA,4CAAsB,EAAC,OAAO,CAAC,CAAA;QAE/B,IAAI,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;gBAChC,WAAW,EAAE,aAAa;gBAC1B,aAAa,EAAE,iBAAiB;gBAChC,IAAI,EAAE;oBACJ,OAAO;oBACP,wBAAwB;oBACxB,0BAA0B;oBAC1B,SAAS;iBACV;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAA;QAExB,IAAI,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;gBAChC,WAAW,EAAE,aAAa;gBAC1B,aAAa,EAAE,iBAAiB;gBAChC,IAAI,EAAE;oBACJ,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,wBAAwB;oBACxB,0BAA0B;oBAC1B,SAAS;iBACV;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,+BAAuB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IAC7B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAEhD,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,oCAAoC,CAAC,CAAA;QAEtD,OAAM;IACR,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,IAAA,wBAAU,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE/C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,6BAA6B,CAAC,CAAA;QAE/C,IAAA,4CAAsB,EAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;YAChC,WAAW,EAAE,aAAa;YAC1B,aAAa,EAAE,iBAAiB;YAChC,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC,CAAC,6BAA6B,CAAC;gBACzC,wBAAwB;gBACxB,0BAA0B;gBAC1B,SAAS;aACV;SACF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA","sourcesContent":["import Router from 'koa-router'\n\nimport { config } from '@things-factory/env'\nimport { getRepository, getSiteRootPath } from '@things-factory/shell'\n\nimport { resendInvitationEmail } from '../controllers/invitation'\nimport { resetPassword, sendPasswordResetEmail } from '../controllers/reset-password'\nimport { unlockUser } from '../controllers/unlock-user'\nimport { resendVerificationEmail, verify } from '../controllers/verification'\nimport { User } from '../service/user/user'\nimport { accepts } from '../utils/accepts'\nimport { clearAccessTokenCookie } from '../utils/access-token-cookie'\n\nconst disableUserSignupProcess = config.get('disableUserSignupProcess', false)\nconst disableUserFavoredLanguage = config.get('i18n/disableUserFavoredLanguage', false)\nconst languages = config.get('i18n/languages', false)\nconst passwordRule = config.get('password') || {\n lowerCase: true,\n upperCase: true,\n digit: true,\n specialCharacter: true,\n allowRepeat: false,\n useTightPattern: true,\n useLoosePattern: false,\n tightCharacterLength: 8,\n looseCharacterLength: 15\n}\n\nexport const authPublicProcessRouter = new Router({\n prefix: '/auth'\n})\n\nauthPublicProcessRouter.post('/join', async (context, next) => {\n const { email } = context.request.body || {}\n\n const user: User = await getRepository(User).findOneBy({\n email\n })\n\n if (user) {\n context.redirect(`/auth/signin?email=${email}`)\n } else {\n context.redirect(`/auth/signup?email=${email}`)\n }\n})\n\nauthPublicProcessRouter.all('/signout', async (context, next) => {\n const { header, t } = context\n clearAccessTokenCookie(context)\n\n context.body = t('text.signout successfully')\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n context.redirect(getSiteRootPath(context))\n }\n})\n\nauthPublicProcessRouter.get('/forgot-password', async (context, next) => {\n const { email } = context.request.query\n\n await context.render('auth-page', {\n pageElement: 'forgot-password',\n elementScript: '/auth/forgot-password.js',\n data: {\n email,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthPublicProcessRouter.get('/reset-password', async (context, next) => {\n const { token } = context.request.query\n\n await context.render('auth-page', {\n pageElement: 'reset-password',\n elementScript: '/auth/reset-password.js',\n data: {\n token,\n passwordRule,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthPublicProcessRouter.get('/unlock-user', async (context, next) => {\n const { token } = context.request.query\n\n await context.render('auth-page', {\n pageElement: 'unlock-user',\n elementScript: '/auth/unlock-user.js',\n data: {\n token,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthPublicProcessRouter.get('/activate/:email', async (context, next) => {\n const { email } = context.params\n\n await context.render('auth-page', {\n pageElement: 'auth-activate',\n elementScript: '/auth/activate.js',\n data: {\n email,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthPublicProcessRouter.get('/verify/:token', async (context, next) => {\n const { header, t } = context\n var token = context.params.token\n\n await verify(token)\n\n var message = t('text.user activated successfully')\n\n context.body = message\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n})\n\nauthPublicProcessRouter.post('/resend-verification-email', async (context, next) => {\n const { t } = context\n const { email } = context.request.body\n\n var succeed = await resendVerificationEmail(email, context)\n var message = t('text.verification email sent')\n\n if (succeed) {\n context.status = 200\n context.body = message\n }\n})\n\nauthPublicProcessRouter.post('/resend-invitation-email', async (context, next) => {\n const { t } = context\n const { email, reference, type } = context.request.body\n\n var succeed = await resendInvitationEmail(\n {\n email,\n reference,\n type\n },\n context\n )\n\n var message = t('text.invitation email sent')\n\n if (succeed) {\n context.status = 200\n context.body = message\n }\n})\n\nauthPublicProcessRouter.post('/forgot-password', async (context, next) => {\n const { t } = context\n const { email } = context.request.body\n\n if (!email) return next()\n\n const userRepo = getRepository(User)\n const user = await userRepo.findOne({\n where: {\n email\n }\n })\n\n const succeed = await sendPasswordResetEmail({\n user,\n context\n })\n\n if (succeed) {\n context.status = 200\n context.body = t('text.password reset email sent')\n }\n})\n\nauthPublicProcessRouter.post('/reset-password', async (context, next) => {\n const { header, t } = context\n\n try {\n const { password, token } = context.request.body\n\n if (!(token && password)) {\n let message = t('error.token or password is invalid')\n\n context.status = 404\n context.body = {\n message\n }\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'reset-password',\n elementScript: '/auth/reset-password.js',\n data: {\n token,\n message,\n passwordRule,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n\n return\n }\n\n await resetPassword(token, password, context)\n\n var message = t('text.password reset succeed')\n context.body = message\n\n clearAccessTokenCookie(context)\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n } catch (e) {\n context.status = 404\n context.body = e.message\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message: e.message,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n }\n})\n\nauthPublicProcessRouter.post('/unlock-user', async (context, next) => {\n const { header, t } = context\n const { password, token } = context.request.body\n\n if (!(token || password)) {\n context.status = 404\n context.body = t('error.token or password is invalid')\n\n return\n }\n\n var succeed = await unlockUser(token, password)\n\n if (succeed) {\n context.body = t('text.password reset succeed')\n\n clearAccessTokenCookie(context)\n }\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message: t('text.account is reactivated'),\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n})\n"]}
1
+ {"version":3,"file":"auth-public-process-router.js","sourceRoot":"","sources":["../../server/router/auth-public-process-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport { ILike } from 'typeorm'\n\nimport { config } from '@things-factory/env'\nimport { getRepository, getSiteRootPath } from '@things-factory/shell'\n\nimport { resendInvitationEmail } from '../controllers/invitation.js'\nimport { resetPassword, sendPasswordResetEmail } from '../controllers/reset-password.js'\nimport { unlockUser } from '../controllers/unlock-user.js'\nimport { resendVerificationEmail, verify } from '../controllers/verification.js'\nimport { User } from '../service/user/user.js'\nimport { accepts } from '../utils/accepts.js'\nimport { clearAccessTokenCookie } from '../utils/access-token-cookie.js'\n\nconst disableUserSignupProcess = config.get('disableUserSignupProcess', false)\nconst disableUserFavoredLanguage = config.get('i18n/disableUserFavoredLanguage', false)\nconst languages = config.get('i18n/languages', false)\nconst passwordRule = config.get('password') || {\n lowerCase: true,\n upperCase: true,\n digit: true,\n specialCharacter: true,\n allowRepeat: false,\n useTightPattern: true,\n useLoosePattern: false,\n tightCharacterLength: 8,\n looseCharacterLength: 15\n}\n\nexport const authPublicProcessRouter = new Router({\n prefix: '/auth'\n})\n\nauthPublicProcessRouter.post('/join', async (context, next) => {\n const { email } = context.request.body || {}\n\n const repository = getRepository(User)\n\n var user = await repository.findOne({\n where: { username: email },\n relations: ['domains']\n })\n\n if (!user && /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n user = await repository.findOne({\n where: { email: ILike(email) },\n relations: ['domains']\n })\n }\n\n if (user) {\n context.redirect(`/auth/signin?username=${email}`)\n } else {\n context.redirect(`/auth/signup?username=${email}&email=${email}`)\n }\n})\n\nauthPublicProcessRouter.all('/signout', async (context, next) => {\n const { header, t } = context\n clearAccessTokenCookie(context)\n\n context.body = t('text.signout successfully')\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n context.redirect(getSiteRootPath(context))\n }\n})\n\nauthPublicProcessRouter.get('/forgot-password', async (context, next) => {\n const { email } = context.request.query\n\n await context.render('auth-page', {\n pageElement: 'forgot-password',\n elementScript: '/auth/forgot-password.js',\n data: {\n email,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthPublicProcessRouter.get('/reset-password', async (context, next) => {\n const { token } = context.request.query\n\n await context.render('auth-page', {\n pageElement: 'reset-password',\n elementScript: '/auth/reset-password.js',\n data: {\n token,\n passwordRule,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthPublicProcessRouter.get('/unlock-user', async (context, next) => {\n const { token } = context.request.query\n\n await context.render('auth-page', {\n pageElement: 'unlock-user',\n elementScript: '/auth/unlock-user.js',\n data: {\n token,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthPublicProcessRouter.get('/activate/:email', async (context, next) => {\n const { email } = context.params\n\n await context.render('auth-page', {\n pageElement: 'auth-activate',\n elementScript: '/auth/activate.js',\n data: {\n email,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthPublicProcessRouter.get('/verify/:token', async (context, next) => {\n const { header, t } = context\n var token = context.params.token\n\n await verify(token)\n\n var message = t('text.user activated successfully')\n\n context.body = message\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n})\n\nauthPublicProcessRouter.post('/resend-verification-email', async (context, next) => {\n const { t } = context\n const { email } = context.request.body\n\n var succeed = await resendVerificationEmail(email, context)\n var message = t('text.verification email sent')\n\n if (succeed) {\n context.status = 200\n context.body = message\n }\n})\n\nauthPublicProcessRouter.post('/resend-invitation-email', async (context, next) => {\n const { t } = context\n const { email, reference, type } = context.request.body\n\n var succeed = await resendInvitationEmail(\n {\n email,\n reference,\n type\n },\n context\n )\n\n var message = t('text.invitation email sent')\n\n if (succeed) {\n context.status = 200\n context.body = message\n }\n})\n\nauthPublicProcessRouter.post('/forgot-password', async (context, next) => {\n const { t } = context\n const { email } = context.request.body\n\n if (!email) return next()\n\n const userRepo = getRepository(User)\n const user = await userRepo.findOne({\n where: {\n email\n }\n })\n\n const succeed = await sendPasswordResetEmail({\n user,\n context\n })\n\n if (succeed) {\n context.status = 200\n context.body = t('text.password reset email sent')\n }\n})\n\nauthPublicProcessRouter.post('/reset-password', async (context, next) => {\n const { header, t } = context\n const { password, token } = context.request.body\n\n try {\n if (!(token && password)) {\n let message = t('error.token or password is invalid')\n\n context.status = 404\n context.body = {\n message\n }\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'reset-password',\n elementScript: '/auth/reset-password.js',\n data: {\n token,\n message,\n passwordRule,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n\n return\n }\n\n await resetPassword(token, password, context)\n\n var message = t('text.password changed successfully')\n context.body = message\n\n clearAccessTokenCookie(context)\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n } catch (e) {\n context.status = 404\n context.body = e.message\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'reset-password',\n elementScript: '/auth/reset-password.js',\n data: {\n token,\n message: e.message,\n passwordRule,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n }\n})\n\nauthPublicProcessRouter.post('/unlock-user', async (context, next) => {\n const { header, t } = context\n const { password, token } = context.request.body\n\n if (!(token || password)) {\n context.status = 404\n context.body = t('error.token or password is invalid')\n\n return\n }\n\n var succeed = await unlockUser(token, password)\n\n if (succeed) {\n context.body = t('text.password reset succeed')\n\n clearAccessTokenCookie(context)\n }\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message: t('text.account is reactivated'),\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n})\n"]}
@@ -4,9 +4,9 @@ exports.authSigninRouter = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
6
6
  const env_1 = require("@things-factory/env");
7
- const middlewares_1 = require("../middlewares");
8
- const accepts_1 = require("../utils/accepts");
9
- const access_token_cookie_1 = require("../utils/access-token-cookie");
7
+ const index_js_1 = require("../middlewares/index.js");
8
+ const accepts_js_1 = require("../utils/accepts.js");
9
+ const access_token_cookie_js_1 = require("../utils/access-token-cookie.js");
10
10
  const disableUserSignupProcess = env_1.config.get('disableUserSignupProcess', false);
11
11
  const disableUserFavoredLanguage = env_1.config.get('i18n/disableUserFavoredLanguage', false);
12
12
  const languages = env_1.config.get('i18n/languages', false);
@@ -17,19 +17,13 @@ const SSOLinks = Object.values(SSOConfig)
17
17
  return { link, title };
18
18
  });
19
19
  exports.authSigninRouter = new koa_router_1.default();
20
- exports.authSigninRouter.get('/auth/signin', async (ctx, next) => {
21
- /* For forward compatibility, cover the case of logging in with username instead of email */
22
- if (!ctx.request.body.email && ctx.request.body.username) {
23
- ctx.request.body.email = ctx.request.body.username;
24
- }
25
- await next();
26
- }, async (context, next) => {
27
- const { redirect_to, email } = context.query;
20
+ exports.authSigninRouter.get('/auth/signin', async (context, next) => {
21
+ const { redirect_to, username } = context.query;
28
22
  await context.render('auth-page', {
29
23
  pageElement: 'auth-signin',
30
24
  elementScript: '/auth/signin.js',
31
25
  data: {
32
- email,
26
+ username,
33
27
  redirectTo: redirect_to,
34
28
  ssoLinks: SSOLinks,
35
29
  disableUserSignupProcess,
@@ -38,16 +32,22 @@ exports.authSigninRouter.get('/auth/signin', async (ctx, next) => {
38
32
  }
39
33
  });
40
34
  });
41
- exports.authSigninRouter.post('/auth/signin', middlewares_1.signinMiddleware, async (context, next) => {
35
+ exports.authSigninRouter.post('/auth/signin', async (ctx, next) => {
36
+ /* For backward compatibility, cover the case of logging in with email instead of username */
37
+ if (!ctx.request.body.username && ctx.request.body.email) {
38
+ ctx.request.body.username = ctx.request.body.email;
39
+ }
40
+ await next();
41
+ }, index_js_1.signinMiddleware, async (context, next) => {
42
42
  const { request, t } = context;
43
- const { token, user, domain } = context.state;
43
+ const { token, domain } = context.state;
44
44
  const { body: reqBody, header } = request;
45
- if (!(0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
45
+ if (!(0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
46
46
  context.body = token;
47
47
  return;
48
48
  }
49
49
  var redirectTo = `/auth/checkin${domain ? '/' + domain.subdomain : ''}?redirect_to=${encodeURIComponent(reqBody.redirectTo || '/')}`;
50
- (0, access_token_cookie_1.setAccessTokenCookie)(context, token);
50
+ (0, access_token_cookie_js_1.setAccessTokenCookie)(context, token);
51
51
  context.redirect(redirectTo);
52
52
  });
53
53
  //# sourceMappingURL=auth-signin-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-signin-router.js","sourceRoot":"","sources":["../../server/router/auth-signin-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAE/B,6CAA4C;AAC5C,gDAAiD;AACjD,8CAA0C;AAC1C,sEAAmE;AAEnE,MAAM,wBAAwB,GAAG,YAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;AAC9E,MAAM,0BAA0B,GAAG,YAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;AACvF,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AAErD,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAS,CAAC,CAAA;AAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;KACtC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC;KAC1C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACxB,CAAC,CAAC,CAAA;AAES,QAAA,gBAAgB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAE5C,wBAAgB,CAAC,GAAG,CAClB,cAAc,EACd,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAClB,4FAA4F;IAC5F,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAA;IACpD,CAAC;IACD,MAAM,IAAI,EAAE,CAAA;AACd,CAAC,EACD,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE5C,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,iBAAiB;QAChC,IAAI,EAAE;YACJ,KAAK;YACL,UAAU,EAAE,WAAW;YACvB,QAAQ,EAAE,QAAQ;YAClB,wBAAwB;YACxB,0BAA0B;YAC1B,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC,CACF,CAAA;AAED,wBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,8BAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9E,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IAC9B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC7C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAEzC,IAAI,CAAC,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAA;QACpB,OAAM;IACR,CAAC;IAED,IAAI,UAAU,GAAG,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,kBAAkB,CACrG,OAAO,CAAC,UAAU,IAAI,GAAG,CAC1B,EAAE,CAAA;IAEH,IAAA,0CAAoB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAEpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAC9B,CAAC,CAAC,CAAA","sourcesContent":["import Router from 'koa-router'\n\nimport { config } from '@things-factory/env'\nimport { signinMiddleware } from '../middlewares'\nimport { accepts } from '../utils/accepts'\nimport { setAccessTokenCookie } from '../utils/access-token-cookie'\n\nconst disableUserSignupProcess = config.get('disableUserSignupProcess', false)\nconst disableUserFavoredLanguage = config.get('i18n/disableUserFavoredLanguage', false)\nconst languages = config.get('i18n/languages', false)\n\nconst SSOConfig = config.get('sso', {} as any)\nconst SSOLinks = Object.values(SSOConfig)\n .filter(({ link, title }) => link && title)\n .map(({ link, title }) => {\n return { link, title }\n })\n\nexport const authSigninRouter = new Router()\n\nauthSigninRouter.get(\n '/auth/signin',\n async (ctx, next) => {\n /* For forward compatibility, cover the case of logging in with username instead of email */\n if (!ctx.request.body.email && ctx.request.body.username) {\n ctx.request.body.email = ctx.request.body.username\n }\n await next()\n },\n async (context, next) => {\n const { redirect_to, email } = context.query\n\n await context.render('auth-page', {\n pageElement: 'auth-signin',\n elementScript: '/auth/signin.js',\n data: {\n email,\n redirectTo: redirect_to,\n ssoLinks: SSOLinks,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n)\n\nauthSigninRouter.post('/auth/signin', signinMiddleware, async (context, next) => {\n const { request, t } = context\n const { token, user, domain } = context.state\n const { body: reqBody, header } = request\n\n if (!accepts(header.accept, ['text/html', '*/*'])) {\n context.body = token\n return\n }\n\n var redirectTo = `/auth/checkin${domain ? '/' + domain.subdomain : ''}?redirect_to=${encodeURIComponent(\n reqBody.redirectTo || '/'\n )}`\n\n setAccessTokenCookie(context, token)\n\n context.redirect(redirectTo)\n})\n"]}
1
+ {"version":3,"file":"auth-signin-router.js","sourceRoot":"","sources":["../../server/router/auth-signin-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAE/B,6CAA4C;AAC5C,sDAA0D;AAC1D,oDAA6C;AAC7C,4EAAsE;AAEtE,MAAM,wBAAwB,GAAG,YAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;AAC9E,MAAM,0BAA0B,GAAG,YAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;AACvF,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AAErD,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAS,CAAC,CAAA;AAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;KACtC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC;KAC1C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACxB,CAAC,CAAC,CAAA;AAES,QAAA,gBAAgB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAE5C,wBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC3D,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE/C,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QAChC,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,iBAAiB;QAChC,IAAI,EAAE;YACJ,QAAQ;YACR,UAAU,EAAE,WAAW;YACvB,QAAQ,EAAE,QAAQ;YAClB,wBAAwB;YACxB,0BAA0B;YAC1B,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,wBAAgB,CAAC,IAAI,CACnB,cAAc,EACd,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAClB,6FAA6F;IAC7F,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAA;IACpD,CAAC;IACD,MAAM,IAAI,EAAE,CAAA;AACd,CAAC,EACD,2BAAgB,EAChB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IACvC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAEzC,IAAI,CAAC,IAAA,oBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAA;QACpB,OAAM;IACR,CAAC;IAED,IAAI,UAAU,GAAG,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,kBAAkB,CACrG,OAAO,CAAC,UAAU,IAAI,GAAG,CAC1B,EAAE,CAAA;IAEH,IAAA,6CAAoB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAEpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAC9B,CAAC,CACF,CAAA","sourcesContent":["import Router from 'koa-router'\n\nimport { config } from '@things-factory/env'\nimport { signinMiddleware } from '../middlewares/index.js'\nimport { accepts } from '../utils/accepts.js'\nimport { setAccessTokenCookie } from '../utils/access-token-cookie.js'\n\nconst disableUserSignupProcess = config.get('disableUserSignupProcess', false)\nconst disableUserFavoredLanguage = config.get('i18n/disableUserFavoredLanguage', false)\nconst languages = config.get('i18n/languages', false)\n\nconst SSOConfig = config.get('sso', {} as any)\nconst SSOLinks = Object.values(SSOConfig)\n .filter(({ link, title }) => link && title)\n .map(({ link, title }) => {\n return { link, title }\n })\n\nexport const authSigninRouter = new Router()\n\nauthSigninRouter.get('/auth/signin', async (context, next) => {\n const { redirect_to, username } = context.query\n\n await context.render('auth-page', {\n pageElement: 'auth-signin',\n elementScript: '/auth/signin.js',\n data: {\n username,\n redirectTo: redirect_to,\n ssoLinks: SSOLinks,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n})\n\nauthSigninRouter.post(\n '/auth/signin',\n async (ctx, next) => {\n /* For backward compatibility, cover the case of logging in with email instead of username */\n if (!ctx.request.body.username && ctx.request.body.email) {\n ctx.request.body.username = ctx.request.body.email\n }\n await next()\n },\n signinMiddleware,\n async (context, next) => {\n const { request, t } = context\n const { token, domain } = context.state\n const { body: reqBody, header } = request\n\n if (!accepts(header.accept, ['text/html', '*/*'])) {\n context.body = token\n return\n }\n\n var redirectTo = `/auth/checkin${domain ? '/' + domain.subdomain : ''}?redirect_to=${encodeURIComponent(\n reqBody.redirectTo || '/'\n )}`\n\n setAccessTokenCookie(context, token)\n\n context.redirect(redirectTo)\n }\n)\n"]}
@@ -4,12 +4,14 @@ exports.authSignupRouter = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
6
6
  const env_1 = require("@things-factory/env");
7
- const signup_1 = require("../controllers/signup");
8
- const accepts_1 = require("../utils/accepts");
9
- const access_token_cookie_1 = require("../utils/access-token-cookie");
7
+ const signup_js_1 = require("../controllers/signup.js");
8
+ const accepts_js_1 = require("../utils/accepts.js");
9
+ const access_token_cookie_js_1 = require("../utils/access-token-cookie.js");
10
+ const verify_recaptcha_middleware_js_1 = require("../middlewares/verify-recaptcha-middleware.js");
10
11
  const disableUserSignupProcess = env_1.config.get('disableUserSignupProcess', false);
11
12
  const disableUserFavoredLanguage = env_1.config.get('i18n/disableUserFavoredLanguage', false);
12
13
  const languages = env_1.config.get('i18n/languages', false);
14
+ const recaptchaSiteKey = env_1.config.get('recaptcha/siteKey');
13
15
  const passwordRule = env_1.config.get('password') || {
14
16
  lowerCase: true,
15
17
  upperCase: true,
@@ -24,33 +26,35 @@ const passwordRule = env_1.config.get('password') || {
24
26
  exports.authSignupRouter = new koa_router_1.default();
25
27
  if (!disableUserSignupProcess) {
26
28
  exports.authSignupRouter.get('/auth/signup', async (context, next) => {
27
- const { email } = context.query;
29
+ const { username, email } = context.query;
28
30
  await context.render('auth-page', {
29
31
  pageElement: 'auth-signup',
30
32
  elementScript: '/auth/signup.js',
31
33
  data: {
34
+ username,
32
35
  email,
33
36
  passwordRule,
34
37
  disableUserSignupProcess,
35
38
  disableUserFavoredLanguage,
36
- languages
39
+ languages,
40
+ recaptchaSiteKey
37
41
  }
38
42
  });
39
43
  });
40
- exports.authSignupRouter.post('/auth/signup', async (context, next) => {
44
+ exports.authSignupRouter.post('/auth/signup', (0, verify_recaptcha_middleware_js_1.verifyRecaptcaMiddleware)({ action: 'signup' }), async (context, next) => {
41
45
  const { header, t } = context;
42
46
  const { domain } = context.state;
43
47
  const user = context.request.body;
44
48
  // try {
45
- const { token } = await (0, signup_1.signup)(Object.assign(Object.assign({}, user), { context,
49
+ const { token } = await (0, signup_js_1.signup)(Object.assign(Object.assign({}, user), { context,
46
50
  domain }), true);
47
51
  const message = t('text.user registered successfully');
48
52
  context.body = {
49
53
  message,
50
54
  token
51
55
  };
52
- (0, access_token_cookie_1.setAccessTokenCookie)(context, token);
53
- if ((0, accepts_1.accepts)(header.accept, ['text/html', '*/*'])) {
56
+ (0, access_token_cookie_js_1.setAccessTokenCookie)(context, token);
57
+ if ((0, accepts_js_1.accepts)(header.accept, ['text/html', '*/*'])) {
54
58
  await context.render('auth-page', {
55
59
  pageElement: 'auth-result',
56
60
  elementScript: '/auth/result.js',
@@ -1 +1 @@
1
- {"version":3,"file":"auth-signup-router.js","sourceRoot":"","sources":["../../server/router/auth-signup-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAE/B,6CAA4C;AAE5C,kDAA8C;AAC9C,8CAA0C;AAC1C,sEAAmE;AAEnE,MAAM,wBAAwB,GAAG,YAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;AAC9E,MAAM,0BAA0B,GAAG,YAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;AACvF,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AAErD,MAAM,YAAY,GAAG,YAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;IAC7C,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;IACvB,oBAAoB,EAAE,EAAE;CACzB,CAAA;AAEY,QAAA,gBAAgB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAE5C,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC9B,wBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE/B,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;YAChC,WAAW,EAAE,aAAa;YAC1B,aAAa,EAAE,iBAAiB;YAChC,IAAI,EAAE;gBACJ,KAAK;gBACL,YAAY;gBACZ,wBAAwB;gBACxB,0BAA0B;gBAC1B,SAAS;aACV;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,wBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC5D,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QAEjC,QAAQ;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,eAAM,kCAEvB,IAAI,KACP,OAAO;YACP,MAAM,KAER,IAAI,CACL,CAAA;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,mCAAmC,CAAC,CAAA;QACtD,OAAO,CAAC,IAAI,GAAG;YACb,OAAO;YACP,KAAK;SACN,CAAA;QAED,IAAA,0CAAoB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAEpC,IAAI,IAAA,iBAAO,EAAC,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;gBAChC,WAAW,EAAE,aAAa;gBAC1B,aAAa,EAAE,iBAAiB;gBAChC,IAAI,EAAE;oBACJ,OAAO;oBACP,wBAAwB;oBACxB,0BAA0B;oBAC1B,SAAS;iBACV;aACF,CAAC,CAAA;QACJ,CAAC;QACD,gBAAgB;QAChB,yBAAyB;QACzB,6BAA6B;QAE7B,wDAAwD;QACxD,0CAA0C;QAC1C,oCAAoC;QACpC,0CAA0C;QAC1C,gBAAgB;QAChB,iFAAiF;QACjF,uBAAuB;QACvB,UAAU;QACV,SAAS;QACT,MAAM;QACN,IAAI;IACN,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import Router from 'koa-router'\n\nimport { config } from '@things-factory/env'\n\nimport { signup } from '../controllers/signup'\nimport { accepts } from '../utils/accepts'\nimport { setAccessTokenCookie } from '../utils/access-token-cookie'\n\nconst disableUserSignupProcess = config.get('disableUserSignupProcess', false)\nconst disableUserFavoredLanguage = config.get('i18n/disableUserFavoredLanguage', false)\nconst languages = config.get('i18n/languages', false)\n\nconst passwordRule = config.get('password') || {\n lowerCase: true,\n upperCase: true,\n digit: true,\n specialCharacter: true,\n allowRepeat: false,\n useTightPattern: true,\n useLoosePattern: false,\n tightCharacterLength: 8,\n looseCharacterLength: 15\n}\n\nexport const authSignupRouter = new Router()\n\nif (!disableUserSignupProcess) {\n authSignupRouter.get('/auth/signup', async (context, next) => {\n const { email } = context.query\n\n await context.render('auth-page', {\n pageElement: 'auth-signup',\n elementScript: '/auth/signup.js',\n data: {\n email,\n passwordRule,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n })\n\n authSignupRouter.post('/auth/signup', async (context, next) => {\n const { header, t } = context\n const { domain } = context.state\n const user = context.request.body\n\n // try {\n const { token } = await signup(\n {\n ...user,\n context,\n domain\n },\n true\n )\n\n const message = t('text.user registered successfully')\n context.body = {\n message,\n token\n }\n\n setAccessTokenCookie(context, token)\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n // } catch (e) {\n // context.status = 401\n // context.body = e.message\n\n // if (accepts(header.accept, ['text/html', '*/*'])) {\n // await context.render('auth-page', {\n // pageElement: 'auth-signup',\n // elementScript: '/auth/signup.js',\n // data: {\n // message: e instanceof AuthError ? t(`error.${e.message}`) : e.message,\n // passwordRule\n // }\n // })\n // }\n // }\n })\n}\n"]}
1
+ {"version":3,"file":"auth-signup-router.js","sourceRoot":"","sources":["../../server/router/auth-signup-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\n\nimport { config } from '@things-factory/env'\n\nimport { signup } from '../controllers/signup.js'\nimport { accepts } from '../utils/accepts.js'\nimport { setAccessTokenCookie } from '../utils/access-token-cookie.js'\nimport { verifyRecaptcaMiddleware } from '../middlewares/verify-recaptcha-middleware.js'\n\nconst disableUserSignupProcess = config.get('disableUserSignupProcess', false)\nconst disableUserFavoredLanguage = config.get('i18n/disableUserFavoredLanguage', false)\nconst languages = config.get('i18n/languages', false)\nconst recaptchaSiteKey = config.get('recaptcha/siteKey')\n\nconst passwordRule = config.get('password') || {\n lowerCase: true,\n upperCase: true,\n digit: true,\n specialCharacter: true,\n allowRepeat: false,\n useTightPattern: true,\n useLoosePattern: false,\n tightCharacterLength: 8,\n looseCharacterLength: 15\n}\n\nexport const authSignupRouter = new Router()\n\nif (!disableUserSignupProcess) {\n authSignupRouter.get('/auth/signup', async (context, next) => {\n const { username, email } = context.query\n\n await context.render('auth-page', {\n pageElement: 'auth-signup',\n elementScript: '/auth/signup.js',\n data: {\n username,\n email,\n passwordRule,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages,\n recaptchaSiteKey\n }\n })\n })\n\n authSignupRouter.post('/auth/signup', verifyRecaptcaMiddleware({ action: 'signup' }), async (context, next) => {\n const { header, t } = context\n const { domain } = context.state\n const user = context.request.body\n\n // try {\n const { token } = await signup(\n {\n ...user,\n context,\n domain\n },\n true\n )\n\n const message = t('text.user registered successfully')\n context.body = {\n message,\n token\n }\n\n setAccessTokenCookie(context, token)\n\n if (accepts(header.accept, ['text/html', '*/*'])) {\n await context.render('auth-page', {\n pageElement: 'auth-result',\n elementScript: '/auth/result.js',\n data: {\n message,\n disableUserSignupProcess,\n disableUserFavoredLanguage,\n languages\n }\n })\n }\n // } catch (e) {\n // context.status = 401\n // context.body = e.message\n\n // if (accepts(header.accept, ['text/html', '*/*'])) {\n // await context.render('auth-page', {\n // pageElement: 'auth-signup',\n // elementScript: '/auth/signup.js',\n // data: {\n // message: e instanceof AuthError ? t(`error.${e.message}`) : e.message,\n // passwordRule\n // }\n // })\n // }\n // }\n })\n}\n"]}
@@ -1,9 +1,9 @@
1
- export * from './auth-private-process-router';
2
- export * from './auth-public-process-router';
3
- export * from './path-base-domain-router';
4
- export * from './site-root-router';
5
- export * from './oauth2';
6
- export * from './auth-checkin-router';
7
- export * from './auth-signin-router';
8
- export * from './auth-signup-router';
9
- export * from './webauthn-router';
1
+ export * from './auth-private-process-router.js';
2
+ export * from './auth-public-process-router.js';
3
+ export * from './path-base-domain-router.js';
4
+ export * from './site-root-router.js';
5
+ export * from './oauth2/index.js';
6
+ export * from './auth-checkin-router.js';
7
+ export * from './auth-signin-router.js';
8
+ export * from './auth-signup-router.js';
9
+ export * from './webauthn-router.js';
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./auth-private-process-router"), exports);
5
- tslib_1.__exportStar(require("./auth-public-process-router"), exports);
6
- tslib_1.__exportStar(require("./path-base-domain-router"), exports);
7
- tslib_1.__exportStar(require("./site-root-router"), exports);
8
- tslib_1.__exportStar(require("./oauth2"), exports);
9
- tslib_1.__exportStar(require("./auth-checkin-router"), exports);
10
- tslib_1.__exportStar(require("./auth-signin-router"), exports);
11
- tslib_1.__exportStar(require("./auth-signup-router"), exports);
12
- tslib_1.__exportStar(require("./webauthn-router"), exports);
4
+ tslib_1.__exportStar(require("./auth-private-process-router.js"), exports);
5
+ tslib_1.__exportStar(require("./auth-public-process-router.js"), exports);
6
+ tslib_1.__exportStar(require("./path-base-domain-router.js"), exports);
7
+ tslib_1.__exportStar(require("./site-root-router.js"), exports);
8
+ tslib_1.__exportStar(require("./oauth2/index.js"), exports);
9
+ tslib_1.__exportStar(require("./auth-checkin-router.js"), exports);
10
+ tslib_1.__exportStar(require("./auth-signin-router.js"), exports);
11
+ tslib_1.__exportStar(require("./auth-signup-router.js"), exports);
12
+ tslib_1.__exportStar(require("./webauthn-router.js"), exports);
13
13
  //# sourceMappingURL=index.js.map