Skip to content

Commit 3257341

Browse files
committed
🛂(frontend) blocked edition if multiple ancestors
With child documents we need to check the parent documents to know if the parent doc are collaborative or not.
1 parent ca48168 commit 3257341

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/frontend/apps/impress/src/features/docs/doc-management/hooks/useIsCollaborativeEditable.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,20 @@ import { useIsOffline } from '@/features/service-worker';
55

66
import { KEY_CAN_EDIT, useDocCanEdit } from '../api/useDocCanEdit';
77
import { useProviderStore } from '../stores';
8-
import { Doc, LinkReach } from '../types';
8+
import { Doc, LinkReach, LinkRole } from '../types';
99

1010
export const useIsCollaborativeEditable = (doc: Doc) => {
1111
const { isConnected } = useProviderStore();
1212
const { data: conf } = useConfig();
1313

14-
const docIsPublic = doc.link_reach === LinkReach.PUBLIC;
15-
const docIsAuth = doc.link_reach === LinkReach.AUTHENTICATED;
16-
const docHasMember = doc.nb_accesses_direct > 1;
14+
const docIsPublic =
15+
doc.computed_link_reach === LinkReach.PUBLIC &&
16+
doc.computed_link_role === LinkRole.EDITOR;
17+
const docIsAuth =
18+
doc.computed_link_reach === LinkReach.AUTHENTICATED &&
19+
doc.computed_link_role === LinkRole.EDITOR;
20+
const docHasMember =
21+
doc.nb_accesses_direct > 1 || doc.nb_accesses_ancestors > 1;
1722
const isUserReader = !doc.abilities.partial_update;
1823
const isShared = docIsPublic || docIsAuth || docHasMember;
1924
const { isOffline } = useIsOffline();

0 commit comments

Comments
 (0)