Skip to content

Commit

Permalink
Team LBAC: Add epilogue to permissions (grafana#82523)
Browse files Browse the repository at this point in the history
* add epilogue to permissions

* gs
linting fix

* update docs

* Revert "update docs"

This reverts commit 0902ce2.
  • Loading branch information
eleijonmarck authored Feb 21, 2024
1 parent d48bf34 commit 620cc6d
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 80 deletions.
1 change: 1 addition & 0 deletions public/app/core/actions/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { hideAppNotification, notifyApp } from '../reducers/appNotification';
import { updateNavIndex, updateConfigurationSubtitle } from '../reducers/navModel';

export { updateNavIndex, updateConfigurationSubtitle, notifyApp, hideAppNotification };
165 changes: 85 additions & 80 deletions public/app/core/components/AccessControl/Permissions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ export type Props = {
resourceId: ResourceId;
canSetPermissions: boolean;
getWarnings?: (items: ResourcePermission[]) => ResourcePermission[];
epilogue?: (items: ResourcePermission[]) => React.ReactNode;
};

export const Permissions = ({
Expand All @@ -48,6 +49,7 @@ export const Permissions = ({
canSetPermissions,
addPermissionTitle,
getWarnings,
epilogue,
}: Props) => {
const styles = useStyles2(getStyles);
const [isAdding, setIsAdding] = useState(false);
Expand Down Expand Up @@ -157,87 +159,90 @@ export const Permissions = ({
const titleTeam = t('access-control.permissions.team', 'Team');

return (
<div>
{canSetPermissions && resource === 'folders' && (
<>
<Trans i18nKey="access-control.permissions.permissions-change-warning">
This will change permissions for this folder and all its descendants. In total, this will affect:
</Trans>
<DescendantCount
selectedItems={{
folder: { [resourceId]: true },
dashboard: {},
panel: {},
$all: false,
}}
/>
<Space v={2} />
</>
)}
{items.length === 0 && (
<Box>
<Text>{emptyLabel}</Text>
</Box>
)}
<PermissionList
title={titleRole}
items={builtInRoles}
compareKey={'builtInRole'}
permissionLevels={desc.permissions}
onChange={onChange}
onRemove={onRemove}
canSet={canSetPermissions}
/>
<PermissionList
title={titleUser}
items={users}
compareKey={'userLogin'}
permissionLevels={desc.permissions}
onChange={onChange}
onRemove={onRemove}
canSet={canSetPermissions}
/>
<PermissionList
title={titleServiceAccount}
items={serviceAccounts}
compareKey={'userLogin'}
permissionLevels={desc.permissions}
onChange={onChange}
onRemove={onRemove}
canSet={canSetPermissions}
/>
<PermissionList
title={titleTeam}
items={teams}
compareKey={'team'}
permissionLevels={desc.permissions}
onChange={onChange}
onRemove={onRemove}
canSet={canSetPermissions}
/>
{canSetPermissions && (
<>
<Button
className={styles.addPermissionButton}
variant={'primary'}
key="add-permission"
onClick={() => setIsAdding(true)}
icon="plus"
>
{buttonLabel}
</Button>
<SlideDown in={isAdding}>
<AddPermission
title={addPermissionTitle}
onAdd={onAdd}
permissions={desc.permissions}
assignments={desc.assignments}
onCancel={() => setIsAdding(false)}
<>
<div>
{canSetPermissions && resource === 'folders' && (
<>
<Trans i18nKey="access-control.permissions.permissions-change-warning">
This will change permissions for this folder and all its descendants. In total, this will affect:
</Trans>
<DescendantCount
selectedItems={{
folder: { [resourceId]: true },
dashboard: {},
panel: {},
$all: false,
}}
/>
</SlideDown>
</>
)}
</div>
<Space v={2} />
</>
)}
{items.length === 0 && (
<Box>
<Text>{emptyLabel}</Text>
</Box>
)}
<PermissionList
title={titleRole}
items={builtInRoles}
compareKey={'builtInRole'}
permissionLevels={desc.permissions}
onChange={onChange}
onRemove={onRemove}
canSet={canSetPermissions}
/>
<PermissionList
title={titleUser}
items={users}
compareKey={'userLogin'}
permissionLevels={desc.permissions}
onChange={onChange}
onRemove={onRemove}
canSet={canSetPermissions}
/>
<PermissionList
title={titleServiceAccount}
items={serviceAccounts}
compareKey={'userLogin'}
permissionLevels={desc.permissions}
onChange={onChange}
onRemove={onRemove}
canSet={canSetPermissions}
/>
<PermissionList
title={titleTeam}
items={teams}
compareKey={'team'}
permissionLevels={desc.permissions}
onChange={onChange}
onRemove={onRemove}
canSet={canSetPermissions}
/>
{canSetPermissions && (
<>
<Button
className={styles.addPermissionButton}
variant={'primary'}
key="add-permission"
onClick={() => setIsAdding(true)}
icon="plus"
>
{buttonLabel}
</Button>
<SlideDown in={isAdding}>
<AddPermission
title={addPermissionTitle}
onAdd={onAdd}
permissions={desc.permissions}
assignments={desc.assignments}
onCancel={() => setIsAdding(false)}
/>
</SlideDown>
</>
)}
</div>
{epilogue && epilogue(items)}
</>
);
};

Expand Down

0 comments on commit 620cc6d

Please sign in to comment.