mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-09 00:18:00 +01:00
fix: role permissions UI improvements (#5388)
https://linear.app/unleash/issue/2-1657/role-permissions-improvements This PR includes 3 improvements: - Sort permissions alphabetically - Ensure we don't display duplicate permissions - Improve alignment of columns by using a proper grid ![image](https://github.com/Unleash/unleash/assets/14320932/7cb4a70e-8e39-4077-95a0-66f29b3c2e55)
This commit is contained in:
parent
ce01687e3b
commit
7d2fd172a5
@ -139,15 +139,15 @@ export const PermissionAccordion: VFC<IEnvironmentPermissionAccordionProps> = ({
|
|||||||
{isAllChecked ? 'Unselect ' : 'Select '}
|
{isAllChecked ? 'Unselect ' : 'Select '}
|
||||||
all {context} permissions
|
all {context} permissions
|
||||||
</Button>
|
</Button>
|
||||||
<Box>
|
<Box
|
||||||
|
display='grid'
|
||||||
|
gridTemplateColumns={{
|
||||||
|
sm: '1fr 1fr',
|
||||||
|
xs: '1fr',
|
||||||
|
}}
|
||||||
|
>
|
||||||
{permissions?.map((permission: IPermission) => (
|
{permissions?.map((permission: IPermission) => (
|
||||||
<FormControlLabel
|
<FormControlLabel
|
||||||
sx={{
|
|
||||||
minWidth: {
|
|
||||||
sm: '300px',
|
|
||||||
xs: 'auto',
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
data-testid={getRoleKey(permission)}
|
data-testid={getRoleKey(permission)}
|
||||||
key={getRoleKey(permission)}
|
key={getRoleKey(permission)}
|
||||||
control={
|
control={
|
||||||
|
@ -75,8 +75,8 @@ export const toggleAllPermissions = (
|
|||||||
export const getCategorizedRootPermissions = (permissions: IPermission[]) => {
|
export const getCategorizedRootPermissions = (permissions: IPermission[]) => {
|
||||||
const rootPermissions = permissions.filter(({ name }) => name !== 'ADMIN');
|
const rootPermissions = permissions.filter(({ name }) => name !== 'ADMIN');
|
||||||
|
|
||||||
return rootPermissions
|
const categories = rootPermissions.reduce(
|
||||||
.reduce((categories: IPermissionCategory[], permission) => {
|
(categories: IPermissionCategory[], permission) => {
|
||||||
const categoryLabel =
|
const categoryLabel =
|
||||||
ROOT_PERMISSION_CATEGORIES.find((category) =>
|
ROOT_PERMISSION_CATEGORIES.find((category) =>
|
||||||
category.permissions.includes(permission.name),
|
category.permissions.includes(permission.name),
|
||||||
@ -97,7 +97,21 @@ export const getCategorizedRootPermissions = (permissions: IPermission[]) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return categories;
|
return categories;
|
||||||
}, [])
|
},
|
||||||
|
[],
|
||||||
|
);
|
||||||
|
|
||||||
|
return categories
|
||||||
|
.map((category) => ({
|
||||||
|
...category,
|
||||||
|
permissions: [
|
||||||
|
...new Set(
|
||||||
|
category.permissions.sort((a, b) =>
|
||||||
|
a.displayName.localeCompare(b.displayName),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
}))
|
||||||
.sort(sortCategories);
|
.sort(sortCategories);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -146,7 +160,16 @@ export const getCategorizedProjectPermissions = (
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
return categories;
|
return categories.map((category) => ({
|
||||||
|
...category,
|
||||||
|
permissions: [
|
||||||
|
...new Set(
|
||||||
|
category.permissions.sort((a, b) =>
|
||||||
|
a.displayName.localeCompare(b.displayName),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
export const flattenProjectPermissions = (
|
export const flattenProjectPermissions = (
|
||||||
|
Loading…
Reference in New Issue
Block a user