用途:在已通过 /bootstrap-accounts 完成多租户账户配置的 Phoenix 1.8 应用中,添加账户成员管理功能。提供 LiveView 用于列出成员、按邮箱邀请用户、分配角色以及移除成员,并带有安全防护。
前提条件:需已运行 /bootstrap-accounts(存在 accounts 表、account_users 表、Account 与 AccountUser schema、Accounts context、AccountContext 模块、LoadAccount plug 及账户作用域路由);已完成 phx.gen.auth(存在 User schema、UserAuth 模块);已安装 DaisyUI。
主要能力:Accounts context 新增成员管理函数,包括 list_account_members/1、get_account_member/2、invite_user_to_account/3、delete_account_member/1、count_account_owners/1、authorize_role_assignment/2、parse_member_role/1;创建 MemberDisplayHelpers 模块用于角色与日期格式化;创建 AccountUsersLive LiveView 展示表格并支持删除;创建 AccountUserFormComponent 用于邀请弹窗;在现有账户作用域 live_session 内添加路由,并添加邀请邮件通知。
角色层级:owner 拥有完全访问权限,可分配包括 owner 在内的任意角色;admin 可邀请/移除用户,但不能分配 owner 角色;member 为基础访问权限,无管理权限。
安全防护:不能移除自己;不能移除最后一个 owner;仅 admin/owner 可见 Add User 按钮和 Remove 链接;仅 owner 可分配 owner 角色;重复成员检测并给出友好错误提示。
使用方式:按顺序执行各阶段,读取对应参考文件中的代码模板;从 mix.exs 检测应用模块名与 OTP 应用名并替换模板中的 MyApp/my_app/MyAppWeb/my_app_web;最后运行 mix compile --warnings-as-errors 并修复问题,用 mix phx.routes | grep users 验证路由。
限制:依赖上述前提条件与 DaisyUI;资料未提供其他平台、收费或效果信息。