90 lines
3.0 KiB
Python
90 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
测试菜单权限数据是否存在
|
||
"""
|
||
import sys
|
||
import os
|
||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||
|
||
from app.core.database import get_db_connection
|
||
|
||
def test_menu_permissions():
|
||
print("=== 测试菜单权限数据 ===\n")
|
||
|
||
try:
|
||
# 连接数据库
|
||
with get_db_connection() as connection:
|
||
cursor = connection.cursor(dictionary=True)
|
||
|
||
# 1. 检查menus表
|
||
print("1. 检查menus表:")
|
||
cursor.execute("SELECT COUNT(*) as count FROM menus")
|
||
menu_count = cursor.fetchone()['count']
|
||
print(f" - 菜单总数: {menu_count}")
|
||
|
||
if menu_count > 0:
|
||
cursor.execute("SELECT menu_id, menu_code, menu_name, is_active FROM menus ORDER BY sort_order")
|
||
menus = cursor.fetchall()
|
||
for menu in menus:
|
||
print(f" - [{menu['menu_id']}] {menu['menu_name']} ({menu['menu_code']}) - 启用: {menu['is_active']}")
|
||
else:
|
||
print(" ⚠️ menus表为空!")
|
||
|
||
print()
|
||
|
||
# 2. 检查roles表
|
||
print("2. 检查roles表:")
|
||
cursor.execute("SELECT * FROM roles ORDER BY role_id")
|
||
roles = cursor.fetchall()
|
||
for role in roles:
|
||
print(f" - [{role['role_id']}] {role['role_name']}")
|
||
|
||
print()
|
||
|
||
# 3. 检查role_menu_permissions表
|
||
print("3. 检查role_menu_permissions表:")
|
||
cursor.execute("SELECT COUNT(*) as count FROM role_menu_permissions")
|
||
perm_count = cursor.fetchone()['count']
|
||
print(f" - 权限总数: {perm_count}")
|
||
|
||
if perm_count > 0:
|
||
cursor.execute("""
|
||
SELECT r.role_name, m.menu_name, rmp.role_id, rmp.menu_id
|
||
FROM role_menu_permissions rmp
|
||
JOIN roles r ON rmp.role_id = r.role_id
|
||
JOIN menus m ON rmp.menu_id = m.menu_id
|
||
ORDER BY rmp.role_id, m.sort_order
|
||
""")
|
||
permissions = cursor.fetchall()
|
||
|
||
current_role = None
|
||
for perm in permissions:
|
||
if current_role != perm['role_name']:
|
||
current_role = perm['role_name']
|
||
print(f"\n {current_role}的权限:")
|
||
print(f" - {perm['menu_name']}")
|
||
else:
|
||
print(" ⚠️ role_menu_permissions表为空!")
|
||
|
||
print("\n" + "="*50)
|
||
|
||
# 4. 检查是否需要执行SQL脚本
|
||
if menu_count == 0 or perm_count == 0:
|
||
print("\n❌ 数据库中缺少菜单或权限数据!")
|
||
print("请执行以下命令初始化数据:")
|
||
print("\nmysql -h 10.100.51.161 -u root -psagacity imeeting_dev < backend/sql/add_menu_permissions_system.sql")
|
||
print("\n或者在MySQL客户端中执行该SQL文件。")
|
||
else:
|
||
print("\n✅ 菜单权限数据正常!")
|
||
|
||
cursor.close()
|
||
connection.close()
|
||
|
||
except Exception as e:
|
||
print(f"❌ 错误: {str(e)}")
|
||
import traceback
|
||
traceback.print_exc()
|
||
|
||
if __name__ == "__main__":
|
||
test_menu_permissions()
|