"use client" import { useTranslations } from "next-intl" import { Shield } from "lucide-react" import { type ReactElement } from "react" import { Input } from "@/shared/components/ui/input" import { Label } from "@/shared/components/ui/label" import { Switch } from "@/shared/components/ui/switch" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/shared/components/ui/card" import { Separator } from "@/shared/components/ui/separator" export interface SecurityPolicyValues { passwordMinLength: number sessionTimeout: number requireSpecialChar: boolean requireUppercase: boolean forcePasswordChange: boolean } interface SecurityPolicyCardProps { values: SecurityPolicyValues onChange: (key: keyof SecurityPolicyValues, value: number | boolean) => void } /** * 管理员系统设置 - 安全策略卡片 */ export function SecurityPolicyCard({ values, onChange }: SecurityPolicyCardProps): ReactElement { const t = useTranslations("settings.admin.securityPolicy") return (
{t("title")} {t("description")}
onChange("passwordMinLength", Number(e.target.value))} />
onChange("sessionTimeout", Number(e.target.value))} />

{t("requireSpecialCharDesc")}

onChange("requireSpecialChar", v)} />

{t("requireUppercaseDesc")}

onChange("requireUppercase", v)} />

{t("forcePasswordChangeDesc")}

onChange("forcePasswordChange", v)} />
) }