用途:为 iblai.ai 平台应用实现“成员 / 组织管理员”两类受众的区分,并提供管理后台的接入模式。
主要能力:平台每个组织有两个预定义角色 Admin 与 User,另有可选策略(RBAC)做更细授权,管理员隐式持有全部策略。应用通过登录时保存的 tenants 列表判断管理员:isTenantAdmin() 取钉定组织对应条目的 is_admin 标志,区别于 SDK 的 useIsAdmin()。管理员获得 User/Admin 切换,User 模式下看到与成员完全相同的内容。vibe-starter 已内置:lib/iblai/tenant.ts 的 isTenantAdmin() 与 readTenants();lib/iblai/admin-mode.tsx 的 AdminModeProvider/useAdminMode;导航栏 AdminModeSwitch;components/admin/account-panel.tsx;app/(app)/admin/users 页面;以及 /admin/analytics、/admin/billing、/admin/memory、/admin/organization 等表面;路由门禁在 app/(app)/layout.tsx,非管理员访问 /admin/* 将重定向首页;服务端管理路由用 lib/iblai/platform.ts 的 requireAdmin(req)。
使用方式:若 iblai.env 中没有 ARCHITECTURE=,先运行 /iblai-vibe-start。安装时将 .j2 资源去后缀渲染到对应路径,并把 readTenants/isTenantAdmin 加入 lib/iblai/tenant.ts,需 shadcn switch。布局中读取一次会话,包裹 AdminModeProvider,按成员与管理员拆分导航链接,仅当 isAdmin && adminMode 时渲染管理链接,并把 AdminModeSwitch 放入导航栏右侧。AccountPanel 的 tab 可选 organization、management、integrations、advanced、billing、memory、monetization。
验证:pnpm typecheck && pnpm test。管理员登录可见切换与管理链接,切到 User 后消失且 /admin/users 跳回首页;成员无切换。
限制:管理员的写操作必须在服务端用 requireAdmin(req) 校验,不可信任客户端 isAdmin;SDK 的 useIsAdmin() 与 isTenantAdmin() 可能不一致。目录同步仅为 REST。平台、收费与价格等信息资料暂未提供。