fix: 公告按页、身份标签权限与菜单种子

This commit is contained in:
XingQue
2026-06-25 15:50:54 +08:00
parent 9575edcfc4
commit 59f5a695d8
4 changed files with 78 additions and 2 deletions

View File

@@ -0,0 +1,43 @@
"""补齐 gvsdsdk 权限码(可重复执行)。"""
import uuid
from django.core.management.base import BaseCommand
from django.utils import timezone
from gvsdsdk.models import Permission
# (PermCode, PermName, PermDesc, PermCategory)
EXTRA_PERMISSIONS = [
(
'sfbq666',
'身份装饰标签管理',
'管理小程序身份装饰标签(与用户管理-身份装饰标签菜单对应)',
'用户管理',
),
]
class Command(BaseCommand):
help = '写入 gvsdsdk Permission 表缺失的权限码(如 sfbq666'
def handle(self, *args, **options):
sample = Permission.objects.filter(PermStatus=1).first()
tenant_uuid = sample.TenantUUID if sample else uuid.UUID('00000000-0000-0000-0000-000000000001').bytes
created = 0
for code, name, desc, category in EXTRA_PERMISSIONS:
if Permission.objects.filter(PermCode=code).exists():
self.stdout.write(f' 已存在: {code}')
continue
Permission.objects.create(
PermUUID=uuid.uuid4().bytes,
TenantUUID=tenant_uuid,
PermCode=code,
PermName=name,
PermDesc=desc,
PermCategory=category,
PermStatus=1,
CreateTime=timezone.now(),
)
created += 1
self.stdout.write(self.style.SUCCESS(f' 新增权限: {code} - {name}'))
self.stdout.write(self.style.SUCCESS(f'完成,新增 {created} 条权限'))

View File

@@ -46,7 +46,7 @@ MENU_ROWS = [
{'page_id': 'user.zuzhang', 'name': '组长管理', 'path': '/user/zuzhang', 'parent_id': 'user', 'sort_order': 54,
'perm_codes': ['6600a', '6600b', '6600c', '6600d', '6600e']},
{'page_id': 'user.identity-tag', 'name': '身份装饰标签', 'path': '/user/identity-tag', 'parent_id': 'user', 'sort_order': 55,
'perm_codes': ['sfbq666']},
'perm_codes': ['8080a', 'sfbq666']},
# 提现
{'page_id': 'withdraw', 'name': '提现管理', 'path': '', 'parent_id': '', 'sort_order': 60},
{'page_id': 'withdraw.audit', 'name': '提现审核', 'path': '/withdraw/audit', 'parent_id': 'withdraw', 'sort_order': 61,
@@ -133,3 +133,8 @@ class Command(BaseCommand):
self.stdout.write(self.style.SUCCESS(
f'kefu_menu_page 种子完成:新增 {created},更新 {updated},共 {len(MENU_ROWS)}'
))
try:
from django.core.management import call_command
call_command('seed_gvsdsdk_permissions')
except Exception as e:
self.stdout.write(self.style.WARNING(f'seed_gvsdsdk_permissions 跳过: {e}'))

View File

@@ -63,7 +63,8 @@ def get_gonggao_content(request, notice_type=1, page_key=None):
club_id = _display_club_id(request)
pk = normalize_page_key(page_key, image_type=1) if page_key else LUNBO_PAGE_ORDER_POOL
obj = Gonggao.query.filter(club_id=club_id, page_key=pk).first()
if not obj and notice_type:
# 仅旧接口未传 page_key 时,才回退 NoticeType(兼容历史单条公告)
if not obj and notice_type and not page_key:
obj = Gonggao.query.filter(club_id=club_id, NoticeType=notice_type).first()
return obj.Content if obj and obj.Content else ''