import { useEffect, useState } from 'react'; import { ShieldCheck } from 'lucide-react'; import type { BaseModelCatalogItem, GatewayAccessRule, GatewayAccessRuleBatchRequest, IntegrationPlatform, PlatformModel, UserGroup, } from '@easyai-ai-gateway/contracts'; import { Badge, Card, CardContent, CardHeader, CardTitle, Label, Select } from '../../components/ui'; import type { LoadState } from '../../types'; import { AccessPermissionEditor } from './AccessPermissionEditor'; export function AccessRulesPanel(props: { accessRules: GatewayAccessRule[]; baseModels: BaseModelCatalogItem[]; message: string; platformModels: PlatformModel[]; platforms: IntegrationPlatform[]; state: LoadState; userGroups: UserGroup[]; onBatchAccessRules: (input: GatewayAccessRuleBatchRequest) => Promise; }) { const [selectedGroupId, setSelectedGroupId] = useState(props.userGroups[0]?.id ?? ''); useEffect(() => { if (!selectedGroupId && props.userGroups[0]?.id) { setSelectedGroupId(props.userGroups[0].id); } }, [props.userGroups, selectedGroupId]); return (
用户组访问权限

数据仍写入统一权限规则表;这里按用户组维护专属使用和不允许使用的平台/模型。

{props.accessRules.length} 条规则
{props.message &&

{props.message}

}
未配置规则时默认放行;拒绝规则优先于专属规则。
{selectedGroupId ? ( ) : (
暂无用户组 请先创建用户组,再维护平台和模型权限。
)}
); }