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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/config/config.development.js +45 -0
  2. package/config/config.production.js +45 -0
  3. package/dist-client/bootstrap.d.ts +1 -1
  4. package/dist-client/bootstrap.js +4 -4
  5. package/dist-client/bootstrap.js.map +1 -1
  6. package/dist-client/directive/privileged.d.ts +1 -1
  7. package/dist-client/directive/privileged.js +1 -1
  8. package/dist-client/directive/privileged.js.map +1 -1
  9. package/dist-client/index.d.ts +4 -3
  10. package/dist-client/index.js +4 -3
  11. package/dist-client/index.js.map +1 -1
  12. package/dist-client/profiled.js +1 -1
  13. package/dist-client/profiled.js.map +1 -1
  14. package/dist-client/reducers/auth.js +1 -1
  15. package/dist-client/reducers/auth.js.map +1 -1
  16. package/dist-client/tsconfig.tsbuildinfo +1 -1
  17. package/dist-client/verify-webauthn.d.ts +13 -0
  18. package/dist-client/verify-webauthn.js +72 -0
  19. package/dist-client/verify-webauthn.js.map +1 -0
  20. package/dist-server/constants/error-code.d.ts +2 -0
  21. package/dist-server/constants/error-code.js +3 -1
  22. package/dist-server/constants/error-code.js.map +1 -1
  23. package/dist-server/controllers/auth.d.ts +5 -5
  24. package/dist-server/controllers/auth.js +5 -5
  25. package/dist-server/controllers/auth.js.map +1 -1
  26. package/dist-server/controllers/change-pwd.js +21 -21
  27. package/dist-server/controllers/change-pwd.js.map +1 -1
  28. package/dist-server/controllers/checkin.js +4 -4
  29. package/dist-server/controllers/checkin.js.map +1 -1
  30. package/dist-server/controllers/delete-user.js +22 -21
  31. package/dist-server/controllers/delete-user.js.map +1 -1
  32. package/dist-server/controllers/invitation.d.ts +2 -1
  33. package/dist-server/controllers/invitation.js +46 -21
  34. package/dist-server/controllers/invitation.js.map +1 -1
  35. package/dist-server/controllers/profile.d.ts +9 -8
  36. package/dist-server/controllers/profile.js +26 -8
  37. package/dist-server/controllers/profile.js.map +1 -1
  38. package/dist-server/controllers/reset-password.js +24 -24
  39. package/dist-server/controllers/reset-password.js.map +1 -1
  40. package/dist-server/controllers/signin.d.ts +5 -2
  41. package/dist-server/controllers/signin.js +41 -25
  42. package/dist-server/controllers/signin.js.map +1 -1
  43. package/dist-server/controllers/signup.d.ts +1 -1
  44. package/dist-server/controllers/signup.js +26 -17
  45. package/dist-server/controllers/signup.js.map +1 -1
  46. package/dist-server/controllers/unlock-user.js +18 -17
  47. package/dist-server/controllers/unlock-user.js.map +1 -1
  48. package/dist-server/controllers/utils/password-rule.js +4 -4
  49. package/dist-server/controllers/utils/password-rule.js.map +1 -1
  50. package/dist-server/controllers/utils/save-invitation-token.d.ts +1 -1
  51. package/dist-server/controllers/utils/save-invitation-token.js +2 -2
  52. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -1
  53. package/dist-server/controllers/utils/save-verification-token.d.ts +1 -1
  54. package/dist-server/controllers/utils/save-verification-token.js +3 -3
  55. package/dist-server/controllers/utils/save-verification-token.js.map +1 -1
  56. package/dist-server/controllers/verification.js +24 -23
  57. package/dist-server/controllers/verification.js.map +1 -1
  58. package/dist-server/errors/auth-error.js +1 -1
  59. package/dist-server/errors/auth-error.js.map +1 -1
  60. package/dist-server/errors/index.d.ts +2 -2
  61. package/dist-server/errors/index.js +2 -2
  62. package/dist-server/errors/index.js.map +1 -1
  63. package/dist-server/errors/user-domain-not-match-error.d.ts +1 -1
  64. package/dist-server/errors/user-domain-not-match-error.js +8 -8
  65. package/dist-server/errors/user-domain-not-match-error.js.map +1 -1
  66. package/dist-server/index.d.ts +16 -16
  67. package/dist-server/index.js +18 -18
  68. package/dist-server/index.js.map +1 -1
  69. package/dist-server/middlewares/authenticate-401-middleware.js +11 -11
  70. package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -1
  71. package/dist-server/middlewares/domain-authenticate-middleware.d.ts +1 -1
  72. package/dist-server/middlewares/domain-authenticate-middleware.js +9 -9
  73. package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -1
  74. package/dist-server/middlewares/graphql-authenticate-middleware.js +4 -4
  75. package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -1
  76. package/dist-server/middlewares/index.d.ts +5 -5
  77. package/dist-server/middlewares/index.js +18 -18
  78. package/dist-server/middlewares/index.js.map +1 -1
  79. package/dist-server/middlewares/jwt-authenticate-middleware.js +15 -15
  80. package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -1
  81. package/dist-server/middlewares/signin-middleware.js +7 -6
  82. package/dist-server/middlewares/signin-middleware.js.map +1 -1
  83. package/dist-server/middlewares/verify-recaptcha-middleware.d.ts +3 -0
  84. package/dist-server/middlewares/verify-recaptcha-middleware.js +95 -0
  85. package/dist-server/middlewares/verify-recaptcha-middleware.js.map +1 -0
  86. package/dist-server/middlewares/webauthn-middleware.js +16 -13
  87. package/dist-server/middlewares/webauthn-middleware.js.map +1 -1
  88. package/dist-server/migrations/1548206416130-SeedUser.js +8 -7
  89. package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -1
  90. package/dist-server/migrations/1566805283882-SeedPrivilege.js +2 -2
  91. package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -1
  92. package/dist-server/migrations/index.js.map +1 -1
  93. package/dist-server/router/auth-checkin-router.js +18 -12
  94. package/dist-server/router/auth-checkin-router.js.map +1 -1
  95. package/dist-server/router/auth-private-process-router.js +26 -21
  96. package/dist-server/router/auth-private-process-router.js.map +1 -1
  97. package/dist-server/router/auth-public-process-router.js +42 -31
  98. package/dist-server/router/auth-public-process-router.js.map +1 -1
  99. package/dist-server/router/auth-signin-router.js +16 -16
  100. package/dist-server/router/auth-signin-router.js.map +1 -1
  101. package/dist-server/router/auth-signup-router.js +13 -9
  102. package/dist-server/router/auth-signup-router.js.map +1 -1
  103. package/dist-server/router/index.d.ts +9 -9
  104. package/dist-server/router/index.js +9 -9
  105. package/dist-server/router/index.js.map +1 -1
  106. package/dist-server/router/oauth2/index.d.ts +2 -2
  107. package/dist-server/router/oauth2/index.js +2 -2
  108. package/dist-server/router/oauth2/index.js.map +1 -1
  109. package/dist-server/router/oauth2/oauth2-authorize-router.js +6 -6
  110. package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -1
  111. package/dist-server/router/oauth2/oauth2-router.d.ts +1 -1
  112. package/dist-server/router/oauth2/oauth2-router.js +21 -21
  113. package/dist-server/router/oauth2/oauth2-router.js.map +1 -1
  114. package/dist-server/router/oauth2/oauth2-server.js +21 -21
  115. package/dist-server/router/oauth2/oauth2-server.js.map +1 -1
  116. package/dist-server/router/site-root-router.js +4 -4
  117. package/dist-server/router/site-root-router.js.map +1 -1
  118. package/dist-server/router/webauthn-router.js +58 -8
  119. package/dist-server/router/webauthn-router.js.map +1 -1
  120. package/dist-server/routes.js +19 -19
  121. package/dist-server/routes.js.map +1 -1
  122. package/dist-server/service/app-binding/app-binding-mutation.js +4 -4
  123. package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -1
  124. package/dist-server/service/app-binding/app-binding-query.d.ts +4 -4
  125. package/dist-server/service/app-binding/app-binding-query.js +22 -22
  126. package/dist-server/service/app-binding/app-binding-query.js.map +1 -1
  127. package/dist-server/service/app-binding/app-binding-types.d.ts +1 -1
  128. package/dist-server/service/app-binding/app-binding-types.js +2 -2
  129. package/dist-server/service/app-binding/app-binding-types.js.map +1 -1
  130. package/dist-server/service/app-binding/app-binding.d.ts +2 -2
  131. package/dist-server/service/app-binding/app-binding.js +4 -4
  132. package/dist-server/service/app-binding/app-binding.js.map +1 -1
  133. package/dist-server/service/app-binding/index.d.ts +2 -2
  134. package/dist-server/service/app-binding/index.js +3 -3
  135. package/dist-server/service/app-binding/index.js.map +1 -1
  136. package/dist-server/service/appliance/appliance-mutation.d.ts +2 -2
  137. package/dist-server/service/appliance/appliance-mutation.js +21 -21
  138. package/dist-server/service/appliance/appliance-mutation.js.map +1 -1
  139. package/dist-server/service/appliance/appliance-query.d.ts +3 -3
  140. package/dist-server/service/appliance/appliance-query.js +17 -17
  141. package/dist-server/service/appliance/appliance-query.js.map +1 -1
  142. package/dist-server/service/appliance/appliance-types.d.ts +1 -1
  143. package/dist-server/service/appliance/appliance-types.js +2 -2
  144. package/dist-server/service/appliance/appliance-types.js.map +1 -1
  145. package/dist-server/service/appliance/appliance.d.ts +1 -1
  146. package/dist-server/service/appliance/appliance.js +8 -8
  147. package/dist-server/service/appliance/appliance.js.map +1 -1
  148. package/dist-server/service/appliance/index.d.ts +3 -3
  149. package/dist-server/service/appliance/index.js +5 -5
  150. package/dist-server/service/appliance/index.js.map +1 -1
  151. package/dist-server/service/application/application-mutation.d.ts +8 -8
  152. package/dist-server/service/application/application-mutation.js +20 -20
  153. package/dist-server/service/application/application-mutation.js.map +1 -1
  154. package/dist-server/service/application/application-query.d.ts +2 -2
  155. package/dist-server/service/application/application-query.js +16 -16
  156. package/dist-server/service/application/application-query.js.map +1 -1
  157. package/dist-server/service/application/application-types.d.ts +1 -1
  158. package/dist-server/service/application/application-types.js +4 -4
  159. package/dist-server/service/application/application-types.js.map +1 -1
  160. package/dist-server/service/application/application.d.ts +1 -1
  161. package/dist-server/service/application/application.js +12 -12
  162. package/dist-server/service/application/application.js.map +1 -1
  163. package/dist-server/service/application/index.d.ts +3 -3
  164. package/dist-server/service/application/index.js +5 -5
  165. package/dist-server/service/application/index.js.map +1 -1
  166. package/dist-server/service/auth-provider/auth-provider-mutation.d.ts +2 -2
  167. package/dist-server/service/auth-provider/auth-provider-mutation.js +20 -20
  168. package/dist-server/service/auth-provider/auth-provider-mutation.js.map +1 -1
  169. package/dist-server/service/auth-provider/auth-provider-query.d.ts +3 -3
  170. package/dist-server/service/auth-provider/auth-provider-query.js +20 -20
  171. package/dist-server/service/auth-provider/auth-provider-query.js.map +1 -1
  172. package/dist-server/service/auth-provider/auth-provider-type.d.ts +1 -1
  173. package/dist-server/service/auth-provider/auth-provider-type.js +2 -2
  174. package/dist-server/service/auth-provider/auth-provider-type.js.map +1 -1
  175. package/dist-server/service/auth-provider/auth-provider.d.ts +3 -3
  176. package/dist-server/service/auth-provider/auth-provider.js +12 -12
  177. package/dist-server/service/auth-provider/auth-provider.js.map +1 -1
  178. package/dist-server/service/auth-provider/index.d.ts +3 -3
  179. package/dist-server/service/auth-provider/index.js +5 -5
  180. package/dist-server/service/auth-provider/index.js.map +1 -1
  181. package/dist-server/service/domain-generator/domain-generator-mutation.d.ts +1 -1
  182. package/dist-server/service/domain-generator/domain-generator-mutation.js +11 -11
  183. package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -1
  184. package/dist-server/service/domain-generator/domain-generator-types.d.ts +1 -1
  185. package/dist-server/service/domain-generator/domain-generator-types.js +3 -3
  186. package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -1
  187. package/dist-server/service/domain-generator/index.d.ts +1 -1
  188. package/dist-server/service/domain-generator/index.js +2 -2
  189. package/dist-server/service/domain-generator/index.js.map +1 -1
  190. package/dist-server/service/granted-role/granted-role-mutation.d.ts +3 -3
  191. package/dist-server/service/granted-role/granted-role-mutation.js +17 -17
  192. package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -1
  193. package/dist-server/service/granted-role/granted-role-query.d.ts +2 -2
  194. package/dist-server/service/granted-role/granted-role-query.js +13 -13
  195. package/dist-server/service/granted-role/granted-role-query.js.map +1 -1
  196. package/dist-server/service/granted-role/granted-role.d.ts +1 -1
  197. package/dist-server/service/granted-role/granted-role.js +3 -3
  198. package/dist-server/service/granted-role/granted-role.js.map +1 -1
  199. package/dist-server/service/granted-role/index.d.ts +3 -3
  200. package/dist-server/service/granted-role/index.js +5 -5
  201. package/dist-server/service/granted-role/index.js.map +1 -1
  202. package/dist-server/service/index.d.ts +25 -25
  203. package/dist-server/service/index.js +70 -70
  204. package/dist-server/service/index.js.map +1 -1
  205. package/dist-server/service/invitation/index.d.ts +3 -3
  206. package/dist-server/service/invitation/index.js +5 -5
  207. package/dist-server/service/invitation/index.js.map +1 -1
  208. package/dist-server/service/invitation/invitation-mutation.d.ts +4 -3
  209. package/dist-server/service/invitation/invitation-mutation.js +26 -14
  210. package/dist-server/service/invitation/invitation-mutation.js.map +1 -1
  211. package/dist-server/service/invitation/invitation-query.d.ts +1 -1
  212. package/dist-server/service/invitation/invitation-query.js +7 -7
  213. package/dist-server/service/invitation/invitation-query.js.map +1 -1
  214. package/dist-server/service/invitation/invitation-types.d.ts +1 -1
  215. package/dist-server/service/invitation/invitation-types.js +2 -2
  216. package/dist-server/service/invitation/invitation-types.js.map +1 -1
  217. package/dist-server/service/invitation/invitation.d.ts +1 -1
  218. package/dist-server/service/invitation/invitation.js +5 -5
  219. package/dist-server/service/invitation/invitation.js.map +1 -1
  220. package/dist-server/service/login-history/index.d.ts +2 -2
  221. package/dist-server/service/login-history/index.js +4 -4
  222. package/dist-server/service/login-history/index.js.map +1 -1
  223. package/dist-server/service/login-history/login-history-query.d.ts +3 -3
  224. package/dist-server/service/login-history/login-history-query.js +11 -11
  225. package/dist-server/service/login-history/login-history-query.js.map +1 -1
  226. package/dist-server/service/login-history/login-history-type.d.ts +1 -1
  227. package/dist-server/service/login-history/login-history-type.js +2 -2
  228. package/dist-server/service/login-history/login-history-type.js.map +1 -1
  229. package/dist-server/service/login-history/login-history.d.ts +1 -1
  230. package/dist-server/service/login-history/login-history.js +4 -4
  231. package/dist-server/service/login-history/login-history.js.map +1 -1
  232. package/dist-server/service/partner/index.d.ts +3 -3
  233. package/dist-server/service/partner/index.js +5 -5
  234. package/dist-server/service/partner/index.js.map +1 -1
  235. package/dist-server/service/partner/partner-mutation.js +8 -8
  236. package/dist-server/service/partner/partner-mutation.js.map +1 -1
  237. package/dist-server/service/partner/partner-query.d.ts +3 -3
  238. package/dist-server/service/partner/partner-query.js +17 -17
  239. package/dist-server/service/partner/partner-query.js.map +1 -1
  240. package/dist-server/service/partner/partner-types.d.ts +1 -1
  241. package/dist-server/service/partner/partner-types.js +2 -2
  242. package/dist-server/service/partner/partner-types.js.map +1 -1
  243. package/dist-server/service/partner/partner.d.ts +1 -1
  244. package/dist-server/service/partner/partner.js +5 -5
  245. package/dist-server/service/partner/partner.js.map +1 -1
  246. package/dist-server/service/password-history/index.d.ts +1 -1
  247. package/dist-server/service/password-history/index.js +2 -2
  248. package/dist-server/service/password-history/index.js.map +1 -1
  249. package/dist-server/service/privilege/index.d.ts +3 -3
  250. package/dist-server/service/privilege/index.js +5 -5
  251. package/dist-server/service/privilege/index.js.map +1 -1
  252. package/dist-server/service/privilege/privilege-directive.js +2 -2
  253. package/dist-server/service/privilege/privilege-directive.js.map +1 -1
  254. package/dist-server/service/privilege/privilege-mutation.d.ts +2 -2
  255. package/dist-server/service/privilege/privilege-mutation.js +15 -15
  256. package/dist-server/service/privilege/privilege-mutation.js.map +1 -1
  257. package/dist-server/service/privilege/privilege-query.d.ts +4 -4
  258. package/dist-server/service/privilege/privilege-query.js +20 -20
  259. package/dist-server/service/privilege/privilege-query.js.map +1 -1
  260. package/dist-server/service/privilege/privilege-types.d.ts +1 -1
  261. package/dist-server/service/privilege/privilege-types.js +2 -2
  262. package/dist-server/service/privilege/privilege-types.js.map +1 -1
  263. package/dist-server/service/privilege/privilege.d.ts +2 -2
  264. package/dist-server/service/privilege/privilege.js +10 -10
  265. package/dist-server/service/privilege/privilege.js.map +1 -1
  266. package/dist-server/service/role/index.d.ts +3 -3
  267. package/dist-server/service/role/index.js +5 -5
  268. package/dist-server/service/role/index.js.map +1 -1
  269. package/dist-server/service/role/role-mutation.d.ts +2 -2
  270. package/dist-server/service/role/role-mutation.js +19 -19
  271. package/dist-server/service/role/role-mutation.js.map +1 -1
  272. package/dist-server/service/role/role-query.d.ts +4 -4
  273. package/dist-server/service/role/role-query.js +29 -29
  274. package/dist-server/service/role/role-query.js.map +1 -1
  275. package/dist-server/service/role/role-types.d.ts +1 -1
  276. package/dist-server/service/role/role-types.js +2 -2
  277. package/dist-server/service/role/role-types.js.map +1 -1
  278. package/dist-server/service/role/role.d.ts +2 -2
  279. package/dist-server/service/role/role.js +12 -12
  280. package/dist-server/service/role/role.js.map +1 -1
  281. package/dist-server/service/user/domain-query.d.ts +1 -1
  282. package/dist-server/service/user/domain-query.js +3 -3
  283. package/dist-server/service/user/domain-query.js.map +1 -1
  284. package/dist-server/service/user/index.d.ts +4 -4
  285. package/dist-server/service/user/index.js +6 -6
  286. package/dist-server/service/user/index.js.map +1 -1
  287. package/dist-server/service/user/user-mutation.d.ts +13 -12
  288. package/dist-server/service/user/user-mutation.js +141 -83
  289. package/dist-server/service/user/user-mutation.js.map +1 -1
  290. package/dist-server/service/user/user-query.d.ts +3 -3
  291. package/dist-server/service/user/user-query.js +21 -21
  292. package/dist-server/service/user/user-query.js.map +1 -1
  293. package/dist-server/service/user/user-types.d.ts +2 -1
  294. package/dist-server/service/user/user-types.js +6 -2
  295. package/dist-server/service/user/user-types.js.map +1 -1
  296. package/dist-server/service/user/user.d.ts +4 -3
  297. package/dist-server/service/user/user.js +80 -54
  298. package/dist-server/service/user/user.js.map +1 -1
  299. package/dist-server/service/users-auth-providers/index.d.ts +1 -1
  300. package/dist-server/service/users-auth-providers/index.js +2 -2
  301. package/dist-server/service/users-auth-providers/index.js.map +1 -1
  302. package/dist-server/service/users-auth-providers/users-auth-providers.d.ts +2 -2
  303. package/dist-server/service/users-auth-providers/users-auth-providers.js +8 -8
  304. package/dist-server/service/users-auth-providers/users-auth-providers.js.map +1 -1
  305. package/dist-server/service/verification-token/index.d.ts +1 -1
  306. package/dist-server/service/verification-token/index.js +2 -2
  307. package/dist-server/service/verification-token/index.js.map +1 -1
  308. package/dist-server/service/web-auth-credential/index.d.ts +1 -1
  309. package/dist-server/service/web-auth-credential/index.js +2 -2
  310. package/dist-server/service/web-auth-credential/index.js.map +1 -1
  311. package/dist-server/service/web-auth-credential/web-auth-credential.d.ts +1 -1
  312. package/dist-server/service/web-auth-credential/web-auth-credential.js +10 -10
  313. package/dist-server/service/web-auth-credential/web-auth-credential.js.map +1 -1
  314. package/dist-server/templates/account-unlock-email.d.ts +2 -1
  315. package/dist-server/templates/account-unlock-email.js +1 -1
  316. package/dist-server/templates/account-unlock-email.js.map +1 -1
  317. package/dist-server/templates/invitation-email.d.ts +2 -1
  318. package/dist-server/templates/invitation-email.js +1 -1
  319. package/dist-server/templates/invitation-email.js.map +1 -1
  320. package/dist-server/templates/verification-email.d.ts +2 -1
  321. package/dist-server/templates/verification-email.js +1 -1
  322. package/dist-server/templates/verification-email.js.map +1 -1
  323. package/dist-server/tsconfig.tsbuildinfo +1 -1
  324. package/dist-server/types.d.ts +1 -1
  325. package/dist-server/types.js.map +1 -1
  326. package/dist-server/utils/access-token-cookie.js +2 -2
  327. package/dist-server/utils/access-token-cookie.js.map +1 -1
  328. package/dist-server/utils/check-permission.d.ts +2 -2
  329. package/dist-server/utils/check-permission.js +3 -3
  330. package/dist-server/utils/check-permission.js.map +1 -1
  331. package/dist-server/utils/check-user-belongs-domain.d.ts +1 -1
  332. package/dist-server/utils/check-user-belongs-domain.js +2 -2
  333. package/dist-server/utils/check-user-belongs-domain.js.map +1 -1
  334. package/dist-server/utils/check-user-has-role.d.ts +1 -1
  335. package/dist-server/utils/check-user-has-role.js +2 -2
  336. package/dist-server/utils/check-user-has-role.js.map +1 -1
  337. package/dist-server/utils/get-domain-users.d.ts +1 -1
  338. package/dist-server/utils/get-domain-users.js +2 -2
  339. package/dist-server/utils/get-domain-users.js.map +1 -1
  340. package/dist-server/utils/get-user-domains.d.ts +1 -1
  341. package/dist-server/utils/get-user-domains.js +4 -4
  342. package/dist-server/utils/get-user-domains.js.map +1 -1
  343. package/helps/config/recaptcha.ja.md +49 -0
  344. package/helps/config/recaptcha.ko.md +49 -0
  345. package/helps/config/recaptcha.md +49 -0
  346. package/helps/config/recaptcha.ms.md +49 -0
  347. package/helps/config/recaptcha.zh.md +49 -0
  348. package/package.json +10 -9
  349. package/translations/en.json +5 -1
  350. package/translations/ja.json +5 -1
  351. package/translations/ko.json +6 -3
  352. package/translations/ms.json +5 -1
  353. package/translations/zh.json +5 -1
  354. package/client/actions/auth.ts +0 -24
  355. package/client/auth.ts +0 -272
  356. package/client/bootstrap.ts +0 -47
  357. package/client/directive/privileged.ts +0 -28
  358. package/client/index.ts +0 -3
  359. package/client/profiled.ts +0 -83
  360. package/client/reducers/auth.ts +0 -31
  361. package/server/constants/error-code.ts +0 -20
  362. package/server/constants/error-message.ts +0 -0
  363. package/server/constants/max-age.ts +0 -1
  364. package/server/controllers/auth.ts +0 -5
  365. package/server/controllers/change-pwd.ts +0 -99
  366. package/server/controllers/checkin.ts +0 -21
  367. package/server/controllers/delete-user.ts +0 -68
  368. package/server/controllers/invitation.ts +0 -132
  369. package/server/controllers/profile.ts +0 -28
  370. package/server/controllers/reset-password.ts +0 -126
  371. package/server/controllers/signin.ts +0 -79
  372. package/server/controllers/signup.ts +0 -60
  373. package/server/controllers/unlock-user.ts +0 -61
  374. package/server/controllers/utils/make-invitation-token.ts +0 -5
  375. package/server/controllers/utils/make-verification-token.ts +0 -4
  376. package/server/controllers/utils/password-rule.ts +0 -120
  377. package/server/controllers/utils/save-invitation-token.ts +0 -10
  378. package/server/controllers/utils/save-verification-token.ts +0 -12
  379. package/server/controllers/verification.ts +0 -83
  380. package/server/errors/auth-error.ts +0 -24
  381. package/server/errors/index.ts +0 -2
  382. package/server/errors/user-domain-not-match-error.ts +0 -29
  383. package/server/index.ts +0 -37
  384. package/server/middlewares/authenticate-401-middleware.ts +0 -114
  385. package/server/middlewares/domain-authenticate-middleware.ts +0 -78
  386. package/server/middlewares/graphql-authenticate-middleware.ts +0 -13
  387. package/server/middlewares/index.ts +0 -67
  388. package/server/middlewares/jwt-authenticate-middleware.ts +0 -84
  389. package/server/middlewares/signin-middleware.ts +0 -55
  390. package/server/middlewares/webauthn-middleware.ts +0 -127
  391. package/server/migrations/1548206416130-SeedUser.ts +0 -59
  392. package/server/migrations/1566805283882-SeedPrivilege.ts +0 -28
  393. package/server/migrations/index.ts +0 -9
  394. package/server/router/auth-checkin-router.ts +0 -107
  395. package/server/router/auth-private-process-router.ts +0 -107
  396. package/server/router/auth-public-process-router.ts +0 -302
  397. package/server/router/auth-signin-router.ts +0 -65
  398. package/server/router/auth-signup-router.ts +0 -95
  399. package/server/router/index.ts +0 -9
  400. package/server/router/oauth2/index.ts +0 -2
  401. package/server/router/oauth2/oauth2-authorize-router.ts +0 -81
  402. package/server/router/oauth2/oauth2-router.ts +0 -165
  403. package/server/router/oauth2/oauth2-server.ts +0 -262
  404. package/server/router/oauth2/passport-oauth2-client-password.ts +0 -87
  405. package/server/router/oauth2/passport-refresh-token.ts +0 -87
  406. package/server/router/path-base-domain-router.ts +0 -8
  407. package/server/router/site-root-router.ts +0 -48
  408. package/server/router/webauthn-router.ts +0 -87
  409. package/server/routes.ts +0 -80
  410. package/server/service/app-binding/app-binding-mutation.ts +0 -22
  411. package/server/service/app-binding/app-binding-query.ts +0 -92
  412. package/server/service/app-binding/app-binding-types.ts +0 -11
  413. package/server/service/app-binding/app-binding.ts +0 -17
  414. package/server/service/app-binding/index.ts +0 -4
  415. package/server/service/appliance/appliance-mutation.ts +0 -113
  416. package/server/service/appliance/appliance-query.ts +0 -76
  417. package/server/service/appliance/appliance-types.ts +0 -56
  418. package/server/service/appliance/appliance.ts +0 -133
  419. package/server/service/appliance/index.ts +0 -6
  420. package/server/service/application/application-mutation.ts +0 -104
  421. package/server/service/application/application-query.ts +0 -98
  422. package/server/service/application/application-types.ts +0 -76
  423. package/server/service/application/application.ts +0 -216
  424. package/server/service/application/index.ts +0 -6
  425. package/server/service/auth-provider/auth-provider-mutation.ts +0 -159
  426. package/server/service/auth-provider/auth-provider-parameter-spec.ts +0 -24
  427. package/server/service/auth-provider/auth-provider-query.ts +0 -88
  428. package/server/service/auth-provider/auth-provider-type.ts +0 -67
  429. package/server/service/auth-provider/auth-provider.ts +0 -155
  430. package/server/service/auth-provider/index.ts +0 -7
  431. package/server/service/domain-generator/domain-generator-mutation.ts +0 -117
  432. package/server/service/domain-generator/domain-generator-types.ts +0 -46
  433. package/server/service/domain-generator/index.ts +0 -3
  434. package/server/service/granted-role/granted-role-mutation.ts +0 -156
  435. package/server/service/granted-role/granted-role-query.ts +0 -60
  436. package/server/service/granted-role/granted-role.ts +0 -27
  437. package/server/service/granted-role/index.ts +0 -6
  438. package/server/service/index.ts +0 -90
  439. package/server/service/invitation/index.ts +0 -6
  440. package/server/service/invitation/invitation-mutation.ts +0 -63
  441. package/server/service/invitation/invitation-query.ts +0 -33
  442. package/server/service/invitation/invitation-types.ts +0 -11
  443. package/server/service/invitation/invitation.ts +0 -63
  444. package/server/service/login-history/index.ts +0 -5
  445. package/server/service/login-history/login-history-query.ts +0 -51
  446. package/server/service/login-history/login-history-type.ts +0 -12
  447. package/server/service/login-history/login-history.ts +0 -45
  448. package/server/service/partner/index.ts +0 -6
  449. package/server/service/partner/partner-mutation.ts +0 -61
  450. package/server/service/partner/partner-query.ts +0 -102
  451. package/server/service/partner/partner-types.ts +0 -11
  452. package/server/service/partner/partner.ts +0 -57
  453. package/server/service/password-history/index.ts +0 -3
  454. package/server/service/password-history/password-history.ts +0 -16
  455. package/server/service/privilege/index.ts +0 -6
  456. package/server/service/privilege/privilege-directive.ts +0 -77
  457. package/server/service/privilege/privilege-mutation.ts +0 -92
  458. package/server/service/privilege/privilege-query.ts +0 -94
  459. package/server/service/privilege/privilege-types.ts +0 -60
  460. package/server/service/privilege/privilege.ts +0 -102
  461. package/server/service/role/index.ts +0 -6
  462. package/server/service/role/role-mutation.ts +0 -109
  463. package/server/service/role/role-query.ts +0 -155
  464. package/server/service/role/role-types.ts +0 -81
  465. package/server/service/role/role.ts +0 -72
  466. package/server/service/user/domain-query.ts +0 -24
  467. package/server/service/user/index.ts +0 -7
  468. package/server/service/user/user-mutation.ts +0 -413
  469. package/server/service/user/user-query.ts +0 -145
  470. package/server/service/user/user-types.ts +0 -97
  471. package/server/service/user/user.ts +0 -354
  472. package/server/service/users-auth-providers/index.ts +0 -5
  473. package/server/service/users-auth-providers/users-auth-providers.ts +0 -71
  474. package/server/service/verification-token/index.ts +0 -3
  475. package/server/service/verification-token/verification-token.ts +0 -60
  476. package/server/service/web-auth-credential/index.ts +0 -3
  477. package/server/service/web-auth-credential/web-auth-credential.ts +0 -67
  478. package/server/templates/account-unlock-email.ts +0 -65
  479. package/server/templates/invitation-email.ts +0 -66
  480. package/server/templates/reset-password-email.ts +0 -65
  481. package/server/templates/verification-email.ts +0 -66
  482. package/server/types.ts +0 -21
  483. package/server/utils/accepts.ts +0 -11
  484. package/server/utils/access-token-cookie.ts +0 -61
  485. package/server/utils/check-permission.ts +0 -52
  486. package/server/utils/check-user-belongs-domain.ts +0 -19
  487. package/server/utils/check-user-has-role.ts +0 -29
  488. package/server/utils/encrypt-state.ts +0 -22
  489. package/server/utils/get-aes-256-key.ts +0 -13
  490. package/server/utils/get-domain-from-hostname.ts +0 -7
  491. package/server/utils/get-domain-users.ts +0 -38
  492. package/server/utils/get-secret.ts +0 -13
  493. package/server/utils/get-user-domains.ts +0 -112
@@ -1,7 +1,7 @@
1
1
  import { TFunction } from 'i18next';
2
2
  import { EntityManager } from 'typeorm';
3
3
  import { Domain } from '@things-factory/shell';
4
- import { User } from './service/user/user';
4
+ import { User } from './service/user/user.js';
5
5
  declare global {
6
6
  export type ResolverContext = {
7
7
  state: IContextState;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../server/types.ts"],"names":[],"mappings":"","sourcesContent":["import { TFunction } from 'i18next'\nimport { EntityManager } from 'typeorm'\n\nimport { Domain } from '@things-factory/shell'\n\nimport { User } from './service/user/user'\n\ndeclare global {\n export type ResolverContext = {\n state: IContextState\n t?: TFunction\n [key: string]: any\n }\n\n interface IContextState {\n domain: Domain\n user: User\n tx?: EntityManager\n [key: string]: any\n }\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../server/types.ts"],"names":[],"mappings":"","sourcesContent":["import { TFunction } from 'i18next'\nimport { EntityManager } from 'typeorm'\n\nimport { Domain } from '@things-factory/shell'\n\nimport { User } from './service/user/user.js'\n\ndeclare global {\n export type ResolverContext = {\n state: IContextState\n t?: TFunction\n [key: string]: any\n }\n\n interface IContextState {\n domain: Domain\n user: User\n tx?: EntityManager\n [key: string]: any\n }\n}\n"]}
@@ -6,7 +6,7 @@ exports.setSessionAccessToken = setSessionAccessToken;
6
6
  exports.clearAccessTokenCookie = clearAccessTokenCookie;
7
7
  const shell_1 = require("@things-factory/shell");
8
8
  const env_1 = require("@things-factory/env");
9
- const max_age_1 = require("../constants/max-age");
9
+ const max_age_js_1 = require("../constants/max-age.js");
10
10
  const accessTokenCookieKey = env_1.config.get('accessTokenCookieKey', 'access_token');
11
11
  function getAccessTokenCookie(context) {
12
12
  var _a;
@@ -17,7 +17,7 @@ function setAccessTokenCookie(context, token) {
17
17
  var cookie = {
18
18
  secure,
19
19
  httpOnly: true,
20
- maxAge: max_age_1.MAX_AGE,
20
+ maxAge: max_age_js_1.MAX_AGE,
21
21
  sameSite: 'Lax'
22
22
  };
23
23
  const cookieDomain = (0, shell_1.getCookieDomainFromHostname)(context.hostname);
@@ -1 +1 @@
1
- {"version":3,"file":"access-token-cookie.js","sourceRoot":"","sources":["../../server/utils/access-token-cookie.ts"],"names":[],"mappings":";;AAMA,oDAEC;AAED,oDAgBC;AAED,sDASC;AAED,wDAqBC;AA5DD,iDAAmE;AACnE,6CAA4C;AAC5C,kDAA8C;AAE9C,MAAM,oBAAoB,GAAG,YAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;AAE/E,SAAgB,oBAAoB,CAAC,OAAO;;IAC1C,OAAO,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,0CAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAO,EAAE,KAAK;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE1B,IAAI,MAAM,GAAG;QACX,MAAM;QACN,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,iBAAO;QACf,QAAQ,EAAE,KAAK;KAChB,CAAA;IAED,MAAM,YAAY,GAAG,IAAA,mCAA2B,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAO;IAC3C,0FAA0F;IAC1F,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE9B,OAAO,CAAC,OAAO,GAAG;QAChB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,MAAM,EAAE,IAAI,CAAC,KAAK;KACnB,CAAA;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAO;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE1B,IAAI,MAAM,GAAG;QACX,MAAM;QACN,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CAAA;IAED,MAAM,YAAY,GAAG,IAAA,mCAA2B,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACrD;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC1C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;AACxB,CAAC","sourcesContent":["import { getCookieDomainFromHostname } from '@things-factory/shell'\nimport { config } from '@things-factory/env'\nimport { MAX_AGE } from '../constants/max-age'\n\nconst accessTokenCookieKey = config.get('accessTokenCookieKey', 'access_token')\n\nexport function getAccessTokenCookie(context) {\n return context?.cookies?.get(accessTokenCookieKey)\n}\n\nexport function setAccessTokenCookie(context, token) {\n const { secure } = context\n\n var cookie = {\n secure,\n httpOnly: true,\n maxAge: MAX_AGE,\n sameSite: 'Lax'\n }\n\n const cookieDomain = getCookieDomainFromHostname(context.hostname)\n if (cookieDomain) {\n cookie['domain'] = cookieDomain\n }\n\n context.cookies.set(accessTokenCookieKey, token, cookie)\n}\n\nexport function setSessionAccessToken(context) {\n /* koa-session 을 사용하는 경우에는, cookie 직접 설정이 작동되지 않는다. 그런 경우에는 session에 설정해서 cookie를 변경한다. */\n const { user } = context.state\n\n context.session = {\n id: user.id,\n userType: user.type,\n status: user.state\n }\n}\n\nexport function clearAccessTokenCookie(context) {\n const { secure } = context\n\n var cookie = {\n secure,\n httpOnly: true,\n sameSite: 'Lax'\n }\n\n const cookieDomain = getCookieDomainFromHostname(context.hostname)\n if (cookieDomain) {\n cookie['domain'] = cookieDomain\n }\n\n context.cookies.set(accessTokenCookieKey, '', cookie)\n /*\n * TODO clear i18next cookie as well - need to support domain\n * https://github.com/hatiolab/things-factory/issues/70\n */\n context.cookies.set('i18next', '', cookie)\n context.session = null\n}\n"]}
1
+ {"version":3,"file":"access-token-cookie.js","sourceRoot":"","sources":["../../server/utils/access-token-cookie.ts"],"names":[],"mappings":";;AAMA,oDAEC;AAED,oDAgBC;AAED,sDASC;AAED,wDAqBC;AA5DD,iDAAmE;AACnE,6CAA4C;AAC5C,wDAAiD;AAEjD,MAAM,oBAAoB,GAAG,YAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;AAE/E,SAAgB,oBAAoB,CAAC,OAAO;;IAC1C,OAAO,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,0CAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAO,EAAE,KAAK;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE1B,IAAI,MAAM,GAAG;QACX,MAAM;QACN,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,oBAAO;QACf,QAAQ,EAAE,KAAK;KAChB,CAAA;IAED,MAAM,YAAY,GAAG,IAAA,mCAA2B,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAO;IAC3C,0FAA0F;IAC1F,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE9B,OAAO,CAAC,OAAO,GAAG;QAChB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,MAAM,EAAE,IAAI,CAAC,KAAK;KACnB,CAAA;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAO;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE1B,IAAI,MAAM,GAAG;QACX,MAAM;QACN,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB,CAAA;IAED,MAAM,YAAY,GAAG,IAAA,mCAA2B,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACrD;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC1C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;AACxB,CAAC","sourcesContent":["import { getCookieDomainFromHostname } from '@things-factory/shell'\nimport { config } from '@things-factory/env'\nimport { MAX_AGE } from '../constants/max-age.js'\n\nconst accessTokenCookieKey = config.get('accessTokenCookieKey', 'access_token')\n\nexport function getAccessTokenCookie(context) {\n return context?.cookies?.get(accessTokenCookieKey)\n}\n\nexport function setAccessTokenCookie(context, token) {\n const { secure } = context\n\n var cookie = {\n secure,\n httpOnly: true,\n maxAge: MAX_AGE,\n sameSite: 'Lax'\n }\n\n const cookieDomain = getCookieDomainFromHostname(context.hostname)\n if (cookieDomain) {\n cookie['domain'] = cookieDomain\n }\n\n context.cookies.set(accessTokenCookieKey, token, cookie)\n}\n\nexport function setSessionAccessToken(context) {\n /* koa-session 을 사용하는 경우에는, cookie 직접 설정이 작동되지 않는다. 그런 경우에는 session에 설정해서 cookie를 변경한다. */\n const { user } = context.state\n\n context.session = {\n id: user.id,\n userType: user.type,\n status: user.state\n }\n}\n\nexport function clearAccessTokenCookie(context) {\n const { secure } = context\n\n var cookie = {\n secure,\n httpOnly: true,\n sameSite: 'Lax'\n }\n\n const cookieDomain = getCookieDomainFromHostname(context.hostname)\n if (cookieDomain) {\n cookie['domain'] = cookieDomain\n }\n\n context.cookies.set(accessTokenCookieKey, '', cookie)\n /*\n * TODO clear i18next cookie as well - need to support domain\n * https://github.com/hatiolab/things-factory/issues/70\n */\n context.cookies.set('i18next', '', cookie)\n context.session = null\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { Domain } from '@things-factory/shell';
2
- import { PrivilegeObject } from '../service/privilege/privilege';
3
- import { User } from '../service/user/user';
2
+ import { PrivilegeObject } from '../service/privilege/privilege.js';
3
+ import { User } from '../service/user/user.js';
4
4
  export declare function checkPermission(privilegeObject: PrivilegeObject, user: User, domain: Domain, unsafeIP?: boolean, prohibitedPrivileges?: {
5
5
  category: string;
6
6
  privilege: string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkPermission = checkPermission;
4
- const user_1 = require("../service/user/user");
4
+ const user_js_1 = require("../service/user/user.js");
5
5
  async function checkPermission(privilegeObject, user, domain, unsafeIP, prohibitedPrivileges) {
6
6
  if (!privilegeObject) {
7
7
  return true;
@@ -13,7 +13,7 @@ async function checkPermission(privilegeObject, user, domain, unsafeIP, prohibit
13
13
  if ((prohibitedPrivileges || []).find(pp => pp.category == category && pp.privilege == privilege)) {
14
14
  return false;
15
15
  }
16
- return await user_1.User.hasPrivilege(privilege, category, domain, user);
16
+ return await user_js_1.User.hasPrivilege(privilege, category, domain, user);
17
17
  }
18
18
  // privilege, category가 설정되지 않은 경우에는 ownership granted가 설정되었다면 허가하지 않는다.
19
19
  return !domainOwnerGranted && !superUserGranted;
@@ -31,7 +31,7 @@ async function checkPermission(privilegeObject, user, domain, unsafeIP, prohibit
31
31
  if ((prohibitedPrivileges || []).find(pp => pp.category == category && pp.privilege == privilege)) {
32
32
  return false;
33
33
  }
34
- return await user_1.User.hasPrivilege(privilege, category, domain, user);
34
+ return await user_js_1.User.hasPrivilege(privilege, category, domain, user);
35
35
  }
36
36
  }
37
37
  //# sourceMappingURL=check-permission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-permission.js","sourceRoot":"","sources":["../../server/utils/check-permission.ts"],"names":[],"mappings":";;AAIA,0CA+CC;AAjDD,+CAA2C;AAEpC,KAAK,UAAU,eAAe,CACnC,eAAgC,EAChC,IAAU,EACV,MAAc,EACd,QAAkB,EAClB,oBAAgE;IAEhE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,eAAe,CAAA;IAEnG,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YAC1B,8CAA8C;YAC9C,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,QAAQ,IAAI,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,CAAC;gBAClG,OAAO,KAAK,CAAA;YACd,CAAC;YAED,OAAO,MAAM,WAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACnE,CAAC;QAED,wEAAwE;QACxE,OAAO,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,OAAO,CACL,CAAC,kBAAkB,IAAI,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACxE,CAAC,gBAAgB,IAAI,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CACrE,CAAA;QACH,CAAC;QAED,IACE,CAAC,kBAAkB,IAAI,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACxE,CAAC,gBAAgB,IAAI,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EACpE,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,QAAQ,IAAI,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,CAAC;YAClG,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,MAAM,WAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACnE,CAAC;AACH,CAAC","sourcesContent":["import { Domain } from '@things-factory/shell'\nimport { PrivilegeObject } from '../service/privilege/privilege'\nimport { User } from '../service/user/user'\n\nexport async function checkPermission(\n privilegeObject: PrivilegeObject,\n user: User,\n domain: Domain,\n unsafeIP?: boolean,\n prohibitedPrivileges?: { category: string; privilege: string }[]\n): Promise<boolean> {\n if (!privilegeObject) {\n return true\n }\n\n const { owner: domainOwnerGranted, super: superUserGranted, category, privilege } = privilegeObject\n\n if (unsafeIP) {\n if (privilege && category) {\n // unsafeIP 상황에서는 ownership granted는 적용되지 않는다.\n if ((prohibitedPrivileges || []).find(pp => pp.category == category && pp.privilege == privilege)) {\n return false\n }\n\n return await User.hasPrivilege(privilege, category, domain, user)\n }\n\n // privilege, category가 설정되지 않은 경우에는 ownership granted가 설정되었다면 허가하지 않는다.\n return !domainOwnerGranted && !superUserGranted\n } else {\n if (!privilege || !category) {\n // privilege, category가 설정되지 않은 경우에는 ownership granted만을 적용한다.\n return (\n (domainOwnerGranted && (await process.domainOwnerGranted(domain, user))) ||\n (superUserGranted && (await process.superUserGranted(domain, user)))\n )\n }\n\n if (\n (domainOwnerGranted && (await process.domainOwnerGranted(domain, user))) ||\n (superUserGranted && (await process.superUserGranted(domain, user)))\n ) {\n return true\n }\n\n if ((prohibitedPrivileges || []).find(pp => pp.category == category && pp.privilege == privilege)) {\n return false\n }\n\n return await User.hasPrivilege(privilege, category, domain, user)\n }\n}\n"]}
1
+ {"version":3,"file":"check-permission.js","sourceRoot":"","sources":["../../server/utils/check-permission.ts"],"names":[],"mappings":";;AAIA,0CA+CC;AAjDD,qDAA8C;AAEvC,KAAK,UAAU,eAAe,CACnC,eAAgC,EAChC,IAAU,EACV,MAAc,EACd,QAAkB,EAClB,oBAAgE;IAEhE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,eAAe,CAAA;IAEnG,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YAC1B,8CAA8C;YAC9C,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,QAAQ,IAAI,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,CAAC;gBAClG,OAAO,KAAK,CAAA;YACd,CAAC;YAED,OAAO,MAAM,cAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACnE,CAAC;QAED,wEAAwE;QACxE,OAAO,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,8DAA8D;YAC9D,OAAO,CACL,CAAC,kBAAkB,IAAI,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACxE,CAAC,gBAAgB,IAAI,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CACrE,CAAA;QACH,CAAC;QAED,IACE,CAAC,kBAAkB,IAAI,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACxE,CAAC,gBAAgB,IAAI,CAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EACpE,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,QAAQ,IAAI,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,CAAC;YAClG,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,MAAM,cAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACnE,CAAC;AACH,CAAC","sourcesContent":["import { Domain } from '@things-factory/shell'\nimport { PrivilegeObject } from '../service/privilege/privilege.js'\nimport { User } from '../service/user/user.js'\n\nexport async function checkPermission(\n privilegeObject: PrivilegeObject,\n user: User,\n domain: Domain,\n unsafeIP?: boolean,\n prohibitedPrivileges?: { category: string; privilege: string }[]\n): Promise<boolean> {\n if (!privilegeObject) {\n return true\n }\n\n const { owner: domainOwnerGranted, super: superUserGranted, category, privilege } = privilegeObject\n\n if (unsafeIP) {\n if (privilege && category) {\n // unsafeIP 상황에서는 ownership granted는 적용되지 않는다.\n if ((prohibitedPrivileges || []).find(pp => pp.category == category && pp.privilege == privilege)) {\n return false\n }\n\n return await User.hasPrivilege(privilege, category, domain, user)\n }\n\n // privilege, category가 설정되지 않은 경우에는 ownership granted가 설정되었다면 허가하지 않는다.\n return !domainOwnerGranted && !superUserGranted\n } else {\n if (!privilege || !category) {\n // privilege, category가 설정되지 않은 경우에는 ownership granted만을 적용한다.\n return (\n (domainOwnerGranted && (await process.domainOwnerGranted(domain, user))) ||\n (superUserGranted && (await process.superUserGranted(domain, user)))\n )\n }\n\n if (\n (domainOwnerGranted && (await process.domainOwnerGranted(domain, user))) ||\n (superUserGranted && (await process.superUserGranted(domain, user)))\n ) {\n return true\n }\n\n if ((prohibitedPrivileges || []).find(pp => pp.category == category && pp.privilege == privilege)) {\n return false\n }\n\n return await User.hasPrivilege(privilege, category, domain, user)\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Domain } from '@things-factory/shell';
2
- import { User } from '../service/user/user';
2
+ import { User } from '../service/user/user.js';
3
3
  /**
4
4
  * @description Based on domain and user information,
5
5
  * Find out whether the user belongs domain or user has partnership with domain
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkUserBelongsDomain = checkUserBelongsDomain;
4
4
  const shell_1 = require("@things-factory/shell");
5
- const user_1 = require("../service/user/user");
5
+ const user_js_1 = require("../service/user/user.js");
6
6
  /**
7
7
  * @description Based on domain and user information,
8
8
  * Find out whether the user belongs domain or user has partnership with domain
@@ -13,7 +13,7 @@ const user_1 = require("../service/user/user");
13
13
  async function checkUserBelongsDomain(domain, user) {
14
14
  var _a;
15
15
  if (!((_a = user.domains) === null || _a === void 0 ? void 0 : _a.length)) {
16
- user = await (0, shell_1.getRepository)(user_1.User).findOne({ where: { id: user.id }, relations: ['domains'] });
16
+ user = await (0, shell_1.getRepository)(user_js_1.User).findOne({ where: { id: user.id }, relations: ['domains'] });
17
17
  }
18
18
  const { domains: userDomains } = user;
19
19
  return Boolean(userDomains.find((userDomain) => userDomain.id === domain.id));
@@ -1 +1 @@
1
- {"version":3,"file":"check-user-belongs-domain.js","sourceRoot":"","sources":["../../server/utils/check-user-belongs-domain.ts"],"names":[],"mappings":";;AAWA,wDAOC;AAlBD,iDAA6D;AAE7D,+CAA2C;AAE3C;;;;;;GAMG;AACI,KAAK,UAAU,sBAAsB,CAAC,MAAc,EAAE,IAAU;;IACrE,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;QAC1B,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAS,IAAI,CAAA;IAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AACvF,CAAC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user'\n\n/**\n * @description Based on domain and user information,\n * Find out whether the user belongs domain or user has partnership with domain\n *\n * @param domain\n * @param user\n */\nexport async function checkUserBelongsDomain(domain: Domain, user: User): Promise<Boolean> {\n if (!user.domains?.length) {\n user = await getRepository(User).findOne({ where: { id: user.id }, relations: ['domains'] })\n }\n\n const { domains: userDomains }: User = user\n return Boolean(userDomains.find((userDomain: Domain) => userDomain.id === domain.id))\n}\n"]}
1
+ {"version":3,"file":"check-user-belongs-domain.js","sourceRoot":"","sources":["../../server/utils/check-user-belongs-domain.ts"],"names":[],"mappings":";;AAWA,wDAOC;AAlBD,iDAA6D;AAE7D,qDAA8C;AAE9C;;;;;;GAMG;AACI,KAAK,UAAU,sBAAsB,CAAC,MAAc,EAAE,IAAU;;IACrE,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;QAC1B,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,cAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAS,IAAI,CAAA;IAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AACvF,CAAC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user.js'\n\n/**\n * @description Based on domain and user information,\n * Find out whether the user belongs domain or user has partnership with domain\n *\n * @param domain\n * @param user\n */\nexport async function checkUserBelongsDomain(domain: Domain, user: User): Promise<Boolean> {\n if (!user.domains?.length) {\n user = await getRepository(User).findOne({ where: { id: user.id }, relations: ['domains'] })\n }\n\n const { domains: userDomains }: User = user\n return Boolean(userDomains.find((userDomain: Domain) => userDomain.id === domain.id))\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Domain } from '@things-factory/shell';
2
- import { User } from '../service/user/user';
2
+ import { User } from '../service/user/user.js';
3
3
  /**
4
4
  * @description 사용자가 특정 도메인 또는 상위 도메인에서 특정 역할을 가지고 있는지 확인합니다.
5
5
  *
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkUserHasRole = checkUserHasRole;
4
4
  const shell_1 = require("@things-factory/shell");
5
- const user_1 = require("../service/user/user");
5
+ const user_js_1 = require("../service/user/user.js");
6
6
  /**
7
7
  * @description 사용자가 특정 도메인 또는 상위 도메인에서 특정 역할을 가지고 있는지 확인합니다.
8
8
  *
@@ -16,7 +16,7 @@ async function checkUserHasRole(roleId, domain, user) {
16
16
  if (!roleId) {
17
17
  return true;
18
18
  }
19
- const me = await (0, shell_1.getRepository)(user_1.User).findOne({
19
+ const me = await (0, shell_1.getRepository)(user_js_1.User).findOne({
20
20
  where: { id: user.id },
21
21
  relations: ['roles']
22
22
  });
@@ -1 +1 @@
1
- {"version":3,"file":"check-user-has-role.js","sourceRoot":"","sources":["../../server/utils/check-user-has-role.ts"],"names":[],"mappings":";;AAcA,4CAcC;AA5BD,iDAA6D;AAE7D,+CAA2C;AAG3C;;;;;;;;GAQG;AACI,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,IAAU;IAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;QACtB,SAAS,EAAE,CAAC,OAAO,CAAC;KACrB,CAAC,CAAA;IAEF,OAAO,EAAE,CAAC,KAAK;SACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;SACrG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;SACpB,QAAQ,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user'\nimport { Role } from 'service'\n\n/**\n * @description 사용자가 특정 도메인 또는 상위 도메인에서 특정 역할을 가지고 있는지 확인합니다.\n *\n * @param roleId 확인할 역할의 ID\n * @param domain 역할을 확인할 도메인\n * @param user 역할을 확인할 사용자\n *\n * @returns 사용자가 도메인 또는 상위 도메인에서 역할을 가지고 있는지 여부를 나타내는 boolean을 반환하는 Promise\n */\nexport async function checkUserHasRole(roleId: string, domain: Domain, user: User): Promise<Boolean> {\n if (!roleId) {\n return true\n }\n\n const me = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n return me.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n .includes(roleId)\n}\n"]}
1
+ {"version":3,"file":"check-user-has-role.js","sourceRoot":"","sources":["../../server/utils/check-user-has-role.ts"],"names":[],"mappings":";;AAcA,4CAcC;AA5BD,iDAA6D;AAE7D,qDAA8C;AAG9C;;;;;;;;GAQG;AACI,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,IAAU;IAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAa,EAAC,cAAI,CAAC,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;QACtB,SAAS,EAAE,CAAC,OAAO,CAAC;KACrB,CAAC,CAAA;IAEF,OAAO,EAAE,CAAC,KAAK;SACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;SACrG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;SACpB,QAAQ,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC","sourcesContent":["import { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user.js'\nimport { Role } from '../service/role/role.js'\n\n/**\n * @description 사용자가 특정 도메인 또는 상위 도메인에서 특정 역할을 가지고 있는지 확인합니다.\n *\n * @param roleId 확인할 역할의 ID\n * @param domain 역할을 확인할 도메인\n * @param user 역할을 확인할 사용자\n *\n * @returns 사용자가 도메인 또는 상위 도메인에서 역할을 가지고 있는지 여부를 나타내는 boolean을 반환하는 Promise\n */\nexport async function checkUserHasRole(roleId: string, domain: Domain, user: User): Promise<Boolean> {\n if (!roleId) {\n return true\n }\n\n const me = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n return me.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n .includes(roleId)\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { EntityManager, SelectQueryBuilder } from 'typeorm';
2
2
  import { Domain } from '@things-factory/shell';
3
- import { User } from '../service/user/user';
3
+ import { User } from '../service/user/user.js';
4
4
  export declare function getDomainUsers(domain: Partial<Domain>, trxMgr?: EntityManager): Promise<User[]>;
5
5
  export declare function buildDomainUsersQueryBuilder(domainId: string, alias?: string, trxMgr?: EntityManager): SelectQueryBuilder<User>;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDomainUsers = getDomainUsers;
4
4
  exports.buildDomainUsersQueryBuilder = buildDomainUsersQueryBuilder;
5
5
  const shell_1 = require("@things-factory/shell");
6
- const user_1 = require("../service/user/user");
6
+ const user_js_1 = require("../service/user/user.js");
7
7
  async function getDomainUsers(domain, trxMgr) {
8
8
  const domainRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(shell_1.Domain)) || (0, shell_1.getRepository)(shell_1.Domain);
9
9
  if (!domain.id) {
@@ -16,7 +16,7 @@ async function getDomainUsers(domain, trxMgr) {
16
16
  return await qb.getMany();
17
17
  }
18
18
  function buildDomainUsersQueryBuilder(domainId, alias = 'USER', trxMgr) {
19
- const userRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(user_1.User)) || (0, shell_1.getRepository)(user_1.User);
19
+ const userRepo = (trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(user_js_1.User)) || (0, shell_1.getRepository)(user_js_1.User);
20
20
  const qb = userRepo.createQueryBuilder(alias);
21
21
  qb.select().andWhere(`${alias}.id IN ${qb
22
22
  .subQuery()
@@ -1 +1 @@
1
- {"version":3,"file":"get-domain-users.js","sourceRoot":"","sources":["../../server/utils/get-domain-users.ts"],"names":[],"mappings":";;AAMA,wCAYC;AAED,oEAiBC;AAnCD,iDAA6D;AAE7D,+CAA2C;AAEpC,KAAK,UAAU,cAAc,CAAC,MAAuB,EAAE,MAAsB;IAClF,MAAM,UAAU,GAAuB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,cAAM,CAAC,KAAI,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAA;IAE7F,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,WAAW,GAAW,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAClF,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,MAAM,EAAE,CAAC,CAAA;QAEzF,MAAM,GAAG,WAAW,CAAA;IACtB,CAAC;IAED,MAAM,EAAE,GAA6B,4BAA4B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5E,OAAO,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;AAC3B,CAAC;AAED,SAAgB,4BAA4B,CAC1C,QAAgB,EAChB,QAAgB,MAAM,EACtB,MAAsB;IAEtB,MAAM,QAAQ,GAAqB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,WAAI,CAAC,KAAI,IAAA,qBAAa,EAAC,WAAI,CAAC,CAAA;IACrF,MAAM,EAAE,GAA6B,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACvE,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAClB,GAAG,KAAK,UAAU,EAAE;SACjB,QAAQ,EAAE;SACV,MAAM,CAAC,wBAAwB,CAAC;SAChC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC;SACtC,KAAK,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,CAAC;SAC3D,QAAQ,EAAE,EAAE,CAChB,CAAA;IAED,OAAO,EAAE,CAAA;AACX,CAAC","sourcesContent":["import { EntityManager, Repository, SelectQueryBuilder } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user'\n\nexport async function getDomainUsers(domain: Partial<Domain>, trxMgr?: EntityManager): Promise<User[]> {\n const domainRepo: Repository<Domain> = trxMgr?.getRepository(Domain) || getRepository(Domain)\n\n if (!domain.id) {\n const foundDomain: Domain = await domainRepo.findOne({ where: { id: domain.id } })\n if (!foundDomain) throw new Error(`Failed to find domain by passed condition, ${domain}`)\n\n domain = foundDomain\n }\n\n const qb: SelectQueryBuilder<User> = buildDomainUsersQueryBuilder(domain.id)\n return await qb.getMany()\n}\n\nexport function buildDomainUsersQueryBuilder(\n domainId: string,\n alias: string = 'USER',\n trxMgr?: EntityManager\n): SelectQueryBuilder<User> {\n const userRepo: Repository<User> = trxMgr?.getRepository(User) || getRepository(User)\n const qb: SelectQueryBuilder<User> = userRepo.createQueryBuilder(alias)\n qb.select().andWhere(\n `${alias}.id IN ${qb\n .subQuery()\n .select('USERS_DOMAINS.users_id')\n .from('users_domains', 'USERS_DOMAINS')\n .where('USERS_DOMAINS.domains_id = :domainId', { domainId })\n .getQuery()}`\n )\n\n return qb\n}\n"]}
1
+ {"version":3,"file":"get-domain-users.js","sourceRoot":"","sources":["../../server/utils/get-domain-users.ts"],"names":[],"mappings":";;AAMA,wCAYC;AAED,oEAiBC;AAnCD,iDAA6D;AAE7D,qDAA8C;AAEvC,KAAK,UAAU,cAAc,CAAC,MAAuB,EAAE,MAAsB;IAClF,MAAM,UAAU,GAAuB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,cAAM,CAAC,KAAI,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAA;IAE7F,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,WAAW,GAAW,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAClF,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,MAAM,EAAE,CAAC,CAAA;QAEzF,MAAM,GAAG,WAAW,CAAA;IACtB,CAAC;IAED,MAAM,EAAE,GAA6B,4BAA4B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5E,OAAO,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;AAC3B,CAAC;AAED,SAAgB,4BAA4B,CAC1C,QAAgB,EAChB,QAAgB,MAAM,EACtB,MAAsB;IAEtB,MAAM,QAAQ,GAAqB,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,cAAI,CAAC,KAAI,IAAA,qBAAa,EAAC,cAAI,CAAC,CAAA;IACrF,MAAM,EAAE,GAA6B,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACvE,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,CAClB,GAAG,KAAK,UAAU,EAAE;SACjB,QAAQ,EAAE;SACV,MAAM,CAAC,wBAAwB,CAAC;SAChC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC;SACtC,KAAK,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,CAAC;SAC3D,QAAQ,EAAE,EAAE,CAChB,CAAA;IAED,OAAO,EAAE,CAAA;AACX,CAAC","sourcesContent":["import { EntityManager, Repository, SelectQueryBuilder } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user.js'\n\nexport async function getDomainUsers(domain: Partial<Domain>, trxMgr?: EntityManager): Promise<User[]> {\n const domainRepo: Repository<Domain> = trxMgr?.getRepository(Domain) || getRepository(Domain)\n\n if (!domain.id) {\n const foundDomain: Domain = await domainRepo.findOne({ where: { id: domain.id } })\n if (!foundDomain) throw new Error(`Failed to find domain by passed condition, ${domain}`)\n\n domain = foundDomain\n }\n\n const qb: SelectQueryBuilder<User> = buildDomainUsersQueryBuilder(domain.id)\n return await qb.getMany()\n}\n\nexport function buildDomainUsersQueryBuilder(\n domainId: string,\n alias: string = 'USER',\n trxMgr?: EntityManager\n): SelectQueryBuilder<User> {\n const userRepo: Repository<User> = trxMgr?.getRepository(User) || getRepository(User)\n const qb: SelectQueryBuilder<User> = userRepo.createQueryBuilder(alias)\n qb.select().andWhere(\n `${alias}.id IN ${qb\n .subQuery()\n .select('USERS_DOMAINS.users_id')\n .from('users_domains', 'USERS_DOMAINS')\n .where('USERS_DOMAINS.domains_id = :domainId', { domainId })\n .getQuery()}`\n )\n\n return qb\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Domain } from '@things-factory/shell';
2
- import { User } from '../service/user/user';
2
+ import { User } from '../service/user/user.js';
3
3
  export declare function getUserDomains(user: User): Promise<Partial<Domain>[]>;
4
4
  export declare function getRoleBasedDomains(user: User): Promise<Partial<Domain>[]>;
5
5
  export declare function getDomainsWithPrivilege(user: User, privilege: string, category: string): Promise<Partial<Domain>[]>;
@@ -5,7 +5,7 @@ exports.getRoleBasedDomains = getRoleBasedDomains;
5
5
  exports.getDomainsWithPrivilege = getDomainsWithPrivilege;
6
6
  exports.getDomainsAsOwner = getDomainsAsOwner;
7
7
  const shell_1 = require("@things-factory/shell");
8
- const user_1 = require("../service/user/user");
8
+ const user_js_1 = require("../service/user/user.js");
9
9
  async function getUserDomains(user) {
10
10
  return (await (0, shell_1.getRepository)(shell_1.Domain)
11
11
  .createQueryBuilder('DOMAIN')
@@ -14,7 +14,7 @@ async function getUserDomains(user) {
14
14
  .subQuery()
15
15
  .distinct(true)
16
16
  .select('DOMAIN.id')
17
- .from(user_1.User, 'USER')
17
+ .from(user_js_1.User, 'USER')
18
18
  .leftJoin('USER.roles', 'ROLE')
19
19
  .leftJoin('ROLE.domain', 'DOMAIN')
20
20
  .where('USER.id = :userId', { userId: user.id })
@@ -44,7 +44,7 @@ async function getRoleBasedDomains(user) {
44
44
  .subQuery()
45
45
  .distinct(true)
46
46
  .select('DOMAIN.id')
47
- .from(user_1.User, 'USER')
47
+ .from(user_js_1.User, 'USER')
48
48
  .leftJoin('USER.roles', 'ROLE')
49
49
  .leftJoin('ROLE.domain', 'DOMAIN')
50
50
  .where('USER.id = :userId', { userId: user.id })
@@ -64,7 +64,7 @@ async function getDomainsWithPrivilege(user, privilege, category) {
64
64
  .subQuery()
65
65
  .distinct(true)
66
66
  .select('DOMAIN.id')
67
- .from(user_1.User, 'USER')
67
+ .from(user_js_1.User, 'USER')
68
68
  .leftJoin('USER.roles', 'ROLE')
69
69
  .leftJoin('ROLE.domain', 'DOMAIN')
70
70
  .leftJoin('ROLE.privileges', 'PRIVILEGE')
@@ -1 +1 @@
1
- {"version":3,"file":"get-user-domains.js","sourceRoot":"","sources":["../../server/utils/get-user-domains.ts"],"names":[],"mappings":";;AAMA,wCA+BC;AAED,kDAqBC;AAED,0DAsCC;AAED,8CASC;AA7GD,iDAA6D;AAE7D,+CAA2C;AAEpC,KAAK,UAAU,cAAc,CAAC,IAAU;IAC7C,OAAO,CACL,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC;SACxB,kBAAkB,CAAC,QAAQ,CAAC;SAC5B,KAAK,CAAC,EAAE,CAAC,EAAE;QACV,MAAM,QAAQ,GAAG,EAAE;aAChB,QAAQ,EAAE;aACV,QAAQ,CAAC,IAAI,CAAC;aACd,MAAM,CAAC,WAAW,CAAC;aACnB,IAAI,CAAC,WAAI,EAAE,MAAM,CAAC;aAClB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;aAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;aACjC,KAAK,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAC/C,QAAQ,EAAE,CAAA;QACb,OAAO,eAAe,GAAG,QAAQ,CAAA;IACnC,CAAC,CAAC;SACD,OAAO,CAAC,EAAE,CAAC,EAAE;QACZ,MAAM,QAAQ,GAAG,EAAE;aAChB,QAAQ,EAAE;aACV,MAAM,CAAC,WAAW,CAAC;aACnB,IAAI,CAAC,cAAM,EAAE,QAAQ,CAAC;aACtB,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAClD,QAAQ,EAAE,CAAA;QACb,OAAO,eAAe,GAAG,QAAQ,CAAA;IACnC,CAAC,CAAC;SACD,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;SAC7B,OAAO,EAAE,CACb,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QACnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;IAC7E,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,IAAU;IAClD,OAAO,CACL,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC;SACxB,kBAAkB,CAAC,QAAQ,CAAC;SAC5B,KAAK,CAAC,EAAE,CAAC,EAAE;QACV,MAAM,QAAQ,GAAG,EAAE;aAChB,QAAQ,EAAE;aACV,QAAQ,CAAC,IAAI,CAAC;aACd,MAAM,CAAC,WAAW,CAAC;aACnB,IAAI,CAAC,WAAI,EAAE,MAAM,CAAC;aAClB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;aAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;aACjC,KAAK,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAC/C,QAAQ,EAAE,CAAA;QACb,OAAO,eAAe,GAAG,QAAQ,CAAA;IACnC,CAAC,CAAC;SACD,OAAO,EAAE,CACb,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QACnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;IAC7E,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,IAAU,EACV,SAAiB,EACjB,QAAgB;IAEhB,OAAO,CACL,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC;SACxB,kBAAkB,CAAC,QAAQ,CAAC;SAC5B,KAAK,CAAC,EAAE,CAAC,EAAE;QACV,MAAM,QAAQ,GAAG,EAAE;aAChB,QAAQ,EAAE;aACV,QAAQ,CAAC,IAAI,CAAC;aACd,MAAM,CAAC,WAAW,CAAC;aACnB,IAAI,CAAC,WAAI,EAAE,MAAM,CAAC;aAClB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;aAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;aACjC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC;aACxC,KAAK,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAC/C,QAAQ,CAAC,6BAA6B,EAAE,EAAE,SAAS,EAAE,CAAC;aACtD,QAAQ,CAAC,gCAAgC,EAAE,EAAE,QAAQ,EAAE,CAAC;aACxD,QAAQ,EAAE,CAAA;QACb,OAAO,eAAe,GAAG,QAAQ,CAAA;IACnC,CAAC,CAAC;SACD,OAAO,CAAC,EAAE,CAAC,EAAE;QACZ,MAAM,QAAQ,GAAG,EAAE;aAChB,QAAQ,EAAE;aACV,MAAM,CAAC,WAAW,CAAC;aACnB,IAAI,CAAC,cAAM,EAAE,QAAQ,CAAC;aACtB,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aAClD,QAAQ,EAAE,CAAA;QACb,OAAO,eAAe,GAAG,QAAQ,CAAA;IACnC,CAAC,CAAC;SACD,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;SAC7B,OAAO,EAAE,CACb,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QACnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;IAC7E,CAAC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,IAAU;IAChD,OAAO,CACL,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,IAAI,CAAC;QAC/B,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;KAC1B,CAAC,CACH,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QACnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;IAC7E,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { In } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user'\n\nexport async function getUserDomains(user: User): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain)\n .createQueryBuilder('DOMAIN')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .distinct(true)\n .select('DOMAIN.id')\n .from(User, 'USER')\n .leftJoin('USER.roles', 'ROLE')\n .leftJoin('ROLE.domain', 'DOMAIN')\n .where('USER.id = :userId', { userId: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('DOMAIN.id')\n .from(Domain, 'DOMAIN')\n .where('DOMAIN.owner = :owner', { owner: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orderBy('DOMAIN.name', 'ASC')\n .getMany()\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n\nexport async function getRoleBasedDomains(user: User): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain)\n .createQueryBuilder('DOMAIN')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .distinct(true)\n .select('DOMAIN.id')\n .from(User, 'USER')\n .leftJoin('USER.roles', 'ROLE')\n .leftJoin('ROLE.domain', 'DOMAIN')\n .where('USER.id = :userId', { userId: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .getMany()\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n\nexport async function getDomainsWithPrivilege(\n user: User,\n privilege: string,\n category: string\n): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain)\n .createQueryBuilder('DOMAIN')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .distinct(true)\n .select('DOMAIN.id')\n .from(User, 'USER')\n .leftJoin('USER.roles', 'ROLE')\n .leftJoin('ROLE.domain', 'DOMAIN')\n .leftJoin('ROLE.privileges', 'PRIVILEGE')\n .where('USER.id = :userId', { userId: user.id })\n .andWhere('PRIVILEGE.name = :privilege', { privilege })\n .andWhere('PRIVILEGE.category = :category', { category })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('DOMAIN.id')\n .from(Domain, 'DOMAIN')\n .where('DOMAIN.owner = :owner', { owner: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orderBy('DOMAIN.name', 'ASC')\n .getMany()\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n\nexport async function getDomainsAsOwner(user: User): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain).find({\n where: { owner: user.id }\n })\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n"]}
1
+ {"version":3,"file":"get-user-domains.js","sourceRoot":"","sources":["../../server/utils/get-user-domains.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\n\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { User } from '../service/user/user.js'\n\nexport async function getUserDomains(user: User): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain)\n .createQueryBuilder('DOMAIN')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .distinct(true)\n .select('DOMAIN.id')\n .from(User, 'USER')\n .leftJoin('USER.roles', 'ROLE')\n .leftJoin('ROLE.domain', 'DOMAIN')\n .where('USER.id = :userId', { userId: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('DOMAIN.id')\n .from(Domain, 'DOMAIN')\n .where('DOMAIN.owner = :owner', { owner: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orderBy('DOMAIN.name', 'ASC')\n .getMany()\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n\nexport async function getRoleBasedDomains(user: User): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain)\n .createQueryBuilder('DOMAIN')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .distinct(true)\n .select('DOMAIN.id')\n .from(User, 'USER')\n .leftJoin('USER.roles', 'ROLE')\n .leftJoin('ROLE.domain', 'DOMAIN')\n .where('USER.id = :userId', { userId: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .getMany()\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n\nexport async function getDomainsWithPrivilege(\n user: User,\n privilege: string,\n category: string\n): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain)\n .createQueryBuilder('DOMAIN')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .distinct(true)\n .select('DOMAIN.id')\n .from(User, 'USER')\n .leftJoin('USER.roles', 'ROLE')\n .leftJoin('ROLE.domain', 'DOMAIN')\n .leftJoin('ROLE.privileges', 'PRIVILEGE')\n .where('USER.id = :userId', { userId: user.id })\n .andWhere('PRIVILEGE.name = :privilege', { privilege })\n .andWhere('PRIVILEGE.category = :category', { category })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('DOMAIN.id')\n .from(Domain, 'DOMAIN')\n .where('DOMAIN.owner = :owner', { owner: user.id })\n .getQuery()\n return 'DOMAIN.id IN ' + subQuery\n })\n .orderBy('DOMAIN.name', 'ASC')\n .getMany()\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n\nexport async function getDomainsAsOwner(user: User): Promise<Partial<Domain>[]> {\n return (\n await getRepository(Domain).find({\n where: { owner: user.id }\n })\n ).map(domain => {\n const { id, name, description, subdomain, extType, brandName, brandImage } = domain\n return { id, name, description, subdomain, extType, brandName, brandImage }\n })\n}\n"]}
@@ -0,0 +1,49 @@
1
+ # reCAPTCHA
2
+
3
+ reCAPTCHAは、ユーザーが人間かボットかを確認するために使用されます。
4
+
5
+ Google Cloud Consoleでサービスアカウントを作成できます。
6
+ サービスアカウントを作成するには、「IAM & Admin」セクションに移動し、
7
+ 「Service Accounts」を選択して「Create Service Account」をクリックします。
8
+ 必要な資格情報を生成するための指示に従ってください。
9
+
10
+ ## サービスアカウント情報
11
+
12
+ - **type**: サービスアカウントのタイプ
13
+ - **project_id**: プロジェクトID
14
+ - **private_key_id**: プライベートキーID
15
+ - **private_key**: プライベートキー
16
+ - **client_email**: クライアントメール
17
+ - **client_id**: クライアントID
18
+ - **auth_uri**: 認証URI
19
+ - **token_uri**: トークンURI
20
+ - **auth_provider_x509_cert_url**: 認証プロバイダーx509証明書URL
21
+ - **client_x509_cert_url**: クライアントx509証明書URL
22
+ - **universe_domain**: ユニバースドメイン
23
+
24
+ ## サイトキー
25
+
26
+ - **siteKey**: reCAPTCHAサイトキー
27
+
28
+ ## 設定例
29
+
30
+ ```javascript
31
+ module.exports = {
32
+ recaptcha: {
33
+ serviceAccount: {
34
+ type: 'service_account',
35
+ project_id: '--',
36
+ private_key_id: '-----',
37
+ private_key: '-----BEGIN PRIVATE KEY-----\nXXXX==\n-----END PRIVATE KEY-----\n',
38
+ client_email: 'abc@xyz.com',
39
+ client_id: '----',
40
+ auth_uri: 'https://accounts.google.com/o/oauth2/auth',
41
+ token_uri: 'https://oauth2.googleapis.com/token',
42
+ auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',
43
+ client_x509_cert_url: 'https://www.googleapis.com/robot/v1/metadata/x509/abc%40xyz.com',
44
+ universe_domain: 'googleapis.com'
45
+ },
46
+ siteKey: '6Ld1Dr4qAAAAAMJBYZheIOw8wQopz5NwraHAbCzt'
47
+ }
48
+ }
49
+ ```
@@ -0,0 +1,49 @@
1
+ # reCAPTCHA 설정 도움말
2
+
3
+ reCAPTCHA는 사용자가 사람인지 봇인지 확인하는 데 사용됩니다.
4
+
5
+ 서비스 계정은 Google Cloud Console에서 생성할 수 있습니다.
6
+ 서비스 계정을 생성하려면 "IAM 및 관리자" 섹션으로 이동하여
7
+ "서비스 계정"을 선택한 다음 "서비스 계정 만들기"를 클릭합니다.
8
+ 필요한 자격 증명을 생성하는 지침을 따르세요.
9
+
10
+ ## 서비스 계정 정보
11
+
12
+ - **type**: 서비스 계정 유형
13
+ - **project_id**: 프로젝트 ID
14
+ - **private_key_id**: 개인 키 ID
15
+ - **private_key**: 개인 키
16
+ - **client_email**: 클라이언트 이메일
17
+ - **client_id**: 클라이언트 ID
18
+ - **auth_uri**: 인증 URI
19
+ - **token_uri**: 토큰 URI
20
+ - **auth_provider_x509_cert_url**: 인증 제공자 x509 인증서 URL
21
+ - **client_x509_cert_url**: 클라이언트 x509 인증서 URL
22
+ - **universe_domain**: 유니버스 도메인
23
+
24
+ ## 사이트 키
25
+
26
+ - **siteKey**: reCAPTCHA 사이트 키
27
+
28
+ ## 설정 예시
29
+
30
+ ```javascript
31
+ module.exports = {
32
+ recaptcha: {
33
+ serviceAccount: {
34
+ type: 'service_account',
35
+ project_id: '--',
36
+ private_key_id: '-----',
37
+ private_key: '-----BEGIN PRIVATE KEY-----\nXXXX==\n-----END PRIVATE KEY-----\n',
38
+ client_email: 'abc@xyz.com',
39
+ client_id: '----',
40
+ auth_uri: 'https://accounts.google.com/o/oauth2/auth',
41
+ token_uri: 'https://oauth2.googleapis.com/token',
42
+ auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',
43
+ client_x509_cert_url: 'https://www.googleapis.com/robot/v1/metadata/x509/abc%40xyz.com',
44
+ universe_domain: 'googleapis.com'
45
+ },
46
+ siteKey: '6Ld1Dr4qAAAAAMJBYZheIOw8wQopz5NwraHAbCzt'
47
+ }
48
+ }
49
+ ```
@@ -0,0 +1,49 @@
1
+ # reCAPTCHA
2
+
3
+ reCAPTCHA is used to verify whether a user is human or a bot.
4
+
5
+ A service account can be created in the Google Cloud Console.
6
+ To create a service account, navigate to the "IAM & Admin" section,
7
+ select "Service Accounts," and then click "Create Service Account."
8
+ Follow the instructions to generate the necessary credentials.
9
+
10
+ ## Service Account Information
11
+
12
+ - **type**: Service account type
13
+ - **project_id**: Project ID
14
+ - **private_key_id**: Private key ID
15
+ - **private_key**: Private key
16
+ - **client_email**: Client email
17
+ - **client_id**: Client ID
18
+ - **auth_uri**: Auth URI
19
+ - **token_uri**: Token URI
20
+ - **auth_provider_x509_cert_url**: Auth provider x509 cert URL
21
+ - **client_x509_cert_url**: Client x509 cert URL
22
+ - **universe_domain**: Universe domain
23
+
24
+ ## Site Key
25
+
26
+ - **siteKey**: reCAPTCHA site key
27
+
28
+ ## Configuration Example
29
+
30
+ ```javascript
31
+ module.exports = {
32
+ recaptcha: {
33
+ serviceAccount: {
34
+ type: 'service_account',
35
+ project_id: '--',
36
+ private_key_id: '-----',
37
+ private_key: '-----BEGIN PRIVATE KEY-----\nXXXX==\n-----END PRIVATE KEY-----\n',
38
+ client_email: 'abc@xyz.com',
39
+ client_id: '----',
40
+ auth_uri: 'https://accounts.google.com/o/oauth2/auth',
41
+ token_uri: 'https://oauth2.googleapis.com/token',
42
+ auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',
43
+ client_x509_cert_url: 'https://www.googleapis.com/robot/v1/metadata/x509/abc%40xyz.com',
44
+ universe_domain: 'googleapis.com'
45
+ },
46
+ siteKey: '6Ld1Dr4qAAAAAMJBYZheIOw8wQopz5NwraHAbCzt'
47
+ }
48
+ }
49
+ ```
@@ -0,0 +1,49 @@
1
+ # reCAPTCHA
2
+
3
+ reCAPTCHA digunakan untuk mengesahkan sama ada pengguna adalah manusia atau bot.
4
+
5
+ Akaun perkhidmatan boleh dibuat di Google Cloud Console.
6
+ Untuk membuat akaun perkhidmatan, navigasi ke bahagian "IAM & Admin",
7
+ pilih "Service Accounts," dan kemudian klik "Create Service Account."
8
+ Ikuti arahan untuk menjana kelayakan yang diperlukan.
9
+
10
+ ## Maklumat Akaun Perkhidmatan
11
+
12
+ - **type**: Jenis akaun perkhidmatan
13
+ - **project_id**: ID Projek
14
+ - **private_key_id**: ID kunci peribadi
15
+ - **private_key**: Kunci peribadi
16
+ - **client_email**: E-mel pelanggan
17
+ - **client_id**: ID pelanggan
18
+ - **auth_uri**: URI pengesahan
19
+ - **token_uri**: URI token
20
+ - **auth_provider_x509_cert_url**: URL sijil x509 penyedia pengesahan
21
+ - **client_x509_cert_url**: URL sijil x509 pelanggan
22
+ - **universe_domain**: Domain alam semesta
23
+
24
+ ## Kunci Laman
25
+
26
+ - **siteKey**: Kunci laman reCAPTCHA
27
+
28
+ ## Contoh Konfigurasi
29
+
30
+ ```javascript
31
+ module.exports = {
32
+ recaptcha: {
33
+ serviceAccount: {
34
+ type: 'service_account',
35
+ project_id: '--',
36
+ private_key_id: '-----',
37
+ private_key: '-----BEGIN PRIVATE KEY-----\nXXXX==\n-----END PRIVATE KEY-----\n',
38
+ client_email: 'abc@xyz.com',
39
+ client_id: '----',
40
+ auth_uri: 'https://accounts.google.com/o/oauth2/auth',
41
+ token_uri: 'https://oauth2.googleapis.com/token',
42
+ auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',
43
+ client_x509_cert_url: 'https://www.googleapis.com/robot/v1/metadata/x509/abc%40xyz.com',
44
+ universe_domain: 'googleapis.com'
45
+ },
46
+ siteKey: '6Ld1Dr4qAAAAAMJBYZheIOw8wQopz5NwraHAbCzt'
47
+ }
48
+ }
49
+ ```
@@ -0,0 +1,49 @@
1
+ # reCAPTCHA
2
+
3
+ reCAPTCHA 用于验证用户是人类还是机器人。
4
+
5
+ 可以在 Google Cloud Console 中创建服务帐户。
6
+ 要创建服务帐户,请导航到“IAM 和管理”部分,
7
+ 选择“服务帐户”,然后点击“创建服务帐户”。
8
+ 按照说明生成必要的凭据。
9
+
10
+ ## 服务帐户信息
11
+
12
+ - **type**: 服务帐户类型
13
+ - **project_id**: 项目 ID
14
+ - **private_key_id**: 私钥 ID
15
+ - **private_key**: 私钥
16
+ - **client_email**: 客户端电子邮件
17
+ - **client_id**: 客户端 ID
18
+ - **auth_uri**: 认证 URI
19
+ - **token_uri**: 令牌 URI
20
+ - **auth_provider_x509_cert_url**: 认证提供者 x509 证书 URL
21
+ - **client_x509_cert_url**: 客户端 x509 证书 URL
22
+ - **universe_domain**: 宇宙域
23
+
24
+ ## 网站密钥
25
+
26
+ - **siteKey**: reCAPTCHA 网站密钥
27
+
28
+ ## 配置示例
29
+
30
+ ```javascript
31
+ module.exports = {
32
+ recaptcha: {
33
+ serviceAccount: {
34
+ type: 'service_account',
35
+ project_id: '--',
36
+ private_key_id: '-----',
37
+ private_key: '-----BEGIN PRIVATE KEY-----\nXXXX==\n-----END PRIVATE KEY-----\n',
38
+ client_email: 'abc@xyz.com',
39
+ client_id: '----',
40
+ auth_uri: 'https://accounts.google.com/o/oauth2/auth',
41
+ token_uri: 'https://oauth2.googleapis.com/token',
42
+ auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',
43
+ client_x509_cert_url: 'https://www.googleapis.com/robot/v1/metadata/x509/abc%40xyz.com',
44
+ universe_domain: 'googleapis.com'
45
+ },
46
+ siteKey: '6Ld1Dr4qAAAAAMJBYZheIOw8wQopz5NwraHAbCzt'
47
+ }
48
+ }
49
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/auth-base",
3
- "version": "8.0.5",
3
+ "version": "9.0.0-beta.12",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -30,13 +30,14 @@
30
30
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create ./server/migrations/migration"
31
31
  },
32
32
  "dependencies": {
33
- "@simplewebauthn/browser": "^10.0.0",
34
- "@simplewebauthn/server": "^10.0.0",
35
- "@things-factory/email-base": "^8.0.2",
36
- "@things-factory/env": "^8.0.2",
37
- "@things-factory/shell": "^8.0.2",
38
- "@things-factory/utils": "^8.0.0",
39
- "@types/webappsec-credential-management": "^0.6.8",
33
+ "@google-cloud/recaptcha-enterprise": "^5.13.0",
34
+ "@simplewebauthn/browser": "^13.0.0",
35
+ "@simplewebauthn/server": "^13.0.0",
36
+ "@things-factory/email-base": "^9.0.0-beta.12",
37
+ "@things-factory/env": "^9.0.0-beta.5",
38
+ "@things-factory/shell": "^9.0.0-beta.12",
39
+ "@things-factory/utils": "^9.0.0-beta.0",
40
+ "@types/webappsec-credential-management": "^0.6.9",
40
41
  "jsonwebtoken": "^9.0.0",
41
42
  "koa-passport": "^6.0.0",
42
43
  "koa-session": "^6.4.0",
@@ -46,5 +47,5 @@
46
47
  "passport-jwt": "^4.0.0",
47
48
  "passport-local": "^1.0.0"
48
49
  },
49
- "gitHead": "9ab6fca18eeb58b9d2f3411661508a39d0ab6aee"
50
+ "gitHead": "5e9ade1c2d4b4c96b89396e36c3afa1caaf18ef0"
50
51
  }