104 lines
3.0 KiB
Python
104 lines
3.0 KiB
Python
"""
|
|
添加角色权限管理菜单到数据库
|
|
"""
|
|
import sys
|
|
import asyncio
|
|
from pathlib import Path
|
|
|
|
# 添加项目根目录到 Python 路径
|
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
|
|
from sqlalchemy import text
|
|
from app.core.database import async_session
|
|
|
|
|
|
async def add_role_permissions_menu():
|
|
"""添加角色权限管理菜单"""
|
|
print("正在添加角色权限管理菜单...")
|
|
|
|
async with async_session() as session:
|
|
# 1. 检查菜单是否已存在
|
|
result = await session.execute(
|
|
text("SELECT COUNT(*) FROM system_menus WHERE id = 14")
|
|
)
|
|
count = result.scalar()
|
|
|
|
if count > 0:
|
|
print(" 菜单已存在,跳过添加")
|
|
return
|
|
|
|
# 2. 插入菜单项
|
|
await session.execute(
|
|
text("""
|
|
INSERT INTO system_menus (
|
|
id, parent_id, menu_name, menu_code, menu_type,
|
|
path, component, icon, sort_order, visible, status,
|
|
created_at, updated_at
|
|
) VALUES (
|
|
14, 4, '角色权限管理', 'system:role_permissions', 1,
|
|
'/role-permissions', 'RolePermissions', 'SafetyOutlined',
|
|
6, 1, 1, NOW(), NOW()
|
|
)
|
|
""")
|
|
)
|
|
print("✓ 菜单项添加成功")
|
|
|
|
# 3. 为超级管理员角色分配菜单权限
|
|
result = await session.execute(
|
|
text("SELECT id FROM roles WHERE role_code = 'super_admin'")
|
|
)
|
|
super_admin_role_id = result.scalar()
|
|
|
|
if super_admin_role_id:
|
|
await session.execute(
|
|
text("""
|
|
INSERT INTO role_menus (role_id, menu_id, created_at)
|
|
VALUES (:role_id, 14, NOW())
|
|
"""),
|
|
{"role_id": super_admin_role_id}
|
|
)
|
|
print(f"✓ 已为超级管理员角色分配权限")
|
|
|
|
# 4. 为管理员角色分配菜单权限
|
|
result = await session.execute(
|
|
text("SELECT id FROM roles WHERE role_code = 'admin'")
|
|
)
|
|
admin_role_id = result.scalar()
|
|
|
|
if admin_role_id:
|
|
await session.execute(
|
|
text("""
|
|
INSERT INTO role_menus (role_id, menu_id, created_at)
|
|
VALUES (:role_id, 14, NOW())
|
|
"""),
|
|
{"role_id": admin_role_id}
|
|
)
|
|
print(f"✓ 已为管理员角色分配权限")
|
|
|
|
await session.commit()
|
|
print("\n✓ 角色权限管理菜单添加完成!")
|
|
|
|
|
|
async def main():
|
|
"""主函数"""
|
|
print("=" * 60)
|
|
print("添加角色权限管理菜单")
|
|
print("=" * 60)
|
|
print()
|
|
|
|
try:
|
|
await add_role_permissions_menu()
|
|
print()
|
|
print("=" * 60)
|
|
print("✓ 操作完成!")
|
|
print("=" * 60)
|
|
except Exception as e:
|
|
print(f"\n✗ 操作失败: {str(e)}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|