安全
00 / 00

管理员系统

管理员角色、权限和用户管理

管理员系统

管理员权限基于 Better Auth 的 admin 插件,配合 products/01mvp/packages/auth/src/permissions.ts 中的细粒度权限模型。

角色与权限

管理员角色统一使用 super_admin

权限SUPER_ADMIN
查看用户yes
管理用户yes
封禁用户yes
分配角色yes
查看职能角色yes
管理职能角色yes
查看贡献yes
审核贡献yes
查看勋章yes
管理勋章yes
颁发勋章yes
查看组织yes
管理组织yes
查看系统配置yes
管理系统配置yes
查看仪表板yes

在代码中检查管理员权限:

import { isAdmin, hasPermission, AdminPermission } from "@01mvp/auth/permissions";

if (isAdmin(user)) {
  // 是管理员
}

if (hasPermission(user, AdminPermission.BAN_USERS)) {
  // 有封禁用户权限
}

初始管理员

新项目第一次开放注册时,数据库中的首个注册用户会自动成为 super_admin。后续注册用户默认是普通成员,角色为 "user",不会自动获得后台权限。

这个规则适合新项目启动:先用真实邮箱注册第一个账号,进入后台后再按需要把其他账号调整为 super_admin

本地开发和自动化验收可以直接创建测试管理员:

vpr @01mvp/product#db:seed

默认账号是 [email protected] / Admin123456。它只适合本地或可丢弃的开发环境,不应作为生产管理员初始化方式。

调整管理员角色

超级管理员可以在后台用户管理中调整用户角色,也可以通过 Better Auth 的管理接口将用户的 role 字段设为 "super_admin"

用户封禁

Better Auth admin 插件内置了用户封禁功能。封禁后该用户的 session 会被标记,后续请求会被拦截。

这篇文档有问题?