@unchainedshop/api 2.3.6 → 2.4.1

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 (69) hide show
  1. package/lib/errors.d.ts +1 -0
  2. package/lib/errors.js +1 -0
  3. package/lib/errors.js.map +1 -1
  4. package/lib/resolvers/mutations/accounts/impersonate.js +3 -3
  5. package/lib/resolvers/mutations/accounts/impersonate.js.map +1 -1
  6. package/lib/resolvers/mutations/accounts/stopImpersonation.d.ts +6 -0
  7. package/lib/resolvers/mutations/accounts/stopImpersonation.js +21 -0
  8. package/lib/resolvers/mutations/accounts/stopImpersonation.js.map +1 -0
  9. package/lib/resolvers/mutations/index.d.ts +16 -37
  10. package/lib/resolvers/mutations/index.js +17 -15
  11. package/lib/resolvers/mutations/index.js.map +1 -1
  12. package/lib/resolvers/mutations/payment/removePaymentCredentials.js.map +1 -1
  13. package/lib/resolvers/queries/index.d.ts +2 -0
  14. package/lib/resolvers/queries/index.js +2 -0
  15. package/lib/resolvers/queries/index.js.map +1 -1
  16. package/lib/resolvers/queries/users/impersonator.d.ts +2 -0
  17. package/lib/resolvers/queries/users/impersonator.js +12 -0
  18. package/lib/resolvers/queries/users/impersonator.js.map +1 -0
  19. package/lib/resolvers/type/product/product-types.js +3 -0
  20. package/lib/resolvers/type/product/product-types.js.map +1 -1
  21. package/lib/resolvers/type/user-types.d.ts +7 -0
  22. package/lib/resolvers/type/user-types.js +16 -1
  23. package/lib/resolvers/type/user-types.js.map +1 -1
  24. package/lib/roles/all.js +16 -0
  25. package/lib/roles/all.js.map +1 -1
  26. package/lib/roles/index.js +16 -0
  27. package/lib/roles/index.js.map +1 -1
  28. package/lib/roles/loggedIn.js +3 -0
  29. package/lib/roles/loggedIn.js.map +1 -1
  30. package/lib/schema/mutation.js +5 -0
  31. package/lib/schema/mutation.js.map +1 -1
  32. package/lib/schema/query.js +4 -0
  33. package/lib/schema/query.js.map +1 -1
  34. package/lib/schema/types/product/bundle-product.js +1 -0
  35. package/lib/schema/types/product/bundle-product.js.map +1 -1
  36. package/lib/schema/types/product/configurable-product.js +1 -0
  37. package/lib/schema/types/product/configurable-product.js.map +1 -1
  38. package/lib/schema/types/product/plan-product.js +1 -0
  39. package/lib/schema/types/product/plan-product.js.map +1 -1
  40. package/lib/schema/types/product/product.js +1 -0
  41. package/lib/schema/types/product/product.js.map +1 -1
  42. package/lib/schema/types/product/simple-product.js +1 -0
  43. package/lib/schema/types/product/simple-product.js.map +1 -1
  44. package/lib/schema/types/product/tokenized-product.js +1 -0
  45. package/lib/schema/types/product/tokenized-product.js.map +1 -1
  46. package/lib/schema/types/user.js +2 -0
  47. package/lib/schema/types/user.js.map +1 -1
  48. package/package.json +14 -14
  49. package/src/errors.ts +5 -0
  50. package/src/resolvers/mutations/accounts/impersonate.ts +3 -3
  51. package/src/resolvers/mutations/accounts/stopImpersonation.ts +31 -0
  52. package/src/resolvers/mutations/index.ts +21 -15
  53. package/src/resolvers/mutations/payment/removePaymentCredentials.ts +2 -3
  54. package/src/resolvers/queries/index.ts +2 -0
  55. package/src/resolvers/queries/users/impersonator.ts +19 -0
  56. package/src/resolvers/type/product/product-types.ts +3 -0
  57. package/src/resolvers/type/user-types.ts +26 -0
  58. package/src/roles/all.ts +16 -0
  59. package/src/roles/index.ts +17 -0
  60. package/src/roles/loggedIn.ts +3 -0
  61. package/src/schema/mutation.ts +5 -0
  62. package/src/schema/query.ts +4 -0
  63. package/src/schema/types/product/bundle-product.ts +1 -0
  64. package/src/schema/types/product/configurable-product.ts +1 -0
  65. package/src/schema/types/product/plan-product.ts +1 -0
  66. package/src/schema/types/product/product.ts +1 -0
  67. package/src/schema/types/product/simple-product.ts +1 -0
  68. package/src/schema/types/product/tokenized-product.ts +1 -0
  69. package/src/schema/types/user.ts +2 -0
@@ -97,6 +97,22 @@ const actions = [
97
97
  'authTwoFactor',
98
98
  'manageTwoFactor',
99
99
  'impersonate',
100
+ 'stopImpersonation',
101
+ 'logout',
102
+ 'logoutAllSessions',
103
+ 'loginAsGuest',
104
+ 'loginWithPassword',
105
+ 'loginWithWebAuthn',
106
+ 'loginWithOAuth',
107
+ 'verifyEmail',
108
+ 'useWebAuthn',
109
+ 'pageView',
110
+ 'createUser',
111
+ 'forgotPassword',
112
+ 'resetPassword',
113
+ 'changePassword',
114
+ 'viewUserProductReviews',
115
+ 'heartbeat',
100
116
  ].reduce((oldValue, actionValue) => {
101
117
  const newValue = oldValue;
102
118
  newValue[actionValue] = actionValue;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/roles/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/roles/index.ts"],"names":[],"mappings":"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"}
@@ -147,6 +147,7 @@ export const loggedIn = (role, actions) => {
147
147
  role.allow(actions.viewUserQuotations, isMyself);
148
148
  role.allow(actions.viewUserEnrollments, isMyself);
149
149
  role.allow(actions.viewUserPrivateInfos, isMyself);
150
+ role.allow(actions.viewUserProductReviews, isMyself);
150
151
  role.allow(actions.viewUserTokens, isMyself);
151
152
  role.allow(actions.updateUser, isMyself);
152
153
  role.allow(actions.authTwoFactor, isMyself);
@@ -175,5 +176,7 @@ export const loggedIn = (role, actions) => {
175
176
  role.allow(actions.managePaymentCredentials, isOwnedPaymentCredential);
176
177
  role.allow(actions.updateToken, isOwnedToken);
177
178
  role.allow(actions.viewToken, isOwnedToken);
179
+ role.allow(actions.stopImpersonation, () => true);
180
+ role.allow(actions.impersonate, () => false);
178
181
  };
179
182
  //# sourceMappingURL=loggedIn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loggedIn.js","sourceRoot":"","sources":["../../src/roles/loggedIn.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAS,EAAE,OAA+B,EAAE,EAAE;IACrE,MAAM,QAAQ,GAAG,CACf,IAAU,EACV,cAAmC,EAAE,EACrC,UAA+B,EAAE,EACjC,EAAE;QACF,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAChF,OAAO,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC;SACpC;QACD,OAAO,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACtE,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,GAAQ,EAAE,MAA0B,EAAE,EAAE,IAAI,EAAW,EAAE,EAAE;QACtF,OAAO,IAAI,EAAE,MAAM,EAAE,IAAI,CACvB,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CACpF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAQ,EAAE,MAA2B,EAAE,EAAE,OAAO,EAAE,MAAM,EAAW,EAAE,EAAE;QACjG,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAC1C,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAC3B;YACE,UAAU,EAAE;gBACV,MAAM,EAAE,CAAC;aACV;SACF,CACF,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAQ,EAAE,MAA4B,EAAE,OAAgB,EAAE,EAAE;QAC5F,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;SACjE;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,GAAQ,EACR,MAAgC,EAChC,EAAE,OAAO,EAAE,MAAM,EAAW,EAC5B,EAAE;QACF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CACzD,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,EACrC;YACE,UAAU,EAAE;gBACV,MAAM,EAAE,CAAC;aACV;SACF,CACF,CAAC;QACF,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,GAAQ,EAAE,MAAkC,EAAE,OAAgB,EAAE,EAAE;QACnG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CACpE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,EACzC;YACE,UAAU,EAAE;gBACV,OAAO,EAAE,CAAC;aACX;SACF,CACF,CAAC;QACF,8CAA8C;QAC9C,6CAA6C;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;QACjC,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,EAChC,GAAQ,EACR,MAAmC,EACnC,OAAgB,EAChB,EAAE;QACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CACnE,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,EAC3C;YACE,UAAU,EAAE;gBACV,OAAO,EAAE,CAAC;aACX;SACF,CACF,CAAC;QACF,8CAA8C;QAC9C,6CAA6C;QAC7C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC;QAC7C,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAQ,EAAE,MAA0B,EAAE,OAAgB,EAAE,EAAE;QACxF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CACnE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EACzB;YACE,UAAU,EAAE;gBACV,OAAO,EAAE,CAAC;aACX;SACF,CACF,CAAC;QACF,8CAA8C;QAC9C,6CAA6C;QAC7C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;QACrC,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAQ,EAAE,MAA8B,EAAE,OAAgB,EAAE,EAAE;QAChG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CACvE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EACjC;YACE,UAAU,EAAE;gBACV,OAAO,EAAE,CAAC;aACX;SACF,CACF,CAAC;QACF,8CAA8C;QAC9C,6CAA6C;QAC7C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC;QAC7C,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,KAAK,EAChC,GAAQ,EACR,MAAmC,EACnC,OAAgB,EAChB,EAAE;QACF,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;QACnC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC9D,eAAe;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAC5B,GAAQ,EACR,EAAE,WAAW,EAA2B,EACxC,EAAE,OAAO,EAAE,MAAM,EAAW,EAC5B,EAAE;QACF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CACtD,EAAE,WAAW,EAAE,EACf;YACE,UAAU,EAAE;gBACV,MAAM,EAAE,CAAC;aACV;SACF,CACF,CAAC;QACF,8CAA8C;QAC9C,6CAA6C;QAC7C,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,EAC3B,GAAQ,EACR,EAAE,UAAU,EAA0B,EACtC,EAAE,MAAM,EAAE,OAAO,EAAW,EAC5B,EAAE;QACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACtE,8CAA8C;QAC9C,6CAA6C;QAC7C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,EACpC,GAAQ,EACR,EAAE,oBAAoB,EAAoC,EAC1D,EAAE,OAAO,EAAE,MAAM,EAAW,EAC5B,EAAE;QACF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAChF;YACE,oBAAoB;SACrB,EACD;YACE,UAAU,EAAE;gBACV,MAAM,EAAE,CAAC;aACV;SACF,CACF,CAAC;QACF,8CAA8C;QAC9C,6CAA6C;QAC7C,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EACxB,GAAQ,EACR,EAAE,OAAO,EAAuB,EAChC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW,EAClC,EAAE;QACF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,CACL,KAAK,CAAC,MAAM,KAAK,MAAM;YACvB,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,OAAO,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC;YACrE,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC9C,CAAC,CAAC"}
1
+ {"version":3,"file":"loggedIn.js","sourceRoot":"","sources":["../../src/roles/loggedIn.ts"],"names":[],"mappings":"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"}
@@ -449,6 +449,11 @@ export default [
449
449
  """
450
450
  impersonate(userId: ID!): LoginMethodResponse!
451
451
 
452
+ """
453
+ End customer impersonated user session and resume the impersonator session
454
+ """
455
+ stopImpersonation: LoginMethodResponse!
456
+
452
457
  """
453
458
  Reorder a media asset (first is primary)
454
459
  """
@@ -1 +1 @@
1
- {"version":3,"file":"mutation.js","sourceRoot":"","sources":["../../src/schema/mutation.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAu5Bb;CACF,CAAC"}
1
+ {"version":3,"file":"mutation.js","sourceRoot":"","sources":["../../src/schema/mutation.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA45Bb;CACF,CAAC"}
@@ -5,6 +5,10 @@ export default [
5
5
  Currently logged in user
6
6
  """
7
7
  me: User
8
+ """
9
+ User impersonating current user session using the impersonate API
10
+ """
11
+ impersonator: User
8
12
 
9
13
  """
10
14
  Get list of users, by default sorted by creation date (ascending) unless a queryString is set
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/schema/query.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAycb;CACF,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/schema/query.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6cb;CACF,CAAC"}
@@ -20,6 +20,7 @@ export default [
20
20
  sort: [SortOptionInput!]
21
21
  queryString: String
22
22
  ): [ProductReview!]!
23
+ reviewsCount(queryString: String): Int!
23
24
  assortmentPaths: [ProductAssortmentPath!]!
24
25
  siblings(
25
26
  assortmentId: ID
@@ -1 +1 @@
1
- {"version":3,"file":"bundle-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/bundle-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCb;CACF,CAAC"}
1
+ {"version":3,"file":"bundle-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/bundle-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCb;CACF,CAAC"}
@@ -85,6 +85,7 @@ export default [
85
85
  sort: [SortOptionInput!]
86
86
  queryString: String
87
87
  ): [ProductReview!]!
88
+ reviewsCount(queryString: String): Int!
88
89
  catalogPriceRange(
89
90
  quantity: Int = 0
90
91
  vectors: [ProductAssignmentVectorInput!]
@@ -1 +1 @@
1
- {"version":3,"file":"configurable-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/configurable-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmHb;CACF,CAAC"}
1
+ {"version":3,"file":"configurable-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/configurable-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoHb;CACF,CAAC"}
@@ -62,6 +62,7 @@ export default [
62
62
  sort: [SortOptionInput!]
63
63
  queryString: String
64
64
  ): [ProductReview!]!
65
+ reviewsCount(queryString: String): Int!
65
66
  plan: ProductPlanConfiguration
66
67
  }
67
68
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"plan-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/plan-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEb;CACF,CAAC"}
1
+ {"version":3,"file":"plan-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/plan-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEb;CACF,CAAC"}
@@ -69,6 +69,7 @@ export default [
69
69
  sort: [SortOptionInput!]
70
70
  queryString: String
71
71
  ): [ProductReview!]!
72
+ reviewsCount(queryString: String): Int!
72
73
  assortmentPaths: [ProductAssortmentPath!]!
73
74
  siblings(
74
75
  assortmentId: ID
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqIb;CACF,CAAC"}
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsIb;CACF,CAAC"}
@@ -45,6 +45,7 @@ export default [
45
45
  sort: [SortOptionInput!]
46
46
  queryString: String
47
47
  ): [ProductReview!]!
48
+ reviewsCount(queryString: String): Int!
48
49
  }
49
50
  `,
50
51
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"simple-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/simple-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+Cb;CACF,CAAC"}
1
+ {"version":3,"file":"simple-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/simple-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDb;CACF,CAAC"}
@@ -50,6 +50,7 @@ export default [
50
50
  sort: [SortOptionInput!]
51
51
  queryString: String
52
52
  ): [ProductReview!]!
53
+ reviewsCount(queryString: String): Int!
53
54
  contractAddress: String
54
55
  contractStandard: SmartContractStandard
55
56
  contractConfiguration: ContractConfiguration
@@ -1 +1 @@
1
- {"version":3,"file":"tokenized-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/tokenized-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDb;CACF,CAAC"}
1
+ {"version":3,"file":"tokenized-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/tokenized-product.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDb;CACF,CAAC"}
@@ -153,6 +153,8 @@ export default [
153
153
  allowedActions: [RoleAction!]!
154
154
  tokens: [Token!]!
155
155
  oAuthAccounts: [OAuthAccount!]!
156
+ reviews(limit: Int = 10, offset: Int = 0, sort: [SortOptionInput!]): [ProductReview!]!
157
+ reviewsCount: Int!
156
158
  }
157
159
  `,
158
160
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/schema/types/user.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2Jb;CACF,CAAC"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/schema/types/user.ts"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6Jb;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/api",
3
- "version": "2.3.6",
3
+ "version": "2.4.1",
4
4
  "main": "lib/api-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/api-index.js",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "homepage": "https://github.com/unchainedshop/unchained#readme",
42
42
  "peerDependencies": {
43
- "@apollo/server": "^4.9.0",
43
+ "@apollo/server": "^4.9.3",
44
44
  "cookie": "^0.5.0",
45
45
  "graphql": "^16.6.0"
46
46
  },
@@ -49,11 +49,11 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@metamask/eth-sig-util": "^6.0.0",
52
- "@unchainedshop/core": "^2.3.6",
53
- "@unchainedshop/events": "^2.3.6",
54
- "@unchainedshop/logger": "^2.3.6",
55
- "@unchainedshop/roles": "^2.3.6",
56
- "@unchainedshop/utils": "^2.3.6",
52
+ "@unchainedshop/core": "^2.4.1",
53
+ "@unchainedshop/events": "^2.4.1",
54
+ "@unchainedshop/logger": "^2.4.1",
55
+ "@unchainedshop/roles": "^2.4.1",
56
+ "@unchainedshop/utils": "^2.4.1",
57
57
  "accounting": "0.4.1",
58
58
  "dataloader": "^2.2.2",
59
59
  "graphql-scalars": "^1.22.2",
@@ -63,14 +63,14 @@
63
63
  "lru-cache": "^10.0.0"
64
64
  },
65
65
  "devDependencies": {
66
- "@types/graphql-upload": "^16.0.0",
67
- "@types/locale": "^0.1.1",
68
- "@types/node": "^18.17.1",
69
- "@unchainedshop/types": "^2.3.6",
66
+ "@types/graphql-upload": "^16.0.1",
67
+ "@types/locale": "^0.1.2",
68
+ "@types/node": "^18.17.14",
69
+ "@unchainedshop/types": "^2.4.1",
70
70
  "express": "^4.18.2",
71
- "graphql": "^16.7.1",
72
- "jest": "^29.6.2",
71
+ "graphql": "^16.8.0",
72
+ "jest": "^29.6.4",
73
73
  "ts-jest": "^29.1.1",
74
- "typescript": "^5.1.6"
74
+ "typescript": "^5.2.2"
75
75
  }
76
76
  }
package/src/errors.ts CHANGED
@@ -289,3 +289,8 @@ export const ProductLinkedToQuotationError = createError(
289
289
  'ProductLinkedToQuotation',
290
290
  'Product is part of a requested/proposed quotations item, remove it from any requested/proposed quotations item before deleting',
291
291
  );
292
+
293
+ export const ImpersonatingAdminUserError = createError(
294
+ 'ImpersonatingAdminUserError',
295
+ 'Can not impersonate a admin user account',
296
+ );
@@ -1,9 +1,9 @@
1
1
  import { log } from '@unchainedshop/logger';
2
2
  import { Context } from '@unchainedshop/types/api.js';
3
- import { UserNotFoundError, NoPermissionError } from '../../../errors.js';
3
+ import { ImpersonatingAdminUserError, UserNotFoundError } from '../../../errors.js';
4
4
 
5
5
  const impersonate = async (root, { userId }, context: Context) => {
6
- log(`mutation impersonate ${userId}`);
6
+ log(`mutation impersonate ${userId}`, { userId: context.userId });
7
7
 
8
8
  const userToImpersonate = await context.modules.users.findUserById(userId);
9
9
 
@@ -12,7 +12,7 @@ const impersonate = async (root, { userId }, context: Context) => {
12
12
  }
13
13
 
14
14
  if ((userToImpersonate.roles || []).includes('admin')) {
15
- throw new NoPermissionError("Cannot impersonate users with role 'admin'");
15
+ throw new ImpersonatingAdminUserError({ impersonatedUserId: userId, userId: context.userId });
16
16
  }
17
17
 
18
18
  return context.modules.accounts.createImpersonationToken(userToImpersonate._id, context);
@@ -0,0 +1,31 @@
1
+ import { UserNotFoundError } from '@unchainedshop/api/errors.js';
2
+ import { log } from '@unchainedshop/logger';
3
+ import { Context, Root } from '@unchainedshop/types/api.js';
4
+
5
+ export default async function stopImpersonation(root: Root, _, context: Context) {
6
+ const { userId, modules, loginToken } = context;
7
+
8
+ log(`mutation stopImpersonation for ${userId}`);
9
+
10
+ const impersonatedUser = await modules.users.findUserById(userId);
11
+
12
+ if (!impersonatedUser) throw new UserNotFoundError({ userId });
13
+ const impersonatedUserToken = impersonatedUser?.services?.resume?.loginTokens.find(
14
+ ({ hashedToken, impersonatorId }) =>
15
+ hashedToken === modules.accounts.createHashLoginToken(loginToken) && impersonatorId,
16
+ );
17
+
18
+ if (!impersonatedUserToken) throw new Error('Current session is not being impersonated');
19
+
20
+ await modules.accounts.logout({ loginToken }, context);
21
+
22
+ const accountsServer = modules.accounts.getAccountsServer();
23
+
24
+ const { token } = await accountsServer.loginWithUser(impersonatedUserToken.impersonatorId);
25
+
26
+ return {
27
+ id: impersonatedUserToken.impersonatorId,
28
+ token: token.token,
29
+ tokenExpires: token.when,
30
+ };
31
+ }
@@ -3,6 +3,7 @@ import { checkResolver as acl } from '../../acl.js';
3
3
  import loginWithPassword from './accounts/loginWithPassword.js';
4
4
  import loginWithWebAuthn from './accounts/loginWithWebAuthn.js';
5
5
  import impersonate from './accounts/impersonate.js';
6
+ import stopImpersonation from './accounts/stopImpersonation.js';
6
7
  import loginAsGuest from './accounts/loginAsGuest.js';
7
8
  import logout from './accounts/logout.js';
8
9
  import logoutAllSessions from './accounts/logoutAllSessions.js';
@@ -162,11 +163,15 @@ import linkOAuthAccount from './accounts/linkOAuthAccount.js';
162
163
  import unlinkOAuthAccount from './accounts/unlinkOAuthAccount.js';
163
164
 
164
165
  export default {
165
- logout,
166
- logoutAllSessions,
167
- loginAsGuest,
168
- createWebAuthnCredentialCreationOptions,
169
- createWebAuthnCredentialRequestOptions,
166
+ logout: acl(actions.logout)(logout),
167
+ logoutAllSessions: acl(actions.logoutAllSessions)(logoutAllSessions),
168
+ loginAsGuest: acl(actions.loginAsGuest)(loginAsGuest),
169
+ createWebAuthnCredentialCreationOptions: acl(actions.useWebAuthn)(
170
+ createWebAuthnCredentialCreationOptions,
171
+ ),
172
+ createWebAuthnCredentialRequestOptions: acl(actions.useWebAuthn)(
173
+ createWebAuthnCredentialRequestOptions,
174
+ ),
170
175
  addPushSubscription: acl(actions.updateUser)(addPushSubscription),
171
176
  removePushSubscription: acl(actions.updateUser)(removePushSubscription),
172
177
  addWebAuthnCredentials: acl(actions.updateUser)(addWebAuthnCredentials),
@@ -176,22 +181,23 @@ export default {
176
181
  verifyWeb3Address: acl(actions.updateUser)(verifyWeb3Address),
177
182
  linkOAuthAccount: acl(actions.updateUser)(linkOAuthAccount),
178
183
  unlinkOAuthAccount: acl(actions.updateUser)(unlinkOAuthAccount),
179
- verifyEmail,
180
- loginWithPassword,
181
- loginWithWebAuthn,
182
- loginWithOAuth,
184
+ verifyEmail: acl(actions.verifyEmail)(verifyEmail),
185
+ loginWithPassword: acl(actions.loginWithPassword)(loginWithPassword),
186
+ loginWithWebAuthn: acl(actions.loginWithWebAuthn)(loginWithWebAuthn),
187
+ loginWithOAuth: acl(actions.loginWithOAuth)(loginWithOAuth),
183
188
  impersonate: acl(actions.impersonate)(impersonate),
189
+ stopImpersonation: acl(actions.stopImpersonation)(stopImpersonation),
184
190
  buildSecretTOTPAuthURL: acl(actions.authTwoFactor)(buildSecretTOTPAuthURL),
185
191
  enableTOTP: acl(actions.authTwoFactor)(enableTOTP),
186
192
  disableTOTP: acl(actions.manageTwoFactor)(disableTOTP),
187
- pageView,
188
- createUser,
189
- forgotPassword,
190
- resetPassword,
193
+ pageView: acl(actions.pageView)(pageView),
194
+ createUser: acl(actions.createUser)(createUser),
195
+ forgotPassword: acl(actions.forgotPassword)(forgotPassword),
196
+ resetPassword: acl(actions.resetPassword)(resetPassword),
191
197
  sendVerificationEmail: acl(actions.sendEmail)(sendVerificationEmail),
192
198
  sendEnrollmentEmail: acl(actions.sendEmail)(sendEnrollmentEmail),
193
- changePassword,
194
- heartbeat,
199
+ changePassword: acl(actions.changePassword)(changePassword),
200
+ heartbeat: acl(actions.heartbeat)(heartbeat),
195
201
  addEmail: acl(actions.updateUser)(addEmail),
196
202
  removeEmail: acl(actions.updateUser)(removeEmail),
197
203
  updateUserAvatar: acl(actions.updateUser)(updateUserAvatar),
@@ -10,9 +10,8 @@ export default async (
10
10
  log(`mutation removePaymentCredentials ${paymentCredentialsId}`, { userId });
11
11
 
12
12
  if (!paymentCredentialsId) throw new InvalidIdError({ paymentCredentialsId });
13
- const removedCredentials = await modules.payment.paymentCredentials.removeCredentials(
14
- paymentCredentialsId,
15
- );
13
+ const removedCredentials =
14
+ await modules.payment.paymentCredentials.removeCredentials(paymentCredentialsId);
16
15
  if (!removedCredentials) throw new PaymentCredentialsNotFoundError({ paymentCredentialsId });
17
16
 
18
17
  return removedCredentials;
@@ -65,9 +65,11 @@ import token from './warehousing/token.js';
65
65
  import work from './worker/work.js';
66
66
  import workQueue from './worker/workQueue.js';
67
67
  import workQueueCount from './worker/workQueueCount.js';
68
+ import impersonator from './users/impersonator.js';
68
69
 
69
70
  export default {
70
71
  me,
72
+ impersonator,
71
73
  user: acl(actions.viewUser)(user),
72
74
  users: acl(actions.viewUsers)(users),
73
75
  usersCount: acl(actions.viewUsers)(usersCount),
@@ -0,0 +1,19 @@
1
+ import { log } from '@unchainedshop/logger';
2
+ import { Context, Root } from '@unchainedshop/types/api.js';
3
+
4
+ export default async function impersonator(
5
+ root: Root,
6
+ params: any,
7
+ { userId, user, remoteAddress, modules, loginToken }: Context,
8
+ ) {
9
+ log(`query impersonator ${remoteAddress}`, { userId });
10
+ if (!user?.services || !user?.services?.resume || !user?.services?.resume?.loginTokens) return null;
11
+
12
+ const { loginTokens } = user.services.resume;
13
+ const impersonatedSession = loginTokens.find(
14
+ ({ hashedToken, impersonatorId }) =>
15
+ hashedToken === modules.accounts.createHashLoginToken(loginToken) && impersonatorId,
16
+ );
17
+ if (!impersonatedSession) return null;
18
+ return modules.users.findUserById(impersonatedSession.impersonatorId);
19
+ }
@@ -30,6 +30,9 @@ export const Product: ProductHelperTypes = {
30
30
  queryString,
31
31
  });
32
32
  },
33
+ reviewsCount: async (obj, params, { modules }) => {
34
+ return modules.products.reviews.count({ ...params, productId: obj._id });
35
+ },
33
36
 
34
37
  siblings: async (product, params, { modules }) => {
35
38
  const { assortmentId, limit, offset, includeInactive = false } = params;
@@ -20,6 +20,7 @@ import {
20
20
  import type { Locale } from 'locale';
21
21
  import { TokenSurrogate } from '@unchainedshop/types/warehousing.js';
22
22
  import { Roles, permissions } from '@unchainedshop/roles';
23
+ import { ProductReview } from '@unchainedshop/types/products.reviews.js';
23
24
  import { checkAction, checkTypeResolver } from '../../acl.js';
24
25
  import { actions } from '../../roles/index.js';
25
26
 
@@ -82,6 +83,15 @@ export interface UserHelperTypes {
82
83
  username: HelperType<any, string>;
83
84
  pushSubscriptions: HelperType<any, Array<PushSubscription>>;
84
85
  oAuthAccounts: HelperType<any, Array<OAuthAccount>>;
86
+ reviews: HelperType<
87
+ {
88
+ sort?: Array<SortOption>;
89
+ limit?: number;
90
+ offset?: number;
91
+ },
92
+ Array<ProductReview>
93
+ >;
94
+ reviewsCount: HelperType<any, number>;
85
95
  }
86
96
 
87
97
  const {
@@ -90,6 +100,7 @@ const {
90
100
  viewUserOrders,
91
101
  viewUserEnrollments,
92
102
  viewUserQuotations,
103
+ viewUserProductReviews,
93
104
  } = actions as Record<string, string>;
94
105
 
95
106
  const getPrimaryEmail = (user: UserType) => {
@@ -242,4 +253,19 @@ export const User: UserHelperTypes = {
242
253
  }));
243
254
  });
244
255
  },
256
+ async reviews(user, params, context) {
257
+ const { modules } = context;
258
+ await checkAction(context, viewUserProductReviews, [user, params]);
259
+ return modules.products.reviews.findProductReviews({
260
+ ...(params || {}),
261
+ authorId: user._id,
262
+ });
263
+ },
264
+ async reviewsCount(user, params, context) {
265
+ const { modules } = context;
266
+ await checkAction(context, viewUserProductReviews, [user, params]);
267
+ return modules.products.reviews.count({
268
+ authorId: user._id,
269
+ });
270
+ },
245
271
  };
package/src/roles/all.ts CHANGED
@@ -55,6 +55,7 @@ export const all = (role, actions) => {
55
55
  role.allow(actions.viewUserQuotations, isInLoginMutationResponse);
56
56
  role.allow(actions.viewUserPrivateInfos, isInLoginMutationResponse);
57
57
  role.allow(actions.viewUserEnrollments, isInLoginMutationResponse);
58
+ role.allow(actions.viewUserProductReviews, isInLoginMutationResponse);
58
59
  role.allow(actions.reviewProduct, () => false);
59
60
  role.allow(actions.updateProductReview, () => false);
60
61
  role.allow(actions.manageProductReviews, () => false);
@@ -79,6 +80,7 @@ export const all = (role, actions) => {
79
80
  role.allow(actions.authTwoFactor, () => false);
80
81
  role.allow(actions.manageTwoFactor, () => false);
81
82
  role.allow(actions.impersonate, () => false);
83
+ role.allow(actions.stopImpersonation, () => false);
82
84
 
83
85
  // only allow if query is not demanding for drafts
84
86
  role.allow(actions.viewProducts, (root, { includeDrafts }) => !includeDrafts);
@@ -99,4 +101,18 @@ export const all = (role, actions) => {
99
101
  role.allow(actions.viewFilters, () => true);
100
102
  role.allow(actions.viewTranslations, () => true);
101
103
  role.allow(actions.search, () => true);
104
+ role.allow(actions.logout, () => true);
105
+ role.allow(actions.logoutAllSessions, () => true);
106
+ role.allow(actions.loginAsGuest, () => true);
107
+ role.allow(actions.loginWithPassword, () => true);
108
+ role.allow(actions.loginWithWebAuthn, () => true);
109
+ role.allow(actions.loginWithOAuth, () => true);
110
+ role.allow(actions.verifyEmail, () => true);
111
+ role.allow(actions.useWebAuthn, () => true);
112
+ role.allow(actions.pageView, () => true);
113
+ role.allow(actions.createUser, () => true);
114
+ role.allow(actions.forgotPassword, () => true);
115
+ role.allow(actions.resetPassword, () => true);
116
+ role.allow(actions.changePassword, () => true);
117
+ role.allow(actions.heartbeat, () => true);
102
118
  };
@@ -101,6 +101,22 @@ const actions: Record<string, string> = [
101
101
  'authTwoFactor',
102
102
  'manageTwoFactor',
103
103
  'impersonate',
104
+ 'stopImpersonation',
105
+ 'logout',
106
+ 'logoutAllSessions',
107
+ 'loginAsGuest',
108
+ 'loginWithPassword',
109
+ 'loginWithWebAuthn',
110
+ 'loginWithOAuth',
111
+ 'verifyEmail',
112
+ 'useWebAuthn',
113
+ 'pageView',
114
+ 'createUser',
115
+ 'forgotPassword',
116
+ 'resetPassword',
117
+ 'changePassword',
118
+ 'viewUserProductReviews',
119
+ 'heartbeat',
104
120
  ].reduce((oldValue, actionValue) => {
105
121
  const newValue = oldValue;
106
122
  newValue[actionValue] = actionValue;
@@ -115,6 +131,7 @@ const configureRoles = ({ additionalRoles = {}, additionalActions = [] }) => {
115
131
  allRoles[key] = new Role(key);
116
132
  val(allRoles[key], actions);
117
133
  });
134
+
118
135
  all(allRoles.ALL, actions);
119
136
  loggedIn(allRoles.LOGGEDIN, actions);
120
137
  admin(allRoles.ADMIN, actions);
@@ -213,6 +213,7 @@ export const loggedIn = (role: any, actions: Record<string, string>) => {
213
213
  role.allow(actions.viewUserQuotations, isMyself);
214
214
  role.allow(actions.viewUserEnrollments, isMyself);
215
215
  role.allow(actions.viewUserPrivateInfos, isMyself);
216
+ role.allow(actions.viewUserProductReviews, isMyself);
216
217
  role.allow(actions.viewUserTokens, isMyself);
217
218
  role.allow(actions.updateUser, isMyself);
218
219
  role.allow(actions.authTwoFactor, isMyself);
@@ -241,4 +242,6 @@ export const loggedIn = (role: any, actions: Record<string, string>) => {
241
242
  role.allow(actions.managePaymentCredentials, isOwnedPaymentCredential);
242
243
  role.allow(actions.updateToken, isOwnedToken);
243
244
  role.allow(actions.viewToken, isOwnedToken);
245
+ role.allow(actions.stopImpersonation, () => true);
246
+ role.allow(actions.impersonate, () => false);
244
247
  };
@@ -449,6 +449,11 @@ export default [
449
449
  """
450
450
  impersonate(userId: ID!): LoginMethodResponse!
451
451
 
452
+ """
453
+ End customer impersonated user session and resume the impersonator session
454
+ """
455
+ stopImpersonation: LoginMethodResponse!
456
+
452
457
  """
453
458
  Reorder a media asset (first is primary)
454
459
  """