96f83923f6
修复角色创建功能在使用现代表结构(roles)时因硬编码查询 user_role 表而导致的数据库错误。 问题分析: - admin.py:72 直接硬编码查询 user_role 表检查角色是否存在 - legacy_admin_rbac_service.py:201 也硬编码查询 user_role 表 - 实际项目使用的是现代表结构 roles(定义在 rbac.py) - 导致 psycopg.errors.UndefinedTable: relation "user_role" does not exist 修复方案: 1. 移除 admin.py 中的硬编码表查询,将重复检查逻辑委托给 create_role 服务函数 2. 在 create_role 函数中添加 role_source 检测逻辑 3. 根据检测结果使用正确的表名(user_role 或 roles)和字段 4. 确保 legacy 和 modern 模式下都能正常工作 影响范围: - 角色创建功能现在支持两种表结构 - 保持向后兼容性(legacy 模式仍使用 user_role) - 修复 modern 模式下的角色创建功能 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai>