@@ -32,6 +32,7 @@ AUDIT_LOG_LOAD_OPTIONS = (
|
||||
)
|
||||
|
||||
REMOVED_MENU_CODES = {
|
||||
"dashboard",
|
||||
"admin.wxapp",
|
||||
"admin.system_message",
|
||||
"admin.inbox",
|
||||
@@ -403,7 +404,7 @@ def update_menu(db: Session, menu_id: int, payload: MenuUpdateRequest) -> MenuPu
|
||||
|
||||
def delete_menu(db: Session, menu_id: int) -> bool:
|
||||
menu = get_menu_by_id(db, menu_id)
|
||||
if not menu or menu.code in {"dashboard", "admin.users", "admin.roles", "admin.menus", "admin.system_params", "admin.power_lines", "admin.lightning_currents", "admin.lightning_distribution", "admin.workers", "admin.task_monitor", "admin.atp_models", "admin.files", "admin.elevation", "admin.syslog", "admin.wine_runner"}:
|
||||
if not menu or menu.code in {"admin.users", "admin.roles", "admin.menus", "admin.system_params", "admin.power_lines", "admin.lightning_currents", "admin.lightning_distribution", "admin.workers", "admin.task_monitor", "admin.atp_models", "admin.files", "admin.elevation", "admin.syslog", "admin.wine_runner"}:
|
||||
return False
|
||||
child_exists = db.scalar(select(Menu.id).where(Menu.parent_id == menu_id))
|
||||
if child_exists is not None:
|
||||
|
||||
@@ -30,6 +30,7 @@ from .user_service import queue_users_auth_refresh
|
||||
|
||||
PROTECTED_ROLE_IDS = {"admin", "user", "sys_mgr"}
|
||||
REMOVED_MENU_CODES = {
|
||||
"dashboard",
|
||||
"admin.wxapp",
|
||||
"admin.system_message",
|
||||
"admin.inbox",
|
||||
@@ -62,7 +63,6 @@ REMOVED_MENU_CODES = {
|
||||
}
|
||||
|
||||
PROTECTED_MENU_CODES = {
|
||||
"dashboard",
|
||||
"admin.users",
|
||||
"admin.roles",
|
||||
"admin.menus",
|
||||
|
||||
@@ -47,6 +47,7 @@ ADMIN_ROLE_IDS = {
|
||||
}
|
||||
|
||||
DISABLED_MENU_CODES: set[str] = {
|
||||
"dashboard",
|
||||
"admin.wxapp",
|
||||
"admin.system_message",
|
||||
"admin.inbox",
|
||||
@@ -97,7 +98,6 @@ MENU_CODE_PERMISSION_MAP: dict[str, set[str]] = {
|
||||
"admin.lightning_currents": {"lightning.read", "lightning.manage"},
|
||||
"admin.lightning_distribution": {"lightning.read", "lightning.manage"},
|
||||
"admin.wine_runner": {"wine.read", "wine.manage"},
|
||||
"dashboard": {"menu.read"},
|
||||
}
|
||||
|
||||
SYNTHETIC_LEGACY_MENU_ROWS: list[dict[str, Any]] = [
|
||||
|
||||
@@ -82,19 +82,6 @@ DEFAULT_ROLES: dict[str, dict[str, object]] = {
|
||||
}
|
||||
|
||||
DEFAULT_MENUS: list[dict[str, object]] = [
|
||||
{
|
||||
"code": "dashboard",
|
||||
"name": "仪表盘",
|
||||
"path": "/admin",
|
||||
"icon": "LayoutDashboard",
|
||||
"parent_code": None,
|
||||
"type": "menu",
|
||||
"sort_order": 10,
|
||||
"status": "enabled",
|
||||
"visible": True,
|
||||
"cacheable": False,
|
||||
"permission_code": None,
|
||||
},
|
||||
{
|
||||
"code": "admin.users",
|
||||
"name": "用户管理",
|
||||
@@ -102,7 +89,7 @@ DEFAULT_MENUS: list[dict[str, object]] = [
|
||||
"icon": "Users",
|
||||
"parent_code": None,
|
||||
"type": "menu",
|
||||
"sort_order": 20,
|
||||
"sort_order": 10,
|
||||
"status": "enabled",
|
||||
"visible": True,
|
||||
"cacheable": False,
|
||||
@@ -280,8 +267,8 @@ DEFAULT_MENUS: list[dict[str, object]] = [
|
||||
]
|
||||
|
||||
ROLE_MENU_BINDINGS: dict[str, list[str]] = {
|
||||
"admin": ["dashboard", "admin.users", "admin.roles", "admin.menus", "admin.system_params", "admin.power_lines", "admin.lightning_currents", "admin.lightning_distribution", "admin.workers", "admin.task_monitor", "admin.atp_models", "admin.files", "admin.elevation", "admin.syslog", "admin.wine_runner"],
|
||||
"user": ["dashboard"],
|
||||
"admin": ["admin.users", "admin.roles", "admin.menus", "admin.system_params", "admin.power_lines", "admin.lightning_currents", "admin.lightning_distribution", "admin.workers", "admin.task_monitor", "admin.atp_models", "admin.files", "admin.elevation", "admin.syslog", "admin.wine_runner"],
|
||||
"user": [],
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@ TOPIC_RULES: dict[str, TopicRule] = {
|
||||
"system": TopicRule(allow_any_authenticated_user=True, auto_subscribe=True),
|
||||
"auth": TopicRule(allow_any_authenticated_user=True, auto_subscribe=True),
|
||||
"notifications": TopicRule(allow_any_authenticated_user=True, auto_subscribe=True),
|
||||
"admin.dashboard": TopicRule(allow_any_authenticated_user=True),
|
||||
"admin.users": TopicRule(any_permission_codes={"user.manage"}),
|
||||
"admin.roles": TopicRule(any_permission_codes={"role.read", "role.manage"}),
|
||||
"admin.menus": TopicRule(any_permission_codes={"menu.read", "menu.manage"}),
|
||||
|
||||
Reference in New Issue
Block a user