@medusajs/core-flows 2.22.3-snapshot-20261030141225 → 2.22.3
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.
- package/AGENTS.md +1 -1
- package/dist/auth/workflows/generate-reset-password-token.d.ts +45 -9
- package/dist/auth/workflows/generate-reset-password-token.d.ts.map +1 -1
- package/dist/auth/workflows/generate-reset-password-token.js +37 -2
- package/dist/auth/workflows/generate-reset-password-token.js.map +1 -1
- package/dist/customer/steps/validate-customer-account-creation.d.ts +4 -2
- package/dist/customer/steps/validate-customer-account-creation.d.ts.map +1 -1
- package/dist/customer/steps/validate-customer-account-creation.js +13 -5
- package/dist/customer/steps/validate-customer-account-creation.js.map +1 -1
- package/dist/customer/workflows/create-customer-account.d.ts +6 -1
- package/dist/customer/workflows/create-customer-account.d.ts.map +1 -1
- package/dist/customer/workflows/create-customer-account.js +8 -1
- package/dist/customer/workflows/create-customer-account.js.map +1 -1
- package/dist/invite/steps/get-invite-roles.d.ts +5 -5
- package/dist/invite/steps/get-invite-roles.d.ts.map +1 -1
- package/dist/invite/steps/get-invite-roles.js +18 -10
- package/dist/invite/steps/get-invite-roles.js.map +1 -1
- package/dist/invite/steps/index.d.ts +0 -1
- package/dist/invite/steps/index.d.ts.map +1 -1
- package/dist/invite/steps/index.js +0 -1
- package/dist/invite/steps/index.js.map +1 -1
- package/dist/invite/workflows/accept-invite.d.ts.map +1 -1
- package/dist/invite/workflows/accept-invite.js +12 -3
- package/dist/invite/workflows/accept-invite.js.map +1 -1
- package/dist/invite/workflows/create-invites.d.ts +9 -1
- package/dist/invite/workflows/create-invites.d.ts.map +1 -1
- package/dist/invite/workflows/create-invites.js +28 -18
- package/dist/invite/workflows/create-invites.js.map +1 -1
- package/dist/invite/workflows/delete-invites.d.ts.map +1 -1
- package/dist/invite/workflows/delete-invites.js +11 -4
- package/dist/invite/workflows/delete-invites.js.map +1 -1
- package/dist/rbac/index.d.ts +2 -0
- package/dist/rbac/index.d.ts.map +1 -1
- package/dist/rbac/index.js +2 -0
- package/dist/rbac/index.js.map +1 -1
- package/dist/rbac/steps/create-rbac-policies.d.ts +2 -5
- package/dist/rbac/steps/create-rbac-policies.d.ts.map +1 -1
- package/dist/rbac/steps/create-rbac-policies.js +1 -3
- package/dist/rbac/steps/create-rbac-policies.js.map +1 -1
- package/dist/rbac/steps/create-rbac-role-policies.d.ts +0 -3
- package/dist/rbac/steps/create-rbac-role-policies.d.ts.map +1 -1
- package/dist/rbac/steps/create-rbac-role-policies.js +0 -2
- package/dist/rbac/steps/create-rbac-role-policies.js.map +1 -1
- package/dist/rbac/steps/create-rbac-roles.d.ts +0 -4
- package/dist/rbac/steps/create-rbac-roles.d.ts.map +1 -1
- package/dist/rbac/steps/create-rbac-roles.js +0 -2
- package/dist/rbac/steps/create-rbac-roles.js.map +1 -1
- package/dist/rbac/steps/create-role-assignments.d.ts +16 -0
- package/dist/rbac/steps/create-role-assignments.d.ts.map +1 -0
- package/dist/rbac/steps/create-role-assignments.js +34 -0
- package/dist/rbac/steps/create-role-assignments.js.map +1 -0
- package/dist/rbac/steps/delete-rbac-policies.d.ts +2 -3
- package/dist/rbac/steps/delete-rbac-policies.d.ts.map +1 -1
- package/dist/rbac/steps/delete-rbac-policies.js +38 -6
- package/dist/rbac/steps/delete-rbac-policies.js.map +1 -1
- package/dist/rbac/steps/delete-rbac-role-policies.d.ts +2 -3
- package/dist/rbac/steps/delete-rbac-role-policies.d.ts.map +1 -1
- package/dist/rbac/steps/delete-rbac-role-policies.js +10 -2
- package/dist/rbac/steps/delete-rbac-role-policies.js.map +1 -1
- package/dist/rbac/steps/delete-rbac-roles.d.ts +3 -5
- package/dist/rbac/steps/delete-rbac-roles.d.ts.map +1 -1
- package/dist/rbac/steps/delete-rbac-roles.js +8 -7
- package/dist/rbac/steps/delete-rbac-roles.js.map +1 -1
- package/dist/rbac/steps/delete-role-assignments.d.ts +17 -0
- package/dist/rbac/steps/delete-role-assignments.d.ts.map +1 -0
- package/dist/rbac/steps/delete-role-assignments.js +37 -0
- package/dist/rbac/steps/delete-role-assignments.js.map +1 -0
- package/dist/rbac/steps/ensure-super-admin-remains.d.ts +29 -0
- package/dist/rbac/steps/ensure-super-admin-remains.d.ts.map +1 -0
- package/dist/rbac/steps/ensure-super-admin-remains.js +46 -0
- package/dist/rbac/steps/ensure-super-admin-remains.js.map +1 -0
- package/dist/{user → rbac}/steps/get-assignable-policies.d.ts +6 -4
- package/dist/rbac/steps/get-assignable-policies.d.ts.map +1 -0
- package/dist/{user → rbac}/steps/get-assignable-policies.js +8 -11
- package/dist/rbac/steps/get-assignable-policies.js.map +1 -0
- package/dist/{user → rbac}/steps/get-assignable-roles.d.ts +7 -5
- package/dist/rbac/steps/get-assignable-roles.d.ts.map +1 -0
- package/dist/rbac/steps/get-assignable-roles.js +62 -0
- package/dist/rbac/steps/get-assignable-roles.js.map +1 -0
- package/dist/rbac/steps/get-role-assignments.d.ts +23 -0
- package/dist/rbac/steps/get-role-assignments.d.ts.map +1 -0
- package/dist/rbac/steps/get-role-assignments.js +36 -0
- package/dist/rbac/steps/get-role-assignments.js.map +1 -0
- package/dist/rbac/steps/index.d.ts +10 -3
- package/dist/rbac/steps/index.d.ts.map +1 -1
- package/dist/rbac/steps/index.js +10 -3
- package/dist/rbac/steps/index.js.map +1 -1
- package/dist/rbac/steps/update-rbac-policies.d.ts +3 -6
- package/dist/rbac/steps/update-rbac-policies.d.ts.map +1 -1
- package/dist/rbac/steps/update-rbac-policies.js +4 -4
- package/dist/rbac/steps/update-rbac-policies.js.map +1 -1
- package/dist/rbac/steps/update-rbac-role-policies.d.ts +0 -3
- package/dist/rbac/steps/update-rbac-role-policies.d.ts.map +1 -1
- package/dist/rbac/steps/update-rbac-role-policies.js +0 -2
- package/dist/rbac/steps/update-rbac-role-policies.js.map +1 -1
- package/dist/rbac/steps/update-rbac-roles.d.ts +0 -3
- package/dist/rbac/steps/update-rbac-roles.d.ts.map +1 -1
- package/dist/rbac/steps/update-rbac-roles.js +0 -2
- package/dist/rbac/steps/update-rbac-roles.js.map +1 -1
- package/dist/rbac/steps/validate-actor-permissions.d.ts +29 -0
- package/dist/rbac/steps/validate-actor-permissions.d.ts.map +1 -0
- package/dist/rbac/steps/{validate-user-permissions.js → validate-actor-permissions.js} +15 -24
- package/dist/rbac/steps/validate-actor-permissions.js.map +1 -0
- package/dist/rbac/steps/validate-actor-role-permissions.d.ts +17 -0
- package/dist/rbac/steps/validate-actor-role-permissions.d.ts.map +1 -0
- package/dist/rbac/steps/validate-actor-role-permissions.js +24 -0
- package/dist/rbac/steps/validate-actor-role-permissions.js.map +1 -0
- package/dist/rbac/steps/validate-assignment-references.d.ts +10 -0
- package/dist/rbac/steps/validate-assignment-references.d.ts.map +1 -0
- package/dist/rbac/steps/validate-assignment-references.js +27 -0
- package/dist/rbac/steps/validate-assignment-references.js.map +1 -0
- package/dist/{invite → rbac}/steps/validate-roles-exist.d.ts +0 -2
- package/dist/rbac/steps/validate-roles-exist.d.ts.map +1 -0
- package/dist/{invite → rbac}/steps/validate-roles-exist.js +2 -3
- package/dist/rbac/steps/validate-roles-exist.js.map +1 -0
- package/dist/rbac/utils/build-role-assignments.d.ts +22 -0
- package/dist/rbac/utils/build-role-assignments.d.ts.map +1 -0
- package/dist/rbac/utils/build-role-assignments.js +46 -0
- package/dist/rbac/utils/build-role-assignments.js.map +1 -0
- package/dist/rbac/utils/can-actor-grant-policies.d.ts +26 -0
- package/dist/rbac/utils/can-actor-grant-policies.d.ts.map +1 -0
- package/dist/rbac/utils/can-actor-grant-policies.js +22 -0
- package/dist/rbac/utils/can-actor-grant-policies.js.map +1 -0
- package/dist/rbac/utils/can-actor-grant-roles.d.ts +38 -0
- package/dist/rbac/utils/can-actor-grant-roles.d.ts.map +1 -0
- package/dist/rbac/utils/can-actor-grant-roles.js +54 -0
- package/dist/rbac/utils/can-actor-grant-roles.js.map +1 -0
- package/dist/rbac/workflows/assign-roles.d.ts +45 -0
- package/dist/rbac/workflows/assign-roles.d.ts.map +1 -0
- package/dist/rbac/workflows/assign-roles.js +59 -0
- package/dist/rbac/workflows/assign-roles.js.map +1 -0
- package/dist/rbac/workflows/create-rbac-policies.d.ts +3 -5
- package/dist/rbac/workflows/create-rbac-policies.d.ts.map +1 -1
- package/dist/rbac/workflows/create-rbac-policies.js +0 -2
- package/dist/rbac/workflows/create-rbac-policies.js.map +1 -1
- package/dist/rbac/workflows/create-rbac-role-policies.d.ts +0 -3
- package/dist/rbac/workflows/create-rbac-role-policies.d.ts.map +1 -1
- package/dist/rbac/workflows/create-rbac-role-policies.js +2 -7
- package/dist/rbac/workflows/create-rbac-role-policies.js.map +1 -1
- package/dist/rbac/workflows/create-rbac-roles.d.ts +0 -4
- package/dist/rbac/workflows/create-rbac-roles.d.ts.map +1 -1
- package/dist/rbac/workflows/create-rbac-roles.js +2 -18
- package/dist/rbac/workflows/create-rbac-roles.js.map +1 -1
- package/dist/rbac/workflows/delete-rbac-policies.d.ts +12 -3
- package/dist/rbac/workflows/delete-rbac-policies.d.ts.map +1 -1
- package/dist/rbac/workflows/delete-rbac-policies.js +11 -2
- package/dist/rbac/workflows/delete-rbac-policies.js.map +1 -1
- package/dist/rbac/workflows/delete-rbac-role-policies.d.ts +13 -3
- package/dist/rbac/workflows/delete-rbac-role-policies.d.ts.map +1 -1
- package/dist/rbac/workflows/delete-rbac-role-policies.js +18 -2
- package/dist/rbac/workflows/delete-rbac-role-policies.js.map +1 -1
- package/dist/rbac/workflows/delete-rbac-roles.d.ts +13 -3
- package/dist/rbac/workflows/delete-rbac-roles.d.ts.map +1 -1
- package/dist/rbac/workflows/delete-rbac-roles.js +17 -2
- package/dist/rbac/workflows/delete-rbac-roles.js.map +1 -1
- package/dist/{user → rbac}/workflows/get-assignable-policies.d.ts +0 -4
- package/dist/rbac/workflows/get-assignable-policies.d.ts.map +1 -0
- package/dist/{user → rbac}/workflows/get-assignable-policies.js +0 -2
- package/dist/rbac/workflows/get-assignable-policies.js.map +1 -0
- package/dist/{user → rbac}/workflows/get-assignable-roles.d.ts +0 -4
- package/dist/rbac/workflows/get-assignable-roles.d.ts.map +1 -0
- package/dist/{user → rbac}/workflows/get-assignable-roles.js +0 -2
- package/dist/rbac/workflows/get-assignable-roles.js.map +1 -0
- package/dist/rbac/workflows/index.d.ts +4 -0
- package/dist/rbac/workflows/index.d.ts.map +1 -1
- package/dist/rbac/workflows/index.js +4 -0
- package/dist/rbac/workflows/index.js.map +1 -1
- package/dist/rbac/workflows/unassign-roles.d.ts +48 -0
- package/dist/rbac/workflows/unassign-roles.d.ts.map +1 -0
- package/dist/rbac/workflows/unassign-roles.js +79 -0
- package/dist/rbac/workflows/unassign-roles.js.map +1 -0
- package/dist/rbac/workflows/update-rbac-policies.d.ts +3 -6
- package/dist/rbac/workflows/update-rbac-policies.d.ts.map +1 -1
- package/dist/rbac/workflows/update-rbac-policies.js +0 -2
- package/dist/rbac/workflows/update-rbac-policies.js.map +1 -1
- package/dist/rbac/workflows/update-rbac-role-policies.d.ts +0 -3
- package/dist/rbac/workflows/update-rbac-role-policies.d.ts.map +1 -1
- package/dist/rbac/workflows/update-rbac-role-policies.js +0 -2
- package/dist/rbac/workflows/update-rbac-role-policies.js.map +1 -1
- package/dist/rbac/workflows/update-rbac-roles.d.ts +2 -6
- package/dist/rbac/workflows/update-rbac-roles.d.ts.map +1 -1
- package/dist/rbac/workflows/update-rbac-roles.js +2 -14
- package/dist/rbac/workflows/update-rbac-roles.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/user/steps/index.d.ts +0 -3
- package/dist/user/steps/index.d.ts.map +1 -1
- package/dist/user/steps/index.js +0 -3
- package/dist/user/steps/index.js.map +1 -1
- package/dist/user/workflows/create-users.d.ts +11 -2
- package/dist/user/workflows/create-users.d.ts.map +1 -1
- package/dist/user/workflows/create-users.js +31 -19
- package/dist/user/workflows/create-users.js.map +1 -1
- package/dist/user/workflows/delete-users.d.ts +2 -0
- package/dist/user/workflows/delete-users.d.ts.map +1 -1
- package/dist/user/workflows/delete-users.js +24 -2
- package/dist/user/workflows/delete-users.js.map +1 -1
- package/dist/user/workflows/index.d.ts +0 -4
- package/dist/user/workflows/index.d.ts.map +1 -1
- package/dist/user/workflows/index.js +0 -4
- package/dist/user/workflows/index.js.map +1 -1
- package/dist/user/workflows/remove-user-account.d.ts +15 -0
- package/dist/user/workflows/remove-user-account.d.ts.map +1 -1
- package/dist/user/workflows/remove-user-account.js +3 -0
- package/dist/user/workflows/remove-user-account.js.map +1 -1
- package/package.json +3 -3
- package/dist/invite/steps/validate-roles-exist.d.ts.map +0 -1
- package/dist/invite/steps/validate-roles-exist.js.map +0 -1
- package/dist/rbac/steps/create-rbac-role-parents.d.ts +0 -27
- package/dist/rbac/steps/create-rbac-role-parents.d.ts.map +0 -1
- package/dist/rbac/steps/create-rbac-role-parents.js +0 -29
- package/dist/rbac/steps/create-rbac-role-parents.js.map +0 -1
- package/dist/rbac/steps/set-role-parent.d.ts +0 -22
- package/dist/rbac/steps/set-role-parent.d.ts.map +0 -1
- package/dist/rbac/steps/set-role-parent.js +0 -73
- package/dist/rbac/steps/set-role-parent.js.map +0 -1
- package/dist/rbac/steps/validate-user-permissions.d.ts +0 -26
- package/dist/rbac/steps/validate-user-permissions.d.ts.map +0 -1
- package/dist/rbac/steps/validate-user-permissions.js.map +0 -1
- package/dist/user/steps/get-assignable-policies.d.ts.map +0 -1
- package/dist/user/steps/get-assignable-policies.js.map +0 -1
- package/dist/user/steps/get-assignable-roles.d.ts.map +0 -1
- package/dist/user/steps/get-assignable-roles.js +0 -62
- package/dist/user/steps/get-assignable-roles.js.map +0 -1
- package/dist/user/steps/validate-user-role-permissions.d.ts +0 -22
- package/dist/user/steps/validate-user-role-permissions.d.ts.map +0 -1
- package/dist/user/steps/validate-user-role-permissions.js +0 -60
- package/dist/user/steps/validate-user-role-permissions.js.map +0 -1
- package/dist/user/workflows/assign-user-roles.d.ts +0 -28
- package/dist/user/workflows/assign-user-roles.d.ts.map +0 -1
- package/dist/user/workflows/assign-user-roles.js +0 -49
- package/dist/user/workflows/assign-user-roles.js.map +0 -1
- package/dist/user/workflows/get-assignable-policies.d.ts.map +0 -1
- package/dist/user/workflows/get-assignable-policies.js.map +0 -1
- package/dist/user/workflows/get-assignable-roles.d.ts.map +0 -1
- package/dist/user/workflows/get-assignable-roles.js.map +0 -1
- package/dist/user/workflows/remove-user-roles.d.ts +0 -28
- package/dist/user/workflows/remove-user-roles.d.ts.map +0 -1
- package/dist/user/workflows/remove-user-roles.js +0 -47
- package/dist/user/workflows/remove-user-roles.js.map +0 -1
package/AGENTS.md
CHANGED
|
@@ -98,4 +98,4 @@ cd packages/core/core-flows && ../../../node_modules/.bin/jest src/cart/utils/__
|
|
|
98
98
|
- `emitEventStep` emits with the workflow's `eventGroupId`; its compensation clears those grouped events, so emit inside the workflow rather than calling the event bus directly.
|
|
99
99
|
- `createCartWorkflow` and `updateCartWorkflow` call `findOrCreateCustomerStep` with `hasAccount: false`: a cart email only resolves to a guest customer. A registered customer is set on a cart only through `customer_id` (the authenticated customer) or `transferCartCustomerWorkflow`.
|
|
100
100
|
- Adding a step to an existing workflow that already uses the same step needs a unique `.config({ name })`, or registration fails with `Step <name> is already defined in workflow.`
|
|
101
|
-
- `createCustomerAccountWorkflow` requires the customer's email to match
|
|
101
|
+
- `createCustomerAccountWorkflow` requires the customer's email to match a provider identity's `user_metadata.email`, or its `entity_id` when the provider is `emailpass` or the `entity_id` is an email, ignoring case and surrounding whitespace. Otherwise it throws an `UNAUTHORIZED` error. The check is skipped only when no provider identity has an email this way (e.g. phone auth), so custom providers whose `entity_id` isn't an email should set `user_metadata.email`. Add extra checks through the workflow's `validate` hook.
|
|
@@ -1,4 +1,47 @@
|
|
|
1
|
-
import type { ProjectConfigOptions } from "@medusajs/framework/types";
|
|
1
|
+
import type { ProjectConfigOptions, RbacScope } from "@medusajs/framework/types";
|
|
2
|
+
export type GenerateResetPasswordTokenWorkflowInput = {
|
|
3
|
+
/**
|
|
4
|
+
* The identifier of the auth identity, such as the user's email.
|
|
5
|
+
*/
|
|
6
|
+
entityId: string;
|
|
7
|
+
/**
|
|
8
|
+
* The actor type, such as `user` or `customer`. Also used as the role
|
|
9
|
+
* assignment reference when validating the granting actor.
|
|
10
|
+
*/
|
|
11
|
+
actorType: string;
|
|
12
|
+
provider: string;
|
|
13
|
+
secret: ProjectConfigOptions["http"]["jwtSecret"];
|
|
14
|
+
jwtOptions?: ProjectConfigOptions["http"]["jwtOptions"];
|
|
15
|
+
metadata?: Record<string, unknown>;
|
|
16
|
+
/**
|
|
17
|
+
* The ID of the actor (e.g. user ID) the token is generated for. Required
|
|
18
|
+
* when `granting_actor_id` is provided.
|
|
19
|
+
*
|
|
20
|
+
* @since 2.23.0
|
|
21
|
+
*/
|
|
22
|
+
actor_id?: string;
|
|
23
|
+
/**
|
|
24
|
+
* The ID of the actor generating the token on behalf of `actor_id`. When set,
|
|
25
|
+
* the workflow validates that this actor holds all the policies of the
|
|
26
|
+
* target's roles, so a token can't be used to take over a more privileged
|
|
27
|
+
* account. Omit it for self-service resets.
|
|
28
|
+
*
|
|
29
|
+
* @since 2.23.0
|
|
30
|
+
*/
|
|
31
|
+
granting_actor_id?: string;
|
|
32
|
+
/**
|
|
33
|
+
* The granting actor's type. Defaults to `user`.
|
|
34
|
+
*
|
|
35
|
+
* @since 2.23.0
|
|
36
|
+
*/
|
|
37
|
+
granting_actor?: string;
|
|
38
|
+
/**
|
|
39
|
+
* The scope the granting actor is acting within.
|
|
40
|
+
*
|
|
41
|
+
* @since 2.23.0
|
|
42
|
+
*/
|
|
43
|
+
granting_scope?: RbacScope;
|
|
44
|
+
};
|
|
2
45
|
/**
|
|
3
46
|
* This workflow generates a reset password token for a user. It's used by the
|
|
4
47
|
* [Generate Reset Password Token for Admin](https://docs.medusajs.com/api/admin/auth/generate-reset-password-token)
|
|
@@ -30,12 +73,5 @@ import type { ProjectConfigOptions } from "@medusajs/framework/types";
|
|
|
30
73
|
*
|
|
31
74
|
* @since 2.16.0
|
|
32
75
|
*/
|
|
33
|
-
export declare const generateResetPasswordTokenWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<
|
|
34
|
-
entityId: string;
|
|
35
|
-
actorType: string;
|
|
36
|
-
provider: string;
|
|
37
|
-
secret: ProjectConfigOptions["http"]["jwtSecret"];
|
|
38
|
-
jwtOptions?: ProjectConfigOptions["http"]["jwtOptions"];
|
|
39
|
-
metadata?: Record<string, unknown>;
|
|
40
|
-
}, string, []>;
|
|
76
|
+
export declare const generateResetPasswordTokenWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<GenerateResetPasswordTokenWorkflowInput, string, []>;
|
|
41
77
|
//# sourceMappingURL=generate-reset-password-token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-reset-password-token.d.ts","sourceRoot":"","sources":["../../../src/auth/workflows/generate-reset-password-token.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-reset-password-token.d.ts","sourceRoot":"","sources":["../../../src/auth/workflows/generate-reset-password-token.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAuChF,MAAM,MAAM,uCAAuC,GAAG;IACpD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAA;IACjD,UAAU,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAA;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,SAAS,CAAA;CAC3B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,kCAAkC,iHAiF9C,CAAA"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateResetPasswordTokenWorkflow = void 0;
|
|
4
|
+
const modules_sdk_1 = require("@medusajs/framework/modules-sdk");
|
|
4
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
6
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
7
|
const common_1 = require("../../common");
|
|
7
|
-
const steps_1 = require("
|
|
8
|
+
const steps_1 = require("../../rbac/steps");
|
|
9
|
+
const steps_2 = require("../steps");
|
|
8
10
|
const RESET_PASSWORD_TOKEN_TTL_SECONDS = 15 * 60;
|
|
11
|
+
/**
|
|
12
|
+
* Ensures the target actor is known when a granting actor is provided, so the
|
|
13
|
+
* granting actor's permissions can be validated against the target's roles.
|
|
14
|
+
*/
|
|
15
|
+
const validateGrantedStep = (0, workflows_sdk_1.createStep)("validate-granted", async (input) => {
|
|
16
|
+
if (!!input.granting_actor_id && !input.actor_id) {
|
|
17
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "actor_id is required when granting_actor_id is provided");
|
|
18
|
+
}
|
|
19
|
+
});
|
|
9
20
|
/**
|
|
10
21
|
* This workflow generates a reset password token for a user. It's used by the
|
|
11
22
|
* [Generate Reset Password Token for Admin](https://docs.medusajs.com/api/admin/auth/generate-reset-password-token)
|
|
@@ -38,7 +49,31 @@ const RESET_PASSWORD_TOKEN_TTL_SECONDS = 15 * 60;
|
|
|
38
49
|
* @since 2.16.0
|
|
39
50
|
*/
|
|
40
51
|
exports.generateResetPasswordTokenWorkflow = (0, workflows_sdk_1.createWorkflow)("generate-reset-password-token", (input) => {
|
|
41
|
-
|
|
52
|
+
(0, workflows_sdk_1.when)({}, () => modules_sdk_1.MedusaModule.isInstalled(utils_1.Modules.RBAC)).then(() => {
|
|
53
|
+
validateGrantedStep({
|
|
54
|
+
actor_id: input.actor_id,
|
|
55
|
+
granting_actor_id: input.granting_actor_id,
|
|
56
|
+
});
|
|
57
|
+
const targetReferenceIds = (0, workflows_sdk_1.transform)({ input }, ({ input }) => [
|
|
58
|
+
input.actor_id,
|
|
59
|
+
]);
|
|
60
|
+
const targetAssignments = (0, steps_1.getRoleAssignmentsStep)({
|
|
61
|
+
reference: input.actorType,
|
|
62
|
+
reference_id: targetReferenceIds,
|
|
63
|
+
});
|
|
64
|
+
(0, steps_1.validateActorRolePermissionsStep)({
|
|
65
|
+
actor_id: input.granting_actor_id,
|
|
66
|
+
actor: input.granting_actor,
|
|
67
|
+
granting_scope: input.granting_scope,
|
|
68
|
+
assignments: (0, workflows_sdk_1.transform)({ targetAssignments }, ({ targetAssignments }) => targetAssignments.map((assignment) => ({
|
|
69
|
+
role_id: assignment.role_id,
|
|
70
|
+
scope: assignment.scope && assignment.scope_id
|
|
71
|
+
? { type: assignment.scope, id: assignment.scope_id }
|
|
72
|
+
: undefined,
|
|
73
|
+
}))),
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
const resetToken = (0, steps_2.createPasswordResetTokenStep)({
|
|
42
77
|
entityId: input.entityId,
|
|
43
78
|
provider: input.provider,
|
|
44
79
|
ttlSeconds: RESET_PASSWORD_TOKEN_TTL_SECONDS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-reset-password-token.js","sourceRoot":"","sources":["../../../src/auth/workflows/generate-reset-password-token.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generate-reset-password-token.js","sourceRoot":"","sources":["../../../src/auth/workflows/generate-reset-password-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,10 @@ export declare const validateCustomerAccountCreationStepId = "validate-customer-
|
|
|
5
5
|
* The step throws an error if:
|
|
6
6
|
*
|
|
7
7
|
* - The email is missing
|
|
8
|
-
* - An auth identity is provided, and the email doesn't match the
|
|
9
|
-
*
|
|
8
|
+
* - An auth identity is provided, and the email doesn't match the `user_metadata.email`
|
|
9
|
+
* of any of its provider identities, or the `entity_id` of an `emailpass` provider
|
|
10
|
+
* identity or of one whose `entity_id` is an email. The check is skipped when none
|
|
11
|
+
* of the provider identities has an email this way.
|
|
10
12
|
* - A customer with the email already exists and has an account
|
|
11
13
|
* - A guest customer with the email already exists
|
|
12
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-customer-account-creation.d.ts","sourceRoot":"","sources":["../../../src/customer/steps/validate-customer-account-creation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate-customer-account-creation.d.ts","sourceRoot":"","sources":["../../../src/customer/steps/validate-customer-account-creation.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAA;AAEjE,eAAO,MAAM,qCAAqC,uCACZ,CAAA;AAItC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,+BAA+B,uGAwE3C,CAAA"}
|
|
@@ -4,13 +4,16 @@ exports.validateCustomerAccountCreation = exports.validateCustomerAccountCreatio
|
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
6
|
exports.validateCustomerAccountCreationStepId = "validate-customer-account-creation";
|
|
7
|
+
const EMAILPASS_PROVIDER = "emailpass";
|
|
7
8
|
/**
|
|
8
9
|
* This step validates the input data for creating a customer account.
|
|
9
10
|
* The step throws an error if:
|
|
10
11
|
*
|
|
11
12
|
* - The email is missing
|
|
12
|
-
* - An auth identity is provided, and the email doesn't match the
|
|
13
|
-
*
|
|
13
|
+
* - An auth identity is provided, and the email doesn't match the `user_metadata.email`
|
|
14
|
+
* of any of its provider identities, or the `entity_id` of an `emailpass` provider
|
|
15
|
+
* identity or of one whose `entity_id` is an email. The check is skipped when none
|
|
16
|
+
* of the provider identities has an email this way.
|
|
14
17
|
* - A customer with the email already exists and has an account
|
|
15
18
|
* - A guest customer with the email already exists
|
|
16
19
|
*
|
|
@@ -35,16 +38,21 @@ exports.validateCustomerAccountCreation = (0, workflows_sdk_1.createStep)(export
|
|
|
35
38
|
const authIdentity = await authService.retrieveAuthIdentity(input.authIdentityId, { relations: ["provider_identities"] });
|
|
36
39
|
const identityEmails = (authIdentity.provider_identities ?? [])
|
|
37
40
|
.flatMap((providerIdentity) => {
|
|
41
|
+
const entityId = (0, utils_1.normalizeString)(providerIdentity.entity_id);
|
|
38
42
|
const userMetadataEmail = providerIdentity.user_metadata?.email;
|
|
39
43
|
return [
|
|
40
|
-
|
|
44
|
+
providerIdentity.provider === EMAILPASS_PROVIDER ||
|
|
45
|
+
(0, utils_1.isEmail)(entityId)
|
|
46
|
+
? entityId
|
|
47
|
+
: undefined,
|
|
41
48
|
(0, utils_1.isString)(userMetadataEmail)
|
|
42
49
|
? (0, utils_1.normalizeString)(userMetadataEmail)
|
|
43
50
|
: undefined,
|
|
44
51
|
];
|
|
45
52
|
})
|
|
46
|
-
.filter(
|
|
47
|
-
if (
|
|
53
|
+
.filter((identityEmail) => !!identityEmail);
|
|
54
|
+
if (identityEmails.length &&
|
|
55
|
+
!identityEmails.includes((0, utils_1.normalizeString)(email))) {
|
|
48
56
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNAUTHORIZED, "The customer's email must match the email of the authenticated identity");
|
|
49
57
|
}
|
|
50
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-customer-account-creation.js","sourceRoot":"","sources":["../../../src/customer/steps/validate-customer-account-creation.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"validate-customer-account-creation.js","sourceRoot":"","sources":["../../../src/customer/steps/validate-customer-account-creation.ts"],"names":[],"mappings":";;;AACA,qDAMkC;AAClC,qEAA8D;AAGjD,QAAA,qCAAqC,GAChD,oCAAoC,CAAA;AAEtC,MAAM,kBAAkB,GAAG,WAAW,CAAA;AAEtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACU,QAAA,+BAA+B,GAAG,IAAA,0BAAU,EACvD,6CAAqC,EACrC,KAAK,EAAE,KAAyC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IACjE,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,eAAO,CAAC,QAAQ,CAAC,CAAA;IAE3D,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,YAAY,CAAA;IAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,mBAAW,CACnB,mBAAW,CAAC,KAAK,CAAC,YAAY,EAC9B,wCAAwC,CACzC,CAAA;IACH,CAAC;IAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAqB,eAAO,CAAC,IAAI,CAAC,CAAA;QACvE,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,oBAAoB,CACzD,KAAK,CAAC,cAAc,EACpB,EAAE,SAAS,EAAE,CAAC,qBAAqB,CAAC,EAAE,CACvC,CAAA;QAED,MAAM,cAAc,GAAG,CAAC,YAAY,CAAC,mBAAmB,IAAI,EAAE,CAAC;aAC5D,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;YAC5D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAA;YAE/D,OAAO;gBACL,gBAAgB,CAAC,QAAQ,KAAK,kBAAkB;oBAChD,IAAA,eAAO,EAAC,QAAQ,CAAC;oBACf,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,SAAS;gBACb,IAAA,gBAAQ,EAAC,iBAAiB,CAAC;oBACzB,CAAC,CAAC,IAAA,uBAAe,EAAC,iBAAiB,CAAC;oBACpC,CAAC,CAAC,SAAS;aACd,CAAA;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,aAAa,EAA2B,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;QAEtE,IACE,cAAc,CAAC,MAAM;YACrB,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC,EAChD,CAAC;YACD,MAAM,IAAI,mBAAW,CACnB,mBAAW,CAAC,KAAK,CAAC,YAAY,EAC9B,yEAAyE,CAC1E,CAAA;QACH,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAExE,IAAI,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC9B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CACnC,CAAA;QAED,IAAI,kBAAkB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,IAAI,mBAAW,CACnB,mBAAW,CAAC,KAAK,CAAC,eAAe,EACjC,iDAAiD,CAClD,CAAA;QACH,CAAC;QAED,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,IAAI,mBAAW,CACnB,mBAAW,CAAC,KAAK,CAAC,eAAe,EACjC,+CAA+C,CAChD,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC,CACF,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CreateCustomerDTO, CustomerDTO } from "@medusajs/framework/types";
|
|
2
|
+
import { WorkflowData } from "@medusajs/framework/workflows-sdk";
|
|
2
3
|
/**
|
|
3
4
|
* The details of the customer account to create.
|
|
4
5
|
*/
|
|
@@ -39,6 +40,10 @@ export declare const createCustomerAccountWorkflowId = "create-customer-account"
|
|
|
39
40
|
* @summary
|
|
40
41
|
*
|
|
41
42
|
* Create or register a customer account.
|
|
43
|
+
*
|
|
44
|
+
* @property hooks.validate - This hook is executed after the built-in validation and before the customer is created. You can consume this hook to perform any custom validation. If validation fails, you can throw an error to stop the workflow execution.
|
|
42
45
|
*/
|
|
43
|
-
export declare const createCustomerAccountWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<CreateCustomerAccountWorkflowInput, CustomerDTO, [
|
|
46
|
+
export declare const createCustomerAccountWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<CreateCustomerAccountWorkflowInput, CustomerDTO, [import("@medusajs/framework/workflows-sdk").Hook<"validate", {
|
|
47
|
+
input: WorkflowData<CreateCustomerAccountWorkflowInput>;
|
|
48
|
+
}, unknown>]>;
|
|
44
49
|
//# sourceMappingURL=create-customer-account.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-customer-account.d.ts","sourceRoot":"","sources":["../../../src/customer/workflows/create-customer-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"create-customer-account.d.ts","sourceRoot":"","sources":["../../../src/customer/workflows/create-customer-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAIL,YAAY,EAEb,MAAM,mCAAmC,CAAA;AAK1C;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG;IAC/C;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,YAAY,EAAE,iBAAiB,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,+BAA+B,4BAA4B,CAAA;AACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,6BAA6B;;aAqCzC,CAAA"}
|
|
@@ -32,9 +32,14 @@ exports.createCustomerAccountWorkflowId = "create-customer-account";
|
|
|
32
32
|
* @summary
|
|
33
33
|
*
|
|
34
34
|
* Create or register a customer account.
|
|
35
|
+
*
|
|
36
|
+
* @property hooks.validate - This hook is executed after the built-in validation and before the customer is created. You can consume this hook to perform any custom validation. If validation fails, you can throw an error to stop the workflow execution.
|
|
35
37
|
*/
|
|
36
38
|
exports.createCustomerAccountWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.createCustomerAccountWorkflowId, (input) => {
|
|
37
39
|
(0, validate_customer_account_creation_1.validateCustomerAccountCreation)(input);
|
|
40
|
+
const validate = (0, workflows_sdk_1.createHook)("validate", {
|
|
41
|
+
input,
|
|
42
|
+
});
|
|
38
43
|
const customerData = (0, workflows_sdk_1.transform)({ input }, (data) => {
|
|
39
44
|
return {
|
|
40
45
|
...data.input.customerData,
|
|
@@ -52,6 +57,8 @@ exports.createCustomerAccountWorkflow = (0, workflows_sdk_1.createWorkflow)(expo
|
|
|
52
57
|
actorType: "customer",
|
|
53
58
|
value: customer.id,
|
|
54
59
|
});
|
|
55
|
-
return new workflows_sdk_1.WorkflowResponse(customer
|
|
60
|
+
return new workflows_sdk_1.WorkflowResponse(customer, {
|
|
61
|
+
hooks: [validate],
|
|
62
|
+
});
|
|
56
63
|
});
|
|
57
64
|
//# sourceMappingURL=create-customer-account.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-customer-account.js","sourceRoot":"","sources":["../../../src/customer/workflows/create-customer-account.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"create-customer-account.js","sourceRoot":"","sources":["../../../src/customer/workflows/create-customer-account.ts"],"names":[],"mappings":";;;AACA,qEAM0C;AAC1C,qCAAmD;AACnD,oGAA6F;AAC7F,yDAA4D;AAgB/C,QAAA,+BAA+B,GAAG,yBAAyB,CAAA;AACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACU,QAAA,6BAA6B,GAAG,IAAA,8BAAc,EACzD,uCAA+B,EAC/B,CAAC,KAAuD,EAAE,EAAE;IAC1D,IAAA,oEAA+B,EAAC,KAAK,CAAC,CAAA;IAEtC,MAAM,QAAQ,GAAG,IAAA,0BAAU,EAAC,UAAU,EAAE;QACtC,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAA,yBAAS,EAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;QACjD,OAAO;YACL,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY;YAC1B,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc;SACzC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,0CAAuB,CAAC,SAAS,CAAC;QAClD,KAAK,EAAE;YACL,aAAa,EAAE,CAAC,YAAY,CAAC;SAC9B;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAA,yBAAS,EACxB,SAAS,EACT,CAAC,SAAwB,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAC3C,CAAA;IAED,IAAA,6BAAsB,EAAC;QACrB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,SAAS,EAAE,UAAU;QACrB,KAAK,EAAE,QAAQ,CAAC,EAAE;KACnB,CAAC,CAAA;IAEF,OAAO,IAAI,gCAAgB,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,CAAC,QAAQ,CAAC;KAClB,CAAC,CAAA;AACJ,CAAC,CACF,CAAA"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
+
import { CreateActorRoleDTO } from "@medusajs/framework/types";
|
|
1
2
|
/**
|
|
2
3
|
* @ignore
|
|
3
|
-
* @featureFlag rbac
|
|
4
4
|
*/
|
|
5
5
|
export interface GetInviteRolesStepInput {
|
|
6
6
|
invite_id: string;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* @ignore
|
|
10
|
-
* @featureFlag rbac
|
|
11
10
|
*/
|
|
12
11
|
export declare const getInviteRolesStepId = "get-invite-roles-step";
|
|
13
12
|
/**
|
|
14
|
-
* This step retrieves the roles associated with an invite
|
|
13
|
+
* This step retrieves the roles associated with an invite, each carrying the
|
|
14
|
+
* scope of its assignment, so the roles can be re-assigned as-is to the user
|
|
15
|
+
* created when the invite is accepted.
|
|
15
16
|
*
|
|
16
17
|
* @example
|
|
17
18
|
* const data = getInviteRolesStep({
|
|
18
19
|
* invite_id: "invite_123"
|
|
19
20
|
* })
|
|
20
21
|
* @ignore
|
|
21
|
-
* @featureFlag rbac
|
|
22
22
|
*/
|
|
23
|
-
export declare const getInviteRolesStep: import("@medusajs/framework/workflows-sdk").StepFunction<GetInviteRolesStepInput,
|
|
23
|
+
export declare const getInviteRolesStep: import("@medusajs/framework/workflows-sdk").StepFunction<GetInviteRolesStepInput, CreateActorRoleDTO[]>;
|
|
24
24
|
//# sourceMappingURL=get-invite-roles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-invite-roles.d.ts","sourceRoot":"","sources":["../../../src/invite/steps/get-invite-roles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-invite-roles.d.ts","sourceRoot":"","sources":["../../../src/invite/steps/get-invite-roles.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAEnB,MAAM,2BAA2B,CAAA;AAIlC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,0BAA0B,CAAA;AAC3D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,yGAyB9B,CAAA"}
|
|
@@ -1,33 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getInviteRolesStep = exports.getInviteRolesStepId = void 0;
|
|
4
|
+
const modules_sdk_1 = require("@medusajs/framework/modules-sdk");
|
|
4
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
6
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
7
|
/**
|
|
7
8
|
* @ignore
|
|
8
|
-
* @featureFlag rbac
|
|
9
9
|
*/
|
|
10
10
|
exports.getInviteRolesStepId = "get-invite-roles-step";
|
|
11
11
|
/**
|
|
12
|
-
* This step retrieves the roles associated with an invite
|
|
12
|
+
* This step retrieves the roles associated with an invite, each carrying the
|
|
13
|
+
* scope of its assignment, so the roles can be re-assigned as-is to the user
|
|
14
|
+
* created when the invite is accepted.
|
|
13
15
|
*
|
|
14
16
|
* @example
|
|
15
17
|
* const data = getInviteRolesStep({
|
|
16
18
|
* invite_id: "invite_123"
|
|
17
19
|
* })
|
|
18
20
|
* @ignore
|
|
19
|
-
* @featureFlag rbac
|
|
20
21
|
*/
|
|
21
22
|
exports.getInviteRolesStep = (0, workflows_sdk_1.createStep)(exports.getInviteRolesStepId, async (input, { container }) => {
|
|
22
|
-
|
|
23
|
-
const linkService = remoteLink.getLinkModule(utils_1.Modules.USER, "invite_id", utils_1.Modules.RBAC, "rbac_role_id");
|
|
24
|
-
if (!linkService) {
|
|
23
|
+
if (!modules_sdk_1.MedusaModule.isInstalled(utils_1.Modules.RBAC)) {
|
|
25
24
|
return new workflows_sdk_1.StepResponse([]);
|
|
26
25
|
}
|
|
27
|
-
const
|
|
28
|
-
|
|
26
|
+
const service = container.resolve(utils_1.Modules.RBAC);
|
|
27
|
+
const assignments = await service.listRbacRoleAssignments({
|
|
28
|
+
reference: "invite",
|
|
29
|
+
reference_id: input.invite_id,
|
|
29
30
|
});
|
|
30
|
-
const
|
|
31
|
-
|
|
31
|
+
const roles = assignments.map((assignment) => {
|
|
32
|
+
return assignment.scope && assignment.scope_id
|
|
33
|
+
? {
|
|
34
|
+
role_id: assignment.role_id,
|
|
35
|
+
scopes: [{ type: assignment.scope, id: assignment.scope_id }],
|
|
36
|
+
}
|
|
37
|
+
: { role_id: assignment.role_id };
|
|
38
|
+
});
|
|
39
|
+
return new workflows_sdk_1.StepResponse(roles);
|
|
32
40
|
});
|
|
33
41
|
//# sourceMappingURL=get-invite-roles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-invite-roles.js","sourceRoot":"","sources":["../../../src/invite/steps/get-invite-roles.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"get-invite-roles.js","sourceRoot":"","sources":["../../../src/invite/steps/get-invite-roles.ts"],"names":[],"mappings":";;;AAAA,iEAA8D;AAK9D,qDAAmD;AACnD,qEAA4E;AAS5E;;GAEG;AACU,QAAA,oBAAoB,GAAG,uBAAuB,CAAA;AAC3D;;;;;;;;;;GAUG;AACU,QAAA,kBAAkB,GAAG,IAAA,0BAAU,EAC1C,4BAAoB,EACpB,KAAK,EAAE,KAA8B,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IACtD,IAAI,CAAC,0BAAY,CAAC,WAAW,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,4BAAY,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAqB,eAAO,CAAC,IAAI,CAAC,CAAA;IAEnE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC;QACxD,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,KAAK,CAAC,SAAS;KAC9B,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAsB,EAAE;QAC/D,OAAO,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ;YAC5C,CAAC,CAAC;gBACE,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;aAC9D;YACH,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,4BAAY,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC,CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/invite/steps/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/invite/steps/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA"}
|
|
@@ -18,6 +18,5 @@ __exportStar(require("./create-invites"), exports);
|
|
|
18
18
|
__exportStar(require("./delete-invites"), exports);
|
|
19
19
|
__exportStar(require("./get-invite-roles"), exports);
|
|
20
20
|
__exportStar(require("./refresh-invite-tokens"), exports);
|
|
21
|
-
__exportStar(require("./validate-roles-exist"), exports);
|
|
22
21
|
__exportStar(require("./validate-token"), exports);
|
|
23
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/invite/steps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,mDAAgC;AAChC,qDAAkC;AAClC,0DAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/invite/steps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,mDAAgC;AAChC,qDAAkC;AAClC,0DAAuC;AACvC,mDAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accept-invite.d.ts","sourceRoot":"","sources":["../../../src/invite/workflows/accept-invite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"accept-invite.d.ts","sourceRoot":"","sources":["../../../src/invite/workflows/accept-invite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAmBxE,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,oBAAoB,wHAgEhC,CAAA"}
|
|
@@ -5,8 +5,9 @@ const utils_1 = require("@medusajs/framework/utils");
|
|
|
5
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
6
|
const auth_1 = require("../../auth");
|
|
7
7
|
const emit_event_1 = require("../../common/steps/emit-event");
|
|
8
|
+
const steps_1 = require("../../rbac/steps");
|
|
8
9
|
const user_1 = require("../../user");
|
|
9
|
-
const
|
|
10
|
+
const steps_2 = require("../steps");
|
|
10
11
|
const validate_token_1 = require("../steps/validate-token");
|
|
11
12
|
exports.acceptInviteWorkflowId = "accept-invite-workflow";
|
|
12
13
|
/**
|
|
@@ -41,7 +42,7 @@ exports.acceptInviteWorkflowId = "accept-invite-workflow";
|
|
|
41
42
|
exports.acceptInviteWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.acceptInviteWorkflowId, (input) => {
|
|
42
43
|
const invite = (0, validate_token_1.validateTokenStep)(input.invite_token);
|
|
43
44
|
// Get roles associated with the invite
|
|
44
|
-
const inviteRoles = (0,
|
|
45
|
+
const inviteRoles = (0, steps_2.getInviteRolesStep)({ invite_id: invite.id });
|
|
45
46
|
const createUserInput = (0, workflows_sdk_1.transform)({ input, invite, inviteRoles }, ({ input, invite, inviteRoles }) => {
|
|
46
47
|
return [
|
|
47
48
|
{
|
|
@@ -64,7 +65,15 @@ exports.acceptInviteWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.accep
|
|
|
64
65
|
value: createdUser.id,
|
|
65
66
|
};
|
|
66
67
|
});
|
|
67
|
-
|
|
68
|
+
// The created user's role assignments are created by createUsersWorkflow
|
|
69
|
+
// from the invite's roles. Transfer completes by removing the invite's own
|
|
70
|
+
// assignments once the user has been created.
|
|
71
|
+
const roleAssignments = (0, steps_1.getRoleAssignmentsStep)({
|
|
72
|
+
reference: "invite",
|
|
73
|
+
reference_id: [invite.id],
|
|
74
|
+
});
|
|
75
|
+
const roleAssignmentIdsToDelete = (0, workflows_sdk_1.transform)({ roleAssignments }, ({ roleAssignments }) => roleAssignments.map((assignment) => assignment.id));
|
|
76
|
+
(0, workflows_sdk_1.parallelize)((0, auth_1.setAuthAppMetadataStep)(authUserInput), (0, steps_2.deleteInvitesStep)([invite.id]), (0, steps_1.deleteRoleAssignmentsStep)({ id: roleAssignmentIdsToDelete }), (0, emit_event_1.emitEventStep)({
|
|
68
77
|
eventName: utils_1.InviteWorkflowEvents.ACCEPTED,
|
|
69
78
|
data: { id: invite.id },
|
|
70
79
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accept-invite.js","sourceRoot":"","sources":["../../../src/invite/workflows/accept-invite.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAChE,qEAM0C;AAC1C,qCAAmD;AACnD,8DAA6D;AAC7D,qCAAgD;AAChD,oCAAgE;AAChE,4DAA2D;AAE9C,QAAA,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACU,QAAA,oBAAoB,GAAG,IAAA,8BAAc,EAChD,8BAAsB,EACtB,CACE,KAAgE,EACnC,EAAE;IAC/B,MAAM,MAAM,GAAG,IAAA,kCAAiB,EAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAEpD,uCAAuC;IACvC,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IAEhE,MAAM,eAAe,GAAG,IAAA,yBAAS,EAC/B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAC9B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;QACjC,OAAO;YACL;gBACE,GAAG,KAAK,CAAC,IAAI;gBACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;gBACvC,KAAK,EAAE,WAAW;aACnB;SACF,CAAA;IACH,CAAC,CACF,CAAA;IAED,MAAM,KAAK,GAAG,0BAAmB,CAAC,SAAS,CAAC;QAC1C,KAAK,EAAE;YACL,KAAK,EAAE,eAAe;SACvB;KACF,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,IAAA,yBAAS,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACrE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAE5B,OAAO;YACL,cAAc,EAAE,KAAK,CAAC,gBAAgB;YACtC,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,WAAW,CAAC,EAAE;SACtB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,2BAAW,EACT,IAAA,6BAAsB,EAAC,aAAa,CAAC,EACrC,IAAA,yBAAiB,EAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAC9B,IAAA,0BAAa,EAAC;QACZ,SAAS,EAAE,4BAAoB,CAAC,QAAQ;QACxC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;KACxB,CAAC,CACH,CAAA;IAED,OAAO,IAAI,gCAAgB,CAAC,KAAK,CAAC,CAAA;AACpC,CAAC,CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"accept-invite.js","sourceRoot":"","sources":["../../../src/invite/workflows/accept-invite.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAChE,qEAM0C;AAC1C,qCAAmD;AACnD,8DAA6D;AAC7D,4CAGyB;AACzB,qCAAgD;AAChD,oCAAgE;AAChE,4DAA2D;AAE9C,QAAA,sBAAsB,GAAG,wBAAwB,CAAA;AAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACU,QAAA,oBAAoB,GAAG,IAAA,8BAAc,EAChD,8BAAsB,EACtB,CACE,KAAgE,EACnC,EAAE;IAC/B,MAAM,MAAM,GAAG,IAAA,kCAAiB,EAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAEpD,uCAAuC;IACvC,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IAEhE,MAAM,eAAe,GAAG,IAAA,yBAAS,EAC/B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAC9B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;QACjC,OAAO;YACL;gBACE,GAAG,KAAK,CAAC,IAAI;gBACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;gBACvC,KAAK,EAAE,WAAW;aACnB;SACF,CAAA;IACH,CAAC,CACF,CAAA;IAED,MAAM,KAAK,GAAG,0BAAmB,CAAC,SAAS,CAAC;QAC1C,KAAK,EAAE;YACL,KAAK,EAAE,eAAe;SACvB;KACF,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,IAAA,yBAAS,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACrE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAE5B,OAAO;YACL,cAAc,EAAE,KAAK,CAAC,gBAAgB;YACtC,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,WAAW,CAAC,EAAE;SACtB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,yEAAyE;IACzE,2EAA2E;IAC3E,8CAA8C;IAC9C,MAAM,eAAe,GAAG,IAAA,8BAAsB,EAAC;QAC7C,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1B,CAAC,CAAA;IACF,MAAM,yBAAyB,GAAG,IAAA,yBAAS,EACzC,EAAE,eAAe,EAAE,EACnB,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CACtB,eAAe,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CACrD,CAAA;IAED,IAAA,2BAAW,EACT,IAAA,6BAAsB,EAAC,aAAa,CAAC,EACrC,IAAA,yBAAiB,EAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAC9B,IAAA,iCAAyB,EAAC,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,EAC5D,IAAA,0BAAa,EAAC;QACZ,SAAS,EAAE,4BAAoB,CAAC,QAAQ;QACxC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;KACxB,CAAC,CACH,CAAA;IAED,OAAO,IAAI,gCAAgB,CAAC,KAAK,CAAC,CAAA;AACpC,CAAC,CACF,CAAA"}
|
|
@@ -5,6 +5,8 @@ export declare const createInvitesWorkflowId = "create-invite-step";
|
|
|
5
5
|
* [Create Invite Admin API Route](https://docs.medusajs.com/api/admin/invites/create-invite).
|
|
6
6
|
*
|
|
7
7
|
* You can provide roles to be assigned to each user when the invite is accepted.
|
|
8
|
+
* Each role can be constrained to one or more scopes, creating one role
|
|
9
|
+
* assignment per scope.
|
|
8
10
|
*
|
|
9
11
|
* You can use this workflow within your customizations or your own custom workflows, allowing you to
|
|
10
12
|
* create invites within your custom flows.
|
|
@@ -16,7 +18,13 @@ export declare const createInvitesWorkflowId = "create-invite-step";
|
|
|
16
18
|
* invites: [
|
|
17
19
|
* {
|
|
18
20
|
* email: "example@gmail.com",
|
|
19
|
-
* roles: [
|
|
21
|
+
* roles: [
|
|
22
|
+
* { role_id: "role_super_admin" },
|
|
23
|
+
* {
|
|
24
|
+
* role_id: "role_editor",
|
|
25
|
+
* scopes: [{ type: "organization", id: "org_123" }]
|
|
26
|
+
* }
|
|
27
|
+
* ]
|
|
20
28
|
* }
|
|
21
29
|
* ]
|
|
22
30
|
* }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-invites.d.ts","sourceRoot":"","sources":["../../../src/invite/workflows/create-invites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"create-invites.d.ts","sourceRoot":"","sources":["../../../src/invite/workflows/create-invites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAoB1E,eAAO,MAAM,uBAAuB,uBAAuB,CAAA;AAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,qBAAqB,2HAiEjC,CAAA"}
|
|
@@ -3,15 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createInvitesWorkflow = exports.createInvitesWorkflowId = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
-
const create_remote_links_1 = require("../../common/steps/create-remote-links");
|
|
7
6
|
const emit_event_1 = require("../../common/steps/emit-event");
|
|
8
7
|
const steps_1 = require("../steps");
|
|
8
|
+
const steps_2 = require("../../rbac/steps");
|
|
9
|
+
const build_role_assignments_1 = require("../../rbac/utils/build-role-assignments");
|
|
9
10
|
exports.createInvitesWorkflowId = "create-invite-step";
|
|
10
11
|
/**
|
|
11
12
|
* This workflow creates one or more user invites. It's used by the
|
|
12
13
|
* [Create Invite Admin API Route](https://docs.medusajs.com/api/admin/invites/create-invite).
|
|
13
14
|
*
|
|
14
15
|
* You can provide roles to be assigned to each user when the invite is accepted.
|
|
16
|
+
* Each role can be constrained to one or more scopes, creating one role
|
|
17
|
+
* assignment per scope.
|
|
15
18
|
*
|
|
16
19
|
* You can use this workflow within your customizations or your own custom workflows, allowing you to
|
|
17
20
|
* create invites within your custom flows.
|
|
@@ -23,7 +26,13 @@ exports.createInvitesWorkflowId = "create-invite-step";
|
|
|
23
26
|
* invites: [
|
|
24
27
|
* {
|
|
25
28
|
* email: "example@gmail.com",
|
|
26
|
-
* roles: [
|
|
29
|
+
* roles: [
|
|
30
|
+
* { role_id: "role_super_admin" },
|
|
31
|
+
* {
|
|
32
|
+
* role_id: "role_editor",
|
|
33
|
+
* scopes: [{ type: "organization", id: "org_123" }]
|
|
34
|
+
* }
|
|
35
|
+
* ]
|
|
27
36
|
* }
|
|
28
37
|
* ]
|
|
29
38
|
* }
|
|
@@ -37,28 +46,29 @@ exports.createInvitesWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.crea
|
|
|
37
46
|
const allRoleIds = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
|
|
38
47
|
const roleIds = new Set();
|
|
39
48
|
input.invites.forEach((invite) => {
|
|
40
|
-
for (const
|
|
41
|
-
roleIds.add(
|
|
49
|
+
for (const role of invite.roles || []) {
|
|
50
|
+
roleIds.add(role.role_id);
|
|
42
51
|
}
|
|
43
52
|
});
|
|
44
53
|
return Array.from(roleIds);
|
|
45
54
|
});
|
|
46
|
-
(0,
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
57
|
-
}
|
|
55
|
+
(0, steps_2.validateRolesExistStep)(allRoleIds);
|
|
56
|
+
const roleAssignments = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
|
|
57
|
+
return input.invites.flatMap((invite) => (0, build_role_assignments_1.buildRoleScopePairs)(invite.roles));
|
|
58
|
+
});
|
|
59
|
+
(0, workflows_sdk_1.when)({ roleAssignments, input }, ({ roleAssignments, input }) => !!input.rbac_context?.actor_id && !!roleAssignments.length).then(() => {
|
|
60
|
+
(0, steps_2.validateActorRolePermissionsStep)({
|
|
61
|
+
actor_id: input.rbac_context.actor_id,
|
|
62
|
+
actor: input.rbac_context.actor,
|
|
63
|
+
granting_scope: input.rbac_context.scope,
|
|
64
|
+
assignments: roleAssignments,
|
|
58
65
|
});
|
|
59
|
-
return links;
|
|
60
66
|
});
|
|
61
|
-
(0,
|
|
67
|
+
const createdInvites = (0, steps_1.createInviteStep)(input.invites);
|
|
68
|
+
const inviteRoleAssignments = (0, workflows_sdk_1.transform)({ input, createdInvites }, ({ input, createdInvites }) => {
|
|
69
|
+
return input.invites.flatMap((invite, index) => (0, build_role_assignments_1.buildRoleAssignments)(invite.roles, "invite", createdInvites[index].id));
|
|
70
|
+
});
|
|
71
|
+
(0, steps_2.createRoleAssignmentsStep)(inviteRoleAssignments);
|
|
62
72
|
const invitesIdEvents = (0, workflows_sdk_1.transform)({ createdInvites }, ({ createdInvites }) => {
|
|
63
73
|
return createdInvites.map((v) => {
|
|
64
74
|
return { id: v.id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-invites.js","sourceRoot":"","sources":["../../../src/invite/workflows/create-invites.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"create-invites.js","sourceRoot":"","sources":["../../../src/invite/workflows/create-invites.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-invites.d.ts","sourceRoot":"","sources":["../../../src/invite/workflows/delete-invites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"delete-invites.d.ts","sourceRoot":"","sources":["../../../src/invite/workflows/delete-invites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAe/D,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,uHAgCjC,CAAA"}
|