Logo文档

管理员系统

使用内置管理员工具管理用户和系统管理

NEXTDEVKIT 提供了一个全面的管理员系统,用于管理用户和系统管理。管理员界面允许授权管理员查看、搜索和管理系统中的所有用户,具备强大的过滤和操作功能。

🔐 访问控制

管理员系统实现基于角色的访问控制,确保只有授权用户才能访问管理功能。

管理员角色要求

src/app/(app)/app/admin/layout.tsx
export default async function AdminLayout({ children }: PropsWithChildren) {
  const session = await getSession();

  if (!session) {
    return redirect("/auth/login");
  }

  if (session.user?.role !== "admin") {
    redirect("/app/dashboard");
  }

  return <>{children}</>;
}

访问要求:

  • 用户必须已认证
  • 用户角色必须设置为 "admin"
  • 非管理员用户自动重定向到仪表板

👥 用户管理

管理员系统通过直观的界面提供全面的用户管理功能。

用户概览

管理员概览

主要管理员仪表板显示:

  • 用户列表:所有注册用户的完整列表
  • 搜索功能:按姓名或邮箱实时搜索
  • 用户详情:姓名、邮箱、角色、客户ID和封禁状态
  • 操作控制:封禁/解封用户和复制邮箱地址

核心功能

功能描述
搜索带防抖的实时搜索(1秒延迟)
分页可配置页面大小(10、20、30、40、50用户)
排序按姓名、角色、创建日期或封禁状态排序
列控制根据需要显示/隐藏列
响应式设计移动端友好界面

🚫 用户封禁系统

管理员系统包含一个全面的用户封禁系统,具有灵活的持续时间选项。

封禁用户流程

封禁用户对话框

封禁持续时间选项

const banDurations = [
  { value: "permanent", label: "永久" },
  { value: "1hour", label: "1小时" },
  { value: "1day", label: "1天" },
  { value: "1week", label: "1周" },
  { value: "1month", label: "1个月" },
  { value: "custom", label: "自定义" },
];

封禁用户过程

  1. 选择用户:点击任何用户的操作菜单(⋯)
  2. 选择封禁用户:从下拉菜单中选择"封禁用户"
  3. 提供原因:输入封禁的明确原因
  4. 设置持续时间:从预定义选项中选择或设置自定义天数
  5. 确认操作:点击"封禁用户"执行

封禁功能

功能描述
灵活持续时间从1小时到永久封禁
自定义持续时间设置特定天数
封禁原因审计跟踪所需的原因
自动到期临时封禁自动到期
即时生效被封禁用户立即失去访问权限

🎯 使用指南

访问管理员面板

  1. 登录管理员用户
  2. 导航/app/admin/users
  3. 验证访问权限:只有管理员角色用户才能访问

管理用户

搜索用户

  • 使用搜索栏按姓名或邮箱查找用户
  • 搜索具有防抖功能以提高性能
  • 结果会在您输入时自动更新

排序用户

  • 点击列标题按该字段排序
  • 可用排序字段:姓名、角色、创建日期
  • 再次点击以反向排序

分页

  • 从下拉菜单选择页面大小(10-50用户)
  • 使用分页控件导航
  • 在搜索期间保持页面状态

封禁/解封用户

  1. 封禁用户

    • 点击用户旁边的操作菜单(⋯)
    • 选择"封禁用户"
    • 填写封禁表单,包含原因和持续时间
    • 确认封禁操作
  2. 解封用户

    • 对于被封禁的用户,点击操作菜单
    • 选择"解封用户"
    • 用户立即恢复访问权限

最佳实践

封禁管理

  • 始终提供明确的封禁原因
  • 根据违规严重程度使用适当的持续时间
  • 记录决策以供审计
  • 在临时封禁到期前进行审查

用户搜索

  • 使用具体术语以获得更快的结果
  • 按邮箱搜索以进行精确匹配
  • 结合排序以获得更好的组织

🔒 安全功能

访问控制

  • 基于角色的认证防止未授权访问
  • 会话验证在每个管理员操作上进行
  • 自动重定向非管理员用户

审计跟踪

  • 封禁原因被存储和显示
  • 封禁时间戳跟踪操作发生时间
  • 用户活动可通过界面监控

数据保护

  • 敏感数据如邮箱可以安全复制
  • 用户隐私在允许管理的同时得到维护
  • 操作被记录以符合合规性和安全性

🚀 开始使用

设置管理员访问权限

  1. 创建管理员用户

    UPDATE user SET role = 'admin' WHERE email = 'admin@example.com';
  2. 验证数据库模式: 确保用户表包含所需的管理员字段

  3. 测试访问权限

    • 使用管理员凭据登录
    • 导航到 /app/admin/users
    • 验证所有功能正常工作

配置

管理员系统在默认的 NEXTDEVKIT 设置下开箱即用。除了在数据库中设置用户角色外,不需要额外的配置。

您的管理员系统现在已准备好帮助您有效管理用户!🛡️