From ea918f36740d6f279d300da059109ff82e351fcd Mon Sep 17 00:00:00 2001 From: Domagoj Kriskovic Date: Tue, 28 Jan 2025 14:14:45 +0100 Subject: [PATCH] Disable restore project/file and project settings for a reviewer (#23104) * Disable restore project/file and project settings for a reviewer * hide github menu * use permissions context GitOrigin-RevId: a705ecf8bc1f722b8818baef85c5411e7a762989 --- .../components/settings/settings-compiler.tsx | 6 +++--- .../components/settings/settings-document.tsx | 6 +++--- .../components/settings/settings-image-name.tsx | 6 +++--- .../dropdown/history-dropdown-content.tsx | 17 +++++++++++------ .../components/diff-view/toolbar/toolbar.tsx | 7 +++++-- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/services/web/frontend/js/features/editor-left-menu/components/settings/settings-compiler.tsx b/services/web/frontend/js/features/editor-left-menu/components/settings/settings-compiler.tsx index 02006418b0..8d7076ebd4 100644 --- a/services/web/frontend/js/features/editor-left-menu/components/settings/settings-compiler.tsx +++ b/services/web/frontend/js/features/editor-left-menu/components/settings/settings-compiler.tsx @@ -1,19 +1,19 @@ import { useTranslation } from 'react-i18next' import type { ProjectCompiler } from '../../../../../../types/project-settings' -import { useEditorContext } from '../../../../shared/context/editor-context' +import { usePermissionsContext } from '@/features/ide-react/context/permissions-context' import { useProjectSettingsContext } from '../../context/project-settings-context' import SettingsMenuSelect from './settings-menu-select' export default function SettingsCompiler() { const { t } = useTranslation() - const { permissionsLevel } = useEditorContext() + const { write } = usePermissionsContext() const { compiler, setCompiler } = useProjectSettingsContext() return ( onChange={setCompiler} value={compiler} - disabled={permissionsLevel === 'readOnly'} + disabled={!write} options={[ { value: 'pdflatex', diff --git a/services/web/frontend/js/features/editor-left-menu/components/settings/settings-document.tsx b/services/web/frontend/js/features/editor-left-menu/components/settings/settings-document.tsx index 7a9e7c0c30..839bd499eb 100644 --- a/services/web/frontend/js/features/editor-left-menu/components/settings/settings-document.tsx +++ b/services/web/frontend/js/features/editor-left-menu/components/settings/settings-document.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import { isValidTeXFile } from '../../../../main/is-valid-tex-file' -import { useEditorContext } from '../../../../shared/context/editor-context' +import { usePermissionsContext } from '@/features/ide-react/context/permissions-context' import { useProjectSettingsContext } from '../../context/project-settings-context' import SettingsMenuSelect from './settings-menu-select' import type { Option } from './settings-menu-select' @@ -9,7 +9,7 @@ import { useFileTreeData } from '@/shared/context/file-tree-data-context' export default function SettingsDocument() { const { t } = useTranslation() - const { permissionsLevel } = useEditorContext() + const { write } = usePermissionsContext() const { docs } = useFileTreeData() const { rootDocId, setRootDocId } = useProjectSettingsContext() @@ -39,7 +39,7 @@ export default function SettingsDocument() { getMeta('ol-allowedImageNames') || [], @@ -33,7 +33,7 @@ export default function SettingsImageName() { - + {write && ( + + )} ) } diff --git a/services/web/frontend/js/features/history/components/diff-view/toolbar/toolbar.tsx b/services/web/frontend/js/features/history/components/diff-view/toolbar/toolbar.tsx index 6087f3cc8d..8e9fb2a4ab 100644 --- a/services/web/frontend/js/features/history/components/diff-view/toolbar/toolbar.tsx +++ b/services/web/frontend/js/features/history/components/diff-view/toolbar/toolbar.tsx @@ -8,6 +8,7 @@ import { isFileRemoved } from '../../../utils/file-diff' import ToolbarRestoreFileToVersionButton from './toolbar-restore-file-to-version-button' import { useFeatureFlag } from '@/shared/context/split-test-context' import SplitTestBadge from '@/shared/components/split-test-badge' +import { usePermissionsContext } from '@/features/ide-react/context/permissions-context' type ToolbarProps = { diff: Nullable @@ -15,15 +16,17 @@ type ToolbarProps = { } export default function Toolbar({ diff, selection }: ToolbarProps) { + const { write } = usePermissionsContext() const hasRestoreFileToVersion = useFeatureFlag('revert-file') const showRestoreFileToVersionButton = - hasRestoreFileToVersion && selection.selectedFile + hasRestoreFileToVersion && selection.selectedFile && write const showRestoreFileButton = selection.selectedFile && isFileRemoved(selection.selectedFile) && - !showRestoreFileToVersionButton + !showRestoreFileToVersionButton && + write return (