Skip to content

Commit 757f76f

Browse files
committed
refactor: update behaviour depending on user permissions
1 parent 0e5b53f commit 757f76f

2 files changed

Lines changed: 13 additions & 6 deletions

File tree

src/authz-module/libraries-manager/LibrariesTeamManager.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,9 @@ const LibrariesTeamManager = () => {
4747
pageTitle={pageTitle}
4848
pageSubtitle={libraryId}
4949
actions={
50-
canManageTeam
51-
? [<PublicReadToggle libraryId={libraryId} key="allow-public-read" />,
52-
<AddNewTeamMemberTrigger libraryId={libraryId} key="add-new-member" />]
53-
: []
50+
[<PublicReadToggle libraryId={libraryId} canEditToggle={canManageTeam} key="allow-public-read" />,
51+
...(canManageTeam ? [<AddNewTeamMemberTrigger libraryId={libraryId} key="add-new-member" />]: [])
52+
]
5453
}
5554
>
5655
<Tabs

src/authz-module/libraries-manager/components/PublicReadToggle.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,29 @@ import messages from './messages';
66

77
type PublicReadToggleProps = {
88
libraryId: string;
9+
canEditToggle: boolean;
910
};
1011

11-
const PublicReadToggle = ({ libraryId }:PublicReadToggleProps) => {
12+
const PublicReadToggle = ({ libraryId, canEditToggle }: PublicReadToggleProps) => {
1213
const intl = useIntl();
1314
const { data: library } = useLibrary(libraryId);
14-
const { mutate: updateLibrary } = useUpdateLibrary();
15+
const { mutate: updateLibrary, isPending } = useUpdateLibrary();
1516

1617
const onChangeToggle = () => updateLibrary({
1718
libraryId,
1819
updatedData: { allowPublicRead: !library.allowPublicRead },
1920
});
2021

22+
if (!library) return null;
23+
24+
if (!library.allowPublicRead && !canEditToggle) {
25+
return null;
26+
}
27+
2128
return (
2229
<Form.Switch
2330
checked={library.allowPublicRead}
31+
disabled={!canEditToggle || isPending}
2432
onChange={onChangeToggle}
2533
helperText={
2634
<span>{intl.formatMessage(messages['libraries.authz.public.read.toggle.subtext'])}</span>

0 commit comments

Comments
 (0)