mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 22:23:42 +01:00
Disable track changes for reviewers in free projects (#24368)
* Disable track changes for reviewers in free projects * cleanup_unused_locales GitOrigin-RevId: 806ee20c0aed5ef61352041782af620cec72ed70
This commit is contained in:
committed by
Copybot
parent
47fb3a644c
commit
7f67df2468
@@ -9,6 +9,7 @@ import {
|
||||
import useScopeValue from '@/shared/hooks/use-scope-value'
|
||||
import { DeepReadonly } from '../../../../../types/utils'
|
||||
import useViewerPermissions from '@/shared/hooks/use-viewer-permissions'
|
||||
import { useProjectContext } from '@/shared/context/project-context'
|
||||
|
||||
export const PermissionsContext = createContext<Permissions | undefined>(
|
||||
undefined
|
||||
@@ -71,6 +72,13 @@ const linkSharingWarningPermissionsMap: typeof permissionsMap = {
|
||||
owner: permissionsMap.owner,
|
||||
}
|
||||
|
||||
const noTrackChangesPermissionsMap: typeof permissionsMap = {
|
||||
readOnly: permissionsMap.readOnly,
|
||||
readAndWrite: permissionsMap.readAndWrite,
|
||||
review: { ...permissionsMap.review, trackedWrite: false },
|
||||
owner: permissionsMap.owner,
|
||||
}
|
||||
|
||||
export const PermissionsProvider: React.FC = ({ children }) => {
|
||||
const [permissions, setPermissions] =
|
||||
useScopeValue<Readonly<Permissions>>('permissions')
|
||||
@@ -80,18 +88,27 @@ export const PermissionsProvider: React.FC = ({ children }) => {
|
||||
}
|
||||
const hasViewerPermissions = useViewerPermissions()
|
||||
const anonymous = getMeta('ol-anonymous')
|
||||
const project = useProjectContext()
|
||||
|
||||
useEffect(() => {
|
||||
let activePermissionsMap
|
||||
if (hasViewerPermissions) {
|
||||
activePermissionsMap = linkSharingWarningPermissionsMap
|
||||
} else if (anonymous) {
|
||||
activePermissionsMap = anonymousPermissionsMap
|
||||
} else if (!project.features.trackChanges) {
|
||||
activePermissionsMap = noTrackChangesPermissionsMap
|
||||
} else {
|
||||
activePermissionsMap = anonymous
|
||||
? anonymousPermissionsMap
|
||||
: permissionsMap
|
||||
activePermissionsMap = permissionsMap
|
||||
}
|
||||
setPermissions(activePermissionsMap[permissionsLevel])
|
||||
}, [anonymous, permissionsLevel, setPermissions, hasViewerPermissions])
|
||||
}, [
|
||||
anonymous,
|
||||
permissionsLevel,
|
||||
setPermissions,
|
||||
hasViewerPermissions,
|
||||
project.features.trackChanges,
|
||||
])
|
||||
|
||||
useEffect(() => {
|
||||
if (connectionState.forceDisconnected) {
|
||||
|
||||
Reference in New Issue
Block a user