fix(core): fix permission checks for export workspace (#10401)

This commit is contained in:
JimmFly
2025-02-25 09:50:43 +08:00
committed by GitHub
parent 40104f2f87
commit abda70d2c8
2 changed files with 5 additions and 14 deletions

View File

@@ -4,12 +4,11 @@ import { Button } from '@affine/component/ui/button';
import { useAsyncCallback } from '@affine/core/components/hooks/affine-async-hooks';
import { useSystemOnline } from '@affine/core/components/hooks/use-system-online';
import { DesktopApiService } from '@affine/core/modules/desktop-api';
import { WorkspacePermissionService } from '@affine/core/modules/permissions';
import type { Workspace } from '@affine/core/modules/workspace';
import { useI18n } from '@affine/i18n';
import { universalId } from '@affine/nbstore';
import track from '@affine/track';
import { useLiveData, useService } from '@toeverything/infra';
import { useService } from '@toeverything/infra';
import { useState } from 'react';
interface ExportPanelProps {
@@ -17,13 +16,6 @@ interface ExportPanelProps {
}
export const DesktopExportPanel = ({ workspace }: ExportPanelProps) => {
const workspacePermissionService = useService(
WorkspacePermissionService
).permission;
const isTeam = useLiveData(workspacePermissionService.isTeam$);
const isOwner = useLiveData(workspacePermissionService.isOwner$);
const isAdmin = useLiveData(workspacePermissionService.isAdmin$);
const t = useI18n();
const [saving, setSaving] = useState(false);
const isOnline = useSystemOnline();
@@ -63,10 +55,6 @@ export const DesktopExportPanel = ({ workspace }: ExportPanelProps) => {
}
}, [desktopApi, isOnline, saving, t, workspace]);
if (isTeam && !isOwner && !isAdmin) {
return null;
}
return (
<SettingRow name={t['Export']()} desc={t['Export Description']()}>
<Button

View File

@@ -23,6 +23,9 @@ export const WorkspaceSettingStorage = ({
WorkspacePermissionService
).permission;
const isTeam = useLiveData(workspacePermissionService.isTeam$);
const isOwner = useLiveData(workspacePermissionService.isOwner$);
const canExport = !isTeam || isOwner;
return (
<>
<SettingHeader
@@ -46,7 +49,7 @@ export const WorkspaceSettingStorage = ({
</SettingWrapper>
) : null}
{BUILD_CONFIG.isElectron && (
{BUILD_CONFIG.isElectron && canExport && (
<SettingWrapper>
<DesktopExportPanel workspace={workspace} />
</SettingWrapper>