diff --git a/ui/src/app/core/user/UserContext.js b/ui/src/app/core/user/UserContext.js index d656ac4a4..cdb6c1cf2 100644 --- a/ui/src/app/core/user/UserContext.js +++ b/ui/src/app/core/user/UserContext.js @@ -39,6 +39,11 @@ function useIsAdmin() { return user.role === 'ROLE_ADMIN'; } +function useIsEnabler() { + const user = useCurrentUser(); + return user.role === 'ROLE_ENABLE'; +} + function useIsInGroup(id) { const user = useCurrentUser(); return user.group === id; @@ -50,5 +55,11 @@ function useIsAdminOrInGroup() { return isAdmin || isInGroup; } +function useCanEnable() { + const isAdmin = useIsAdmin(); + const isEnabler = useIsEnabler(); + return isAdmin || isEnabler; +} + -export { UserContext, UserProvider, Consumer as UserConsumer, useCurrentUser, useIsAdmin, useIsAdminOrInGroup }; \ No newline at end of file +export { UserContext, UserProvider, Consumer as UserConsumer, useCurrentUser, useIsAdmin, useIsAdminOrInGroup, useCanEnable}; \ No newline at end of file diff --git a/ui/src/app/metadata/domain/source/component/SourceList.js b/ui/src/app/metadata/domain/source/component/SourceList.js index e6b63a4f4..577c56715 100644 --- a/ui/src/app/metadata/domain/source/component/SourceList.js +++ b/ui/src/app/metadata/domain/source/component/SourceList.js @@ -13,13 +13,14 @@ import FormattedDate from '../../../../core/components/FormattedDate'; import Translate from '../../../../i18n/components/translate'; import { Scroller } from '../../../../dashboard/component/Scroller'; import { useTranslator } from '../../../../i18n/hooks'; -import { useIsAdmin } from '../../../../core/user/UserContext'; +import { useCanEnable, useIsAdmin } from '../../../../core/user/UserContext'; import { GroupsProvider } from '../../../../admin/hoc/GroupsProvider'; export default function SourceList({ entities, onDelete, onEnable, onChangeGroup }) { const translator = useTranslator(); const isAdmin = useIsAdmin(); + const canEnable = useCanEnable(); return ( @@ -52,7 +53,7 @@ export default function SourceList({ entities, onDelete, onEnable, onChangeGroup - {onEnable && isAdmin ? + {onEnable && canEnable ? {(enable, remove) => @@ -65,7 +68,7 @@ export function MetadataOptions ({reload}) { model={metadata} showGroup={type === 'source'}>
- {enable && + {enable && canEnable &&