diff --git a/src/main/frontend/components/general/AssignRolesModal.tsx b/src/main/frontend/components/general/AssignRolesModal.tsx index 70ff422..04dd619 100644 --- a/src/main/frontend/components/general/AssignRolesModal.tsx +++ b/src/main/frontend/components/general/AssignRolesModal.tsx @@ -32,12 +32,12 @@ export default function AssignRolesModal({ user }: AssignRolesModalProps) { const [availableRoles, setAvailableRoles] = useState([]); - const [selectedRoles, setSelectedRoles] = useState(); + const [selectedRole, setSelectedRole] = useState(); const [error, setError] = useState(); useEffect(() => { - setSelectedRoles(rolesToSelection(user.roles!)); - UserEndpoint.getAvailableRoles().then((availableRoles) => { + setSelectedRole(rolesToSelection(user.roles!)); + UserEndpoint.getRolesBelow().then((availableRoles) => { setAvailableRoles(availableRoles!.map((role) => ({id: role!.toString()}))); }); }, []); @@ -47,15 +47,18 @@ export default function AssignRolesModal({ } async function assignRoles() { - if (!selectedRoles) return; + if (!selectedRole) return; - let selectedRolesArray = Array.from(selectedRoles).map((role) => role.toString()); + let selectedRolesArray = Array.from(selectedRole).map((role) => role.toString()); let result = await UserEndpoint.assignRoles(user.username, selectedRolesArray); if (!result) return; switch (result) { case RoleAssignmentResult.SUCCESS: window.location.reload(); break; + case RoleAssignmentResult.NO_ROLES_PROVIDED: + setError("Select at least one role"); + break; case RoleAssignmentResult.TARGET_POWER_LEVEL_TOO_HIGH: setError("Power level of user too high"); break; @@ -78,9 +81,10 @@ export default function AssignRolesModal({