diff --git a/web/sdk/react/views-new/members/components/remove-member-dialog.tsx b/web/sdk/react/views-new/members/components/remove-member-dialog.tsx index 06ac4b03b..b863e8799 100644 --- a/web/sdk/react/views-new/members/components/remove-member-dialog.tsx +++ b/web/sdk/react/views-new/members/components/remove-member-dialog.tsx @@ -11,7 +11,6 @@ import { import { AlertDialog, Button, - Flex, toastManager } from '@raystack/apsara-v1'; import { useFrontier } from '../../../contexts/FrontierContext'; diff --git a/web/sdk/react/views-new/members/components/update-role-dialog.tsx b/web/sdk/react/views-new/members/components/update-role-dialog.tsx index 21fb0f3f4..5cf63a106 100644 --- a/web/sdk/react/views-new/members/components/update-role-dialog.tsx +++ b/web/sdk/react/views-new/members/components/update-role-dialog.tsx @@ -2,14 +2,12 @@ import { useState } from 'react'; import { create } from '@bufbuild/protobuf'; -import { useMutation, useQuery } from '@connectrpc/connect-query'; +import { useMutation } from '@connectrpc/connect-query'; import { FrontierServiceQueries, - DeletePolicyRequestSchema, - CreatePolicyRequestSchema, - ListPoliciesRequestSchema + SetOrganizationMemberRoleRequestSchema } from '@raystack/proton/frontier'; -import type { Role, Policy } from '@raystack/proton/frontier'; +import type { Role } from '@raystack/proton/frontier'; import { AlertDialog, Button, @@ -56,59 +54,19 @@ function UpdateRoleContent({ }) { const [isLoading, setIsLoading] = useState(false); - const { data: policiesData } = useQuery( - FrontierServiceQueries.listPolicies, - create(ListPoliciesRequestSchema, { - orgId: organizationId, - userId: payload.memberId - }), - { enabled: !!payload.memberId && !!payload.role } - ); - - const { mutateAsync: deletePolicy } = useMutation( - FrontierServiceQueries.deletePolicy - ); - - const { mutateAsync: createPolicy } = useMutation( - FrontierServiceQueries.createPolicy + const { mutateAsync: setMemberRole } = useMutation( + FrontierServiceQueries.setOrganizationMemberRole ); const handleUpdate = async () => { setIsLoading(true); try { - const resource = `app/organization:${organizationId}`; - const principal = `app/user:${payload.memberId}`; - const policies = policiesData?.policies || []; - - const deleteResults = await Promise.allSettled( - policies.map((p: Policy) => { - const req = create(DeletePolicyRequestSchema, { - id: p.id as string - }); - return deletePolicy(req); - }) - ); - - const deleteErrors = deleteResults - .filter( - (result): result is PromiseRejectedResult => - result.status === 'rejected' - ) - .map(result => result.reason); - - if (deleteErrors.length > 0) { - console.warn('Some policy deletions failed:', deleteErrors); - } - - const createReq = create(CreatePolicyRequestSchema, { - body: { - roleId: payload.role.id as string, - title: payload.role.name as string, - resource, - principal - } + const req = create(SetOrganizationMemberRoleRequestSchema, { + orgId: organizationId, + userId: payload.memberId, + roleId: payload.role.id as string }); - await createPolicy(createReq); + await setMemberRole(req); toastManager.add({ title: 'Member role updated', type: 'success' }); refetch();