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.
iTi-System/iti_system/module.py

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"},
},
]