import { getRequestOrigin } from "@/lib/request-origin"; import { formatLocalDateTime } from "@/lib/datetime"; import { buildSubscriptionUrl, describeRemainingTraffic, } from "@/lib/subscription"; import { formatBytes, listUsers, toDatetimeLocalValue, } from "@/lib/store"; import { createUserAction, deleteUserAction, resetUserPasswordAction, updateUserAction, } from "./actions"; function getUserPills(user: { enabled: number; is_admin: number; expires_at: string | null; }) { return [ { label: user.enabled ? "已启用" : "已禁用", className: `status-pill ${user.enabled ? "status-pill--ok" : "status-pill--danger"}`, }, user.is_admin ? { label: "管理员", className: "status-pill status-pill--ink" } : null, user.expires_at ? { label: formatLocalDateTime(user.expires_at), className: "status-pill status-pill--neutral" } : { label: "长期有效", className: "status-pill status-pill--warm" }, ].filter((pill): pill is { label: string; className: string } => Boolean(pill)); } export default async function UsersPage() { const [users, origin] = await Promise.all([listUsers(), getRequestOrigin()]); return (
用户

用户管理

启用 {users.filter((user) => user.enabled).length} 总数 {users.length}
用户数 {users.length}
启用中 {users.filter((user) => user.enabled).length}

新建用户

展开