From d4315a230a22a0102fcf922107c84ed3e8222770 Mon Sep 17 00:00:00 2001 From: "ilya.rudyi" Date: Thu, 3 Aug 2023 16:27:52 +0300 Subject: [PATCH] add condition for "manage-organization" permission --- react/components/OrganizationUsersTable.tsx | 53 ++++++++++++--------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/react/components/OrganizationUsersTable.tsx b/react/components/OrganizationUsersTable.tsx index 03ecd0ab..69e14ece 100644 --- a/react/components/OrganizationUsersTable.tsx +++ b/react/components/OrganizationUsersTable.tsx @@ -108,7 +108,10 @@ const OrganizationUsersTable: FunctionComponent = ({ } } + const canManageOrganization = permissions.includes('manage-organization') + const canEdit = isAdmin || permissions.includes('add-users-organization') + const canEditSales = isAdmin || permissions.includes('add-sales-users-all') || @@ -387,14 +390,19 @@ const OrganizationUsersTable: FunctionComponent = ({ } const getSchema = () => { - const isEnabled = ({ role: { slug } }: { role: { slug: string } }) => - ruleClickEnabled({ - isAdmin, - canEditSales, - slug, - canEdit, - isSalesAdmin, - }) + const isEnabled = ({ role: { slug } }: { role: { slug: string } }) => { + if (!canManageOrganization) { + return ruleClickEnabled({ + isAdmin, + canEditSales, + slug, + canEdit, + isSalesAdmin, + }) + } + + return canManageOrganization + } const properties = { email: { @@ -535,7 +543,20 @@ const OrganizationUsersTable: FunctionComponent = ({ } const handleRowClick = ({ rowData }: CellRendererProps) => { - if ( + if (canManageOrganization) { + setEditUserDetails({ + id: rowData.id, + roleId: rowData.roleId, + userId: rowData.userId, + clId: rowData.clId, + orgId: rowData.orgId, + costId: rowData.costId, + name: rowData.name, + email: rowData.email, + canImpersonate: rowData.canImpersonate, + }) + setEditUserModalOpen(true) + } else if ( !ruleClickEnabled({ isAdmin, canEditSales, @@ -544,21 +565,9 @@ const OrganizationUsersTable: FunctionComponent = ({ isSalesAdmin, }) ) { + // eslint-disable-next-line no-useless-return return } - - setEditUserDetails({ - id: rowData.id, - roleId: rowData.roleId, - userId: rowData.userId, - clId: rowData.clId, - orgId: rowData.orgId, - costId: rowData.costId, - name: rowData.name, - email: rowData.email, - canImpersonate: rowData.canImpersonate, - }) - setEditUserModalOpen(true) } const handleSort = ({