You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.7 KiB
Python
157 lines
4.7 KiB
Python
from __future__ import annotations
|
|
|
|
from iti.modules import ModuleMenuSeed, ModulePermission
|
|
|
|
from iti_system.services import SystemPermissionProvider
|
|
|
|
|
|
class SystemModule:
|
|
name = "iti_system"
|
|
|
|
def init_app(self, app) -> None:
|
|
app.state.iti_system = self
|
|
app.state.permission_provider = SystemPermissionProvider()
|
|
|
|
def register_routes(self, app) -> None:
|
|
from iti_system.routes import routers
|
|
|
|
for router in routers:
|
|
app.include_router(router)
|
|
|
|
def register_permissions(self, app) -> None:
|
|
registry = app.state.iti_modules
|
|
for code, name in SYSTEM_PERMISSIONS:
|
|
registry.register_permission(ModulePermission(code=code, name=name))
|
|
|
|
def register_menu_seed(self, app) -> None:
|
|
registry = app.state.iti_modules
|
|
for item in SYSTEM_MENU_SEEDS:
|
|
registry.register_menu_seed(ModuleMenuSeed(**item))
|
|
|
|
|
|
def create_system_module() -> SystemModule:
|
|
return SystemModule()
|
|
|
|
|
|
SYSTEM_PERMISSIONS = [
|
|
("system:user:list", "用户列表"),
|
|
("system:user:create", "创建用户"),
|
|
("system:user:edit", "编辑用户"),
|
|
("system:user:delete", "删除用户"),
|
|
("system:user:resetpwd", "修改用户密码"),
|
|
("system:role:list", "角色列表"),
|
|
("system:role:create", "创建角色"),
|
|
("system:role:edit", "编辑角色"),
|
|
("system:role:delete", "删除角色"),
|
|
("system:menu:list", "菜单列表"),
|
|
("system:menu:create", "创建菜单"),
|
|
("system:menu:edit", "编辑菜单"),
|
|
("system:menu:delete", "删除菜单"),
|
|
("system:dept:list", "部门列表"),
|
|
("system:dept:create", "创建部门"),
|
|
("system:dept:edit", "编辑部门"),
|
|
("system:dept:delete", "删除部门"),
|
|
("system:config:list", "配置列表"),
|
|
("system:config:create", "创建配置"),
|
|
("system:config:edit", "编辑配置"),
|
|
("system:config:delete", "删除配置"),
|
|
("system:dict:list", "字典列表"),
|
|
("system:dict:create", "创建字典"),
|
|
("system:dict:edit", "编辑字典"),
|
|
("system:dict:delete", "删除字典"),
|
|
("system:log:list", "日志列表"),
|
|
("system:log:delete", "删除日志"),
|
|
("system:file:list", "文件列表"),
|
|
("system:file:edit", "编辑文件"),
|
|
("system:file:delete", "删除文件"),
|
|
]
|
|
|
|
|
|
SYSTEM_MENU_SEEDS = [
|
|
{
|
|
"id": "system",
|
|
"name": "System",
|
|
"type": "catalog",
|
|
"path": "/system",
|
|
"sort": 0,
|
|
"meta": {"title": "系统管理", "icon": "ion:settings-outline"},
|
|
},
|
|
{
|
|
"id": "system-user",
|
|
"name": "User",
|
|
"type": "menu",
|
|
"path": "/system/user",
|
|
"component": "/system/user/list",
|
|
"parent_id": "system",
|
|
"auth_code": "system:user:list",
|
|
"sort": 1,
|
|
"meta": {"title": "用户管理", "icon": "carbon:user"},
|
|
},
|
|
{
|
|
"id": "system-role",
|
|
"name": "Role",
|
|
"type": "menu",
|
|
"path": "/system/role",
|
|
"component": "/system/role/list",
|
|
"parent_id": "system",
|
|
"auth_code": "system:role:list",
|
|
"sort": 2,
|
|
"meta": {"title": "角色管理", "icon": "carbon:user-role"},
|
|
},
|
|
{
|
|
"id": "system-dept",
|
|
"name": "Dept",
|
|
"type": "menu",
|
|
"path": "/system/dept",
|
|
"component": "/system/dept/list",
|
|
"parent_id": "system",
|
|
"auth_code": "system:dept:list",
|
|
"sort": 3,
|
|
"meta": {"title": "部门管理", "icon": "carbon:container-services"},
|
|
},
|
|
{
|
|
"id": "system-menu",
|
|
"name": "Menu",
|
|
"type": "menu",
|
|
"path": "/system/menu",
|
|
"component": "/system/menu/list",
|
|
"parent_id": "system",
|
|
"auth_code": "system:menu:list",
|
|
"sort": 4,
|
|
"meta": {"title": "菜单管理", "icon": "carbon:menu"},
|
|
},
|
|
{
|
|
"id": "system-config",
|
|
"name": "Config",
|
|
"type": "menu",
|
|
"path": "/system/config",
|
|
"component": "/system/config/list",
|
|
"parent_id": "system",
|
|
"auth_code": "system:config:list",
|
|
"sort": 5,
|
|
"meta": {"title": "系统配置", "icon": "carbon:document-configuration"},
|
|
},
|
|
{
|
|
"id": "system-dict",
|
|
"name": "Dict",
|
|
"type": "menu",
|
|
"path": "/system/dict",
|
|
"component": "/system/dict/list",
|
|
"parent_id": "system",
|
|
"auth_code": "system:dict:list",
|
|
"sort": 6,
|
|
"meta": {"title": "字典管理", "icon": "carbon:book"},
|
|
},
|
|
{
|
|
"id": "system-log",
|
|
"name": "Log",
|
|
"type": "menu",
|
|
"path": "/system/log",
|
|
"component": "/system/log/list",
|
|
"parent_id": "system",
|
|
"auth_code": "system:log:list",
|
|
"sort": 7,
|
|
"meta": {"title": "日志管理", "icon": "carbon:cloud-logging"},
|
|
},
|
|
]
|