Skip to content

Commit

Permalink
Merge pull request #912 from amitamrutiya/add-permission
Browse files Browse the repository at this point in the history
Add permission for the workspace cards
  • Loading branch information
amitamrutiya authored Feb 11, 2025
2 parents 6362567 + ebb0ff1 commit cd716c7
Show file tree
Hide file tree
Showing 5 changed files with 121 additions and 63 deletions.
152 changes: 101 additions & 51 deletions src/custom/Workspaces/WorkspaceCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,12 @@ interface CardFrontProps {
onAssignDesign: () => void;
isEnvironmentAllowed: boolean;
isTeamAllowed: boolean;
isDesignAndViewAllowed: boolean;
isDesignAllowed: boolean;
isViewAllowed: boolean;
isViewsVisible: boolean;
isDesignsVisible: boolean;
isTeamsVisible: boolean;
isEnvironmentsVisible: boolean;
}

interface CardBackProps {
Expand Down Expand Up @@ -90,9 +95,14 @@ interface WorkspaceCardProps {
designAndViewOfWorkspaceCount: number;
isEnvironmentAllowed: boolean;
isTeamAllowed: boolean;
isDesignAndViewAllowed: boolean;
isDesignAllowed: boolean;
isViewAllowed: boolean;
isDeleteWorkspaceAllowed: boolean;
isEditWorkspaceAllowed: boolean;
isViewsVisible: boolean;
isDesignsVisible: boolean;
isTeamsVisible: boolean;
isEnvironmentsVisible: boolean;
}

/**
Expand Down Expand Up @@ -142,9 +152,14 @@ const WorkspaceCard = ({
designAndViewOfWorkspaceCount,
isEnvironmentAllowed,
isTeamAllowed,
isDesignAndViewAllowed,
isDesignAllowed,
isViewAllowed,
isDeleteWorkspaceAllowed,
isEditWorkspaceAllowed
isEditWorkspaceAllowed,
isViewsVisible,
isDesignsVisible,
isEnvironmentsVisible,
isTeamsVisible
}: WorkspaceCardProps) => {
const deleted = workspaceDetails.deleted_at.Valid;
return (
Expand All @@ -164,7 +179,12 @@ const WorkspaceCard = ({
onAssignDesign={onAssignDesign}
isEnvironmentAllowed={isEnvironmentAllowed}
isTeamAllowed={isTeamAllowed}
isDesignAndViewAllowed={isDesignAndViewAllowed}
isDesignAllowed={isDesignAllowed}
isViewAllowed={isViewAllowed}
isViewsVisible={isViewsVisible}
isDesignsVisible={isDesignsVisible}
isEnvironmentsVisible={isEnvironmentsVisible}
isTeamsVisible={isTeamsVisible}
/>

<CardBack
Expand Down Expand Up @@ -201,7 +221,12 @@ const CardFront = ({
onAssignDesign,
isEnvironmentAllowed,
isTeamAllowed,
isDesignAndViewAllowed
isDesignAllowed,
isViewAllowed,
isViewsVisible,
isDesignsVisible,
isEnvironmentsVisible,
isTeamsVisible
}: CardFrontProps) => {
return (
<CardFrontWrapper elevation={2} onClick={onFlip}>
Expand All @@ -227,52 +252,77 @@ const CardFront = ({
gap: 1
}}
>
<AllocationColumnGrid xs={12} sm={4}>
<AllocationWorkspace onClick={(e) => e.stopPropagation()}>
{isEnvironmentAllowed ? (
<TransferButton
title="Environments"
count={environmentsCount}
onAssign={onAssignEnvironment}
disabled={!isEnvironmentAllowed}
/>
) : (
<RedirectButton title="Environment" count={environmentsCount} />
)}
<RedirectButton title="Connections" count={0} />
</AllocationWorkspace>
</AllocationColumnGrid>
{isEnvironmentsVisible && (
<AllocationColumnGrid>
<AllocationWorkspace onClick={(e) => e.stopPropagation()}>
{isEnvironmentAllowed ? (
<TransferButton
title="Environments"
count={environmentsCount}
onAssign={onAssignEnvironment}
disabled={!isEnvironmentAllowed}
/>
) : (
<RedirectButton title="Environment" count={environmentsCount} />
)}
<RedirectButton title="Connections" count={0} />
</AllocationWorkspace>
</AllocationColumnGrid>
)}

<AllocationColumnGrid xs={12} sm={4}>
<AllocationWorkspace onClick={(e) => e.stopPropagation()}>
{isTeamAllowed ? (
<TransferButton
title="Teams"
count={teamsCount}
onAssign={onAssignTeam}
disabled={!isTeamAllowed}
/>
) : (
<RedirectButton title="Teams" count={teamsCount} />
)}
<RedirectButton title="Users" count={0} />
</AllocationWorkspace>
</AllocationColumnGrid>
<AllocationColumnGrid xs={12} sm={4}>
<AllocationWorkspace onClick={(e) => e.stopPropagation()}>
{isDesignAndViewAllowed ? (
<TransferButton
title="Designs/Views"
count={designAndViewOfWorkspaceCount}
onAssign={onAssignDesign}
disabled={!isDesignAndViewAllowed}
/>
) : (
<RedirectButton title="Designs/Views" count={designAndViewOfWorkspaceCount} />
)}
<RedirectButton title="Deploys" count={0} />
</AllocationWorkspace>
</AllocationColumnGrid>
{isTeamsVisible && (
<AllocationColumnGrid>
<AllocationWorkspace onClick={(e) => e.stopPropagation()}>
{isTeamAllowed ? (
<TransferButton
title="Teams"
count={teamsCount}
onAssign={onAssignTeam}
disabled={!isTeamAllowed}
/>
) : (
<RedirectButton title="Teams" count={teamsCount} />
)}
<RedirectButton title="Users" count={0} />
</AllocationWorkspace>
</AllocationColumnGrid>
)}

{isDesignsVisible && !isViewsVisible && (
<AllocationColumnGrid>
<AllocationWorkspace onClick={(e) => e.stopPropagation()}>
{isDesignAllowed ? (
<TransferButton
title="Designs"
count={designAndViewOfWorkspaceCount}
onAssign={onAssignDesign}
disabled={!isDesignAllowed}
/>
) : (
<RedirectButton title="Designs" count={designAndViewOfWorkspaceCount} />
)}
<RedirectButton title="Deploys" count={0} />
</AllocationWorkspace>
</AllocationColumnGrid>
)}

{isDesignsVisible && isViewsVisible && (
<AllocationColumnGrid>
<AllocationWorkspace onClick={(e) => e.stopPropagation()}>
{isDesignAllowed && isViewAllowed ? (
<TransferButton
title="Designs/Views"
count={designAndViewOfWorkspaceCount}
onAssign={onAssignDesign}
disabled={!(isDesignAllowed && isViewAllowed)}
/>
) : (
<RedirectButton title="Designs/Views" count={designAndViewOfWorkspaceCount} />
)}
<RedirectButton title="Deploys" count={0} />
</AllocationWorkspace>
</AllocationColumnGrid>
)}
</Grid>
</CardFrontWrapper>
);
Expand Down
8 changes: 5 additions & 3 deletions src/custom/Workspaces/hooks/useDesignAssignment.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@ interface useDesignAssignmentProps {
useGetDesignsOfWorkspaceQuery: any;
useAssignDesignToWorkspaceMutation: any;
useUnassignDesignFromWorkspaceMutation: any;
isDesignsVisible?: boolean;
}

const useDesignAssignment = ({
workspaceId,
useGetDesignsOfWorkspaceQuery,
useAssignDesignToWorkspaceMutation,
useUnassignDesignFromWorkspaceMutation
useUnassignDesignFromWorkspaceMutation,
isDesignsVisible
}: useDesignAssignmentProps): AssignmentHookResult<Pattern> => {
const [designsPage, setDesignsPage] = useState<number>(0);
const [designsData, setDesignsData] = useState<Pattern[]>([]);
Expand All @@ -40,7 +42,7 @@ const useDesignAssignment = ({
filter: '{"assigned":false}'
}),
{
skip: skipDesigns
skip: skipDesigns || !isDesignsVisible
}
);

Expand All @@ -51,7 +53,7 @@ const useDesignAssignment = ({
pagesize: designsPageSize
}),
{
skip: skipDesigns
skip: skipDesigns || !isDesignsVisible
}
);

Expand Down
8 changes: 5 additions & 3 deletions src/custom/Workspaces/hooks/useEnvironmentAssignment.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ interface UseEnvironmentAssignmentProps {
useGetEnvironmentsOfWorkspaceQuery: any;
useAssignEnvironmentToWorkspaceMutation: any;
useUnassignEnvironmentFromWorkspaceMutation: any;
isEnvironmentsVisible?: boolean;
}

const useEnvironmentAssignment = ({
workspaceId,
useGetEnvironmentsOfWorkspaceQuery,
useAssignEnvironmentToWorkspaceMutation,
useUnassignEnvironmentFromWorkspaceMutation
useUnassignEnvironmentFromWorkspaceMutation,
isEnvironmentsVisible
}: UseEnvironmentAssignmentProps): AssignmentHookResult<Environment> => {
const [environmentsPage, setEnvironmentsPage] = useState<number>(0);
const [environmentsData, setEnvironmentsData] = useState<Environment[]>([]);
Expand All @@ -34,7 +36,7 @@ const useEnvironmentAssignment = ({
filter: '{"assigned":false}'
}),
{
skip: skipEnvironments
skip: skipEnvironments || !isEnvironmentsVisible
}
);

Expand All @@ -45,7 +47,7 @@ const useEnvironmentAssignment = ({
pagesize: environmentsPageSize
}),
{
skip: skipEnvironments
skip: skipEnvironments || !isEnvironmentsVisible
}
);

Expand Down
8 changes: 5 additions & 3 deletions src/custom/Workspaces/hooks/useTeamAssignment.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ interface UseTeamAssignmentProps {
useGetTeamsOfWorkspaceQuery: any;
useAssignTeamToWorkspaceMutation: any;
useUnassignTeamFromWorkspaceMutation: any;
isTeamsVisible?: boolean;
}

const useTeamAssignment = ({
workspaceId,
useGetTeamsOfWorkspaceQuery,
useAssignTeamToWorkspaceMutation,
useUnassignTeamFromWorkspaceMutation
useUnassignTeamFromWorkspaceMutation,
isTeamsVisible
}: UseTeamAssignmentProps): AssignmentHookResult<Team> => {
const [teamsPage, setTeamsPage] = useState<number>(0);
const [teamsData, setTeamsData] = useState<Team[]>([]);
Expand All @@ -36,7 +38,7 @@ const useTeamAssignment = ({
filter: '{"assigned":false}'
}),
{
skip: skipTeams
skip: skipTeams || !isTeamsVisible
}
);

Expand All @@ -47,7 +49,7 @@ const useTeamAssignment = ({
pagesize: teamsPageSize
}),
{
skip: skipTeams
skip: skipTeams || !isTeamsVisible
}
);

Expand Down
8 changes: 5 additions & 3 deletions src/custom/Workspaces/hooks/useViewsAssignment.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@ interface useViewAssignmentProps {
useGetViewsOfWorkspaceQuery: any;
useAssignViewToWorkspaceMutation: any;
useUnassignViewFromWorkspaceMutation: any;
isEnvironmentsVisible?: boolean;
}

const useViewAssignment = ({
workspaceId,
useGetViewsOfWorkspaceQuery,
useAssignViewToWorkspaceMutation,
useUnassignViewFromWorkspaceMutation
useUnassignViewFromWorkspaceMutation,
isEnvironmentsVisible
}: useViewAssignmentProps): AssignmentHookResult<Pattern> => {
const [viewsPage, setviewsPage] = useState<number>(0);
const [viewsData, setviewsData] = useState<Pattern[]>([]);
Expand All @@ -40,7 +42,7 @@ const useViewAssignment = ({
filter: '{"assigned":false}'
}),
{
skip: skipviews
skip: skipviews || !isEnvironmentsVisible
}
);

Expand All @@ -51,7 +53,7 @@ const useViewAssignment = ({
pagesize: viewsPageSize
}),
{
skip: skipviews
skip: skipviews || !isEnvironmentsVisible
}
);

Expand Down

0 comments on commit cd716c7

Please sign in to comment.