From c0802a9b48036aa142c9d10687448c22248b1352 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Mon, 3 Apr 2023 01:15:08 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E9=80=82=E9=85=8D`=E7=BD=91?= =?UTF-8?q?=E9=A1=B5=E6=8E=A7=E5=88=B6=E5=8F=B0`=E7=9A=84=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gsuid_core/webconsole/create_base_panel.py | 17 +++++++++ gsuid_core/webconsole/create_input_panel.py | 10 +++++ gsuid_core/webconsole/create_sv_panel.py | 12 ++++-- gsuid_core/webconsole/mount_app.py | 42 ++++++++------------- 4 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 gsuid_core/webconsole/create_input_panel.py diff --git a/gsuid_core/webconsole/create_base_panel.py b/gsuid_core/webconsole/create_base_panel.py index bec95ee..52663d2 100644 --- a/gsuid_core/webconsole/create_base_panel.py +++ b/gsuid_core/webconsole/create_base_panel.py @@ -1,6 +1,23 @@ from typing import Dict, List +def get_input_image_panel(label: str, name: str): + return { + 'type': 'input-image', + 'label': label, + 'name': name, + 'autoUpload': True, + 'proxy': True, + 'uploadType': 'fileReceptor', + 'imageClassName': 'r w-full', + 'id': 'u:1a381f9ccb8c', + 'accept': '.jpeg, .jpg, .png, .gif', + 'multiple': False, + 'hideUploadButton': False, + 'fixedSize': False, + } + + def get_switch_panel(label: str, name: str, value: bool): return { 'type': 'switch', diff --git a/gsuid_core/webconsole/create_input_panel.py b/gsuid_core/webconsole/create_input_panel.py new file mode 100644 index 0000000..fd1d94c --- /dev/null +++ b/gsuid_core/webconsole/create_input_panel.py @@ -0,0 +1,10 @@ +from .create_base_panel import get_input_image_panel + + +def get_intput_image_page(): + return { + 'type': 'page', + 'title': '上传图片', + 'body': [get_input_image_panel('上传背景图', 'image')], + 'id': 'u:cace1c585efd', + } diff --git a/gsuid_core/webconsole/create_sv_panel.py b/gsuid_core/webconsole/create_sv_panel.py index 7862cbf..e183bc2 100644 --- a/gsuid_core/webconsole/create_sv_panel.py +++ b/gsuid_core/webconsole/create_sv_panel.py @@ -111,11 +111,15 @@ def get_sv_panel( 'label': '权限控制', 'name': 'pm', 'options': [ + {'label': 'BOT主人', 'value': '0'}, {'label': '超级管理员', 'value': '1'}, - {'label': '管理员', 'value': '2'}, - {'label': '正常', 'value': '3'}, - {'label': '几乎所有人', 'value': '4'}, - {'label': '所有人', 'value': '5'}, + {'label': '群主', 'value': '2'}, + {'label': '管理员', 'value': '3'}, + {'label': '频道管理员', 'value': '4'}, + {'label': '子频道管理员', 'value': '5'}, + {'label': '正常人', 'value': '6'}, + {'label': '权限极低', 'value': '7'}, + {'label': '黑名单', 'value': '8'}, ], 'id': 'u:c71f20b605d4', 'multiple': False, diff --git a/gsuid_core/webconsole/mount_app.py b/gsuid_core/webconsole/mount_app.py index b7d54c8..8295f3e 100644 --- a/gsuid_core/webconsole/mount_app.py +++ b/gsuid_core/webconsole/mount_app.py @@ -288,6 +288,20 @@ class GsAdminModel(admin.ModelAdmin): ) +class GsAdminPage(admin.PageAdmin): + async def has_page_permission( + self, + request: Request, + obj: Optional[admin.ModelAdmin] = None, + action: Optional[str] = None, + ) -> bool: + return await super().has_page_permission( + request + ) and await request.auth.requires(roles='admin', response=False)( + request + ) + + @site.register_admin class UserAuth(GsAdminModel): pk_name = 'user_id' @@ -371,7 +385,7 @@ class MyHomeAdmin(admin.HomeAdmin): @site.register_admin -class SVManagePage(admin.PageAdmin): +class SVManagePage(GsAdminPage): page_schema = PageSchema( label=('功能配置'), icon='fa fa-sliders', @@ -381,21 +395,9 @@ class SVManagePage(admin.PageAdmin): ) page = Page.parse_obj(get_sv_page()) - async def has_page_permission( - self, - request: Request, - obj: Optional[admin.ModelAdmin] = None, - action: Optional[str] = None, - ) -> bool: - return await super().has_page_permission( - request - ) and await request.auth.requires(roles='admin', response=False)( - request - ) - @site.register_admin -class ConfigManagePage(admin.PageAdmin): +class ConfigManagePage(GsAdminPage): page_schema = PageSchema( label=('修改设定'), icon='fa fa-sliders', @@ -405,18 +407,6 @@ class ConfigManagePage(admin.PageAdmin): ) page = Page.parse_obj(get_config_page()) - async def has_page_permission( - self, - request: Request, - obj: Optional[admin.ModelAdmin] = None, - action: Optional[str] = None, - ) -> bool: - return await super().has_page_permission( - request - ) and await request.auth.requires(roles='admin', response=False)( - request - ) - # 取消注册默认管理类 site.unregister_admin(admin.HomeAdmin, APIDocsApp)