🎨 适配网页控制台的权限控制

This commit is contained in:
Wuyi无疑 2023-04-03 01:15:08 +08:00
parent e45c202485
commit c0802a9b48
4 changed files with 51 additions and 30 deletions

View File

@ -1,6 +1,23 @@
from typing import Dict, List 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): def get_switch_panel(label: str, name: str, value: bool):
return { return {
'type': 'switch', 'type': 'switch',

View File

@ -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',
}

View File

@ -111,11 +111,15 @@ def get_sv_panel(
'label': '权限控制', 'label': '权限控制',
'name': 'pm', 'name': 'pm',
'options': [ 'options': [
{'label': 'BOT主人', 'value': '0'},
{'label': '超级管理员', 'value': '1'}, {'label': '超级管理员', 'value': '1'},
{'label': '管理员', 'value': '2'}, {'label': '群主', 'value': '2'},
{'label': '正常', 'value': '3'}, {'label': '管理员', 'value': '3'},
{'label': '几乎所有人', 'value': '4'}, {'label': '频道管理员', 'value': '4'},
{'label': '所有人', 'value': '5'}, {'label': '子频道管理员', 'value': '5'},
{'label': '正常人', 'value': '6'},
{'label': '权限极低', 'value': '7'},
{'label': '黑名单', 'value': '8'},
], ],
'id': 'u:c71f20b605d4', 'id': 'u:c71f20b605d4',
'multiple': False, 'multiple': False,

View File

@ -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 @site.register_admin
class UserAuth(GsAdminModel): class UserAuth(GsAdminModel):
pk_name = 'user_id' pk_name = 'user_id'
@ -371,7 +385,7 @@ class MyHomeAdmin(admin.HomeAdmin):
@site.register_admin @site.register_admin
class SVManagePage(admin.PageAdmin): class SVManagePage(GsAdminPage):
page_schema = PageSchema( page_schema = PageSchema(
label=('功能配置'), label=('功能配置'),
icon='fa fa-sliders', icon='fa fa-sliders',
@ -381,21 +395,9 @@ class SVManagePage(admin.PageAdmin):
) )
page = Page.parse_obj(get_sv_page()) 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 @site.register_admin
class ConfigManagePage(admin.PageAdmin): class ConfigManagePage(GsAdminPage):
page_schema = PageSchema( page_schema = PageSchema(
label=('修改设定'), label=('修改设定'),
icon='fa fa-sliders', icon='fa fa-sliders',
@ -405,18 +407,6 @@ class ConfigManagePage(admin.PageAdmin):
) )
page = Page.parse_obj(get_config_page()) 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) site.unregister_admin(admin.HomeAdmin, APIDocsApp)