import { FolderLock, KeyRound, Loader2, Pencil, ShieldCheck, Trash2, UserCheck, UserX, X, } from 'lucide-react' import type { User } from '../types' type AdminUsersTableProps = { users: User[] editingID: string | null editingUsername: string resettingPasswordID: string | null onEditingUsernameChange: (value: string) => void onSaveEdit: (id: string) => void onCancelEdit: () => void onStartEdit: (user: User) => void onResetPassword: (user: User) => void onConfigureLibraries: (user: User) => void onToggleStatus: (user: User) => void onDeleteUser: (user: User) => void } export function AdminUsersTable({ users, editingID, editingUsername, resettingPasswordID, onEditingUsernameChange, onSaveEdit, onCancelEdit, onStartEdit, onResetPassword, onConfigureLibraries, onToggleStatus, onDeleteUser, }: AdminUsersTableProps) { return (
{users.map((u) => ( ))}
用户名 角色 媒体库权限 状态 权限说明 最近登录 操作
{editingID === u.id ? ( onEditingUsernameChange(e.target.value)} /> ) : ( {u.username} {u.is_default_admin && } )} {u.role === 'admin' ? '管理员' : '观看用户'} {u.role === 'admin' ? ( 全库 (管理员) ) : !u.allowed_library_ids || u.allowed_library_ids.length === 0 ? ( 全部媒体库 (默认) ) : ( )} {u.is_active ? '正常' : '已禁用'} {u.role === 'admin' ? '全部管理权限' : '仅浏览/播放/外部播放器,无下载与文件操作'} {u.last_login_at ? new Date(u.last_login_at).toLocaleString() : '从未登录'} {u.realtime_online && 在线} {(u.realtime_device_count ?? 0) > 0 && {u.realtime_device_count} 台} {editingID === u.id ? ( <> ) : ( )}
) }