mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-24 17:51:51 +02:00
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
This commit is contained in:
committed by
Copybot
parent
6245e81f42
commit
ea918f3674
@@ -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 (
|
||||
<SettingsMenuSelect<ProjectCompiler>
|
||||
onChange={setCompiler}
|
||||
value={compiler}
|
||||
disabled={permissionsLevel === 'readOnly'}
|
||||
disabled={!write}
|
||||
options={[
|
||||
{
|
||||
value: 'pdflatex',
|
||||
|
||||
@@ -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() {
|
||||
<SettingsMenuSelect
|
||||
onChange={setRootDocId}
|
||||
value={rootDocId ?? ''}
|
||||
disabled={permissionsLevel === 'readOnly'}
|
||||
disabled={!write}
|
||||
options={validDocsOptions}
|
||||
label={t('main_document')}
|
||||
name="rootDocId"
|
||||
|
||||
@@ -4,12 +4,12 @@ import getMeta from '../../../../utils/meta'
|
||||
import SettingsMenuSelect from './settings-menu-select'
|
||||
import type { Option } from './settings-menu-select'
|
||||
import { useProjectSettingsContext } from '../../context/project-settings-context'
|
||||
import { useEditorContext } from '@/shared/context/editor-context'
|
||||
import { usePermissionsContext } from '@/features/ide-react/context/permissions-context'
|
||||
|
||||
export default function SettingsImageName() {
|
||||
const { t } = useTranslation()
|
||||
const { imageName, setImageName } = useProjectSettingsContext()
|
||||
const { permissionsLevel } = useEditorContext()
|
||||
const { write } = usePermissionsContext()
|
||||
|
||||
const allowedImageNames = useMemo(
|
||||
() => getMeta('ol-allowedImageNames') || [],
|
||||
@@ -33,7 +33,7 @@ export default function SettingsImageName() {
|
||||
<SettingsMenuSelect
|
||||
onChange={setImageName}
|
||||
value={imageName}
|
||||
disabled={permissionsLevel === 'readOnly'}
|
||||
disabled={!write}
|
||||
options={options}
|
||||
label={t('tex_live_version')}
|
||||
name="imageName"
|
||||
|
||||
@@ -4,6 +4,7 @@ import { Version } from '../../../services/types/update'
|
||||
import { useCallback } from 'react'
|
||||
import { ActiveDropdown } from '../../../hooks/use-dropdown-active-item'
|
||||
import RestoreProject from './menu-item/restore-project'
|
||||
import { usePermissionsContext } from '@/features/ide-react/context/permissions-context'
|
||||
|
||||
type VersionDropdownContentProps = {
|
||||
projectId: string
|
||||
@@ -22,6 +23,8 @@ function HistoryDropdownContent({
|
||||
closeDropdownForItem(version, 'moreOptions')
|
||||
}, [closeDropdownForItem, version])
|
||||
|
||||
const { write } = usePermissionsContext()
|
||||
|
||||
return (
|
||||
<>
|
||||
<AddLabel
|
||||
@@ -34,12 +37,14 @@ function HistoryDropdownContent({
|
||||
version={version}
|
||||
closeDropdown={closeDropdown}
|
||||
/>
|
||||
<RestoreProject
|
||||
projectId={projectId}
|
||||
version={version}
|
||||
closeDropdown={closeDropdown}
|
||||
endTimestamp={endTimestamp}
|
||||
/>
|
||||
{write && (
|
||||
<RestoreProject
|
||||
projectId={projectId}
|
||||
version={version}
|
||||
closeDropdown={closeDropdown}
|
||||
endTimestamp={endTimestamp}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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<Diff>
|
||||
@@ -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 (
|
||||
<div className="history-react-toolbar">
|
||||
|
||||
Reference in New Issue
Block a user