mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-17 22:37:04 +08:00
fix(core): fix permission checks for export workspace (#10401)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user