Skip to content

Commit 8515b8d

Browse files
bra-i-amdcoa
authored andcommitted
feat: add success toast message for role assignment and update user management logic
1 parent c3097b9 commit 8515b8d

3 files changed

Lines changed: 23 additions & 3 deletions

File tree

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const LibrariesUserManager = () => {
1616
const intl = useIntl();
1717
const { username } = useParams();
1818
const {
19-
libraryId, permissions, roles, resources,
19+
libraryId, permissions, roles, resources, canManageTeam,
2020
} = useLibraryAuthZ();
2121
const { data: library } = useLibrary(libraryId);
2222
const rootBreadcrumb = intl.formatMessage(messages['library.authz.breadcrumb.root']) || '';
@@ -43,7 +43,7 @@ const LibrariesUserManager = () => {
4343
activeLabel={user?.username || ''}
4444
pageTitle={user?.username || ''}
4545
pageSubtitle={<p>{user?.email}</p>}
46-
actions={user
46+
actions={user && canManageTeam
4747
? [<AddNewMemberRoleTrigger
4848
username={user.username}
4949
libraryId={libraryId}

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { FC, useState } from 'react';
22
import { useIntl } from '@edx/frontend-platform/i18n';
3-
import { Button, useToggle } from '@openedx/paragon';
3+
import { Button, Toast, useToggle } from '@openedx/paragon';
44
import { Plus } from '@openedx/paragon/icons';
55

66
import { useLibraryAuthZ } from '@src/authz-module/libraries-manager/context';
@@ -21,6 +21,7 @@ const AssignNewRoleTrigger: FC<AssignNewRoleTriggerProps> = ({
2121
}) => {
2222
const intl = useIntl();
2323
const [isOpen, open, close] = useToggle(false);
24+
const [toastMessage, setToastMessage] = useState<string | null>(null);
2425
const { roles } = useLibraryAuthZ();
2526

2627
const [newRole, setNewRole] = useState<string>('');
@@ -36,6 +37,11 @@ const AssignNewRoleTrigger: FC<AssignNewRoleTriggerProps> = ({
3637

3738
assignTeamMembersRole({ data }, {
3839
onSuccess: () => {
40+
setToastMessage(
41+
intl.formatMessage(
42+
messages['libraries.authz.manage.assign.role.success'],
43+
),
44+
);
3945
close();
4046
setNewRole('');
4147
},
@@ -63,6 +69,15 @@ const AssignNewRoleTrigger: FC<AssignNewRoleTriggerProps> = ({
6369
handleChangeSelectedRole={(e) => setNewRole(e.target.value)}
6470
/>
6571
)}
72+
73+
{toastMessage && (
74+
<Toast
75+
onClose={() => setToastMessage(null)}
76+
show={!!toastMessage}
77+
>
78+
{toastMessage}
79+
</Toast>
80+
)}
6681
</>
6782
);
6883
};

src/authz-module/libraries-manager/components/messages.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ const messages = defineMessages({
5151
defaultMessage: 'Save',
5252
description: 'Libraries AuthZ save button title',
5353
},
54+
'libraries.authz.manage.assign.role.success': {
55+
id: 'libraries.authz.manage.assign.role.success',
56+
defaultMessage: 'Role added successfully.',
57+
description: 'Libraries AuthZ assign role success message',
58+
},
5459
});
5560

5661
export default messages;

0 commit comments

Comments
 (0)