From af5b9a3a23714a770f9ad817c2f8a68fd684c0a9 Mon Sep 17 00:00:00 2001 From: JimmFly Date: Wed, 18 Sep 2024 07:36:05 +0000 Subject: [PATCH] fix(core): workspace sharing settings should not be displayed when there is no permission (#8285) close AF-1222 --- .../new-workspace-setting-detail/sharing.tsx | 7 +++++++ packages/frontend/i18n/src/resources/en.json | 5 +---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/new-workspace-setting-detail/sharing.tsx b/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/new-workspace-setting-detail/sharing.tsx index 7cd74250e..614495a33 100644 --- a/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/new-workspace-setting-detail/sharing.tsx +++ b/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/new-workspace-setting-detail/sharing.tsx @@ -4,6 +4,7 @@ import { SettingWrapper, } from '@affine/component/setting-components'; import { useAsyncCallback } from '@affine/core/components/hooks/affine-async-hooks'; +import { WorkspacePermissionService } from '@affine/core/modules/permissions'; import { WorkspaceShareSettingService } from '@affine/core/modules/share-setting'; import { WorkspaceFlavour } from '@affine/env/workspace'; import { useI18n } from '@affine/i18n'; @@ -22,6 +23,8 @@ export const Sharing = () => { const shareSetting = useService(WorkspaceShareSettingService).sharePreview; const enableUrlPreview = useLiveData(shareSetting.enableUrlPreview$); const loading = useLiveData(shareSetting.isLoading$); + const permissionService = useService(WorkspacePermissionService); + const isOwner = useLiveData(permissionService.permission.isOwner$); const handleCheck = useAsyncCallback( async (checked: boolean) => { @@ -30,6 +33,10 @@ export const Sharing = () => { [shareSetting] ); + if (!isOwner) { + return null; + } + return (