6241543119
一、RBAC 权限管理(角色 → 可见页面) - 新增 admin_role 表 + 权限目录 permissions.py:角色持有一组页面 key,登录后左侧只展示这些页 - 内建角色 管理员(super_admin 全权锁定)/运营/财务/技术,页集对齐原型;key 承重(require_role 用),另加中文 label 展示 - 角色 CRUD 端点(仅 super_admin)+ 目录端点;登录/me 下发当前角色有效可见页 - admins 加删除、角色存在性校验;可复看已确定登录密码:UI 建的账号留存明文 plain_password,脚本建的超管不留存 二、系统配置下发修复 - 首页数据「保存即生效」:显式保存(apply_now)对 real/manual 直接落配置目标值、绕过只增不减护栏(修「改了 app 端不变」),护栏仍管自动 tick - 首页轮播新增数据源三选一:mixed(真实优先+种子)/real(只真实)/seed(只种子),get_feed 分支 + /marquee-seeds/mode 端点 - 福利页 Tab 隐藏 任务/里程碑,及看广告的单次金币/每轮次数/信息流开关:CONFIG_DEFS 加 hidden + list_config 过滤,业务读取默认值不受影响 三、比价记录店/商品搜索 - comparison_record 加 product_names 派生列(从下单 items 拼商品名),迁移建列并回填历史行 - admin 比价记录列表店/商品分列可搜:走 product_names 普通列 LIKE,规避 SQLite JSON 中文 ensure_ascii 转义搜不到的坑 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: zzhyyyyy <2685922758@qq.com> Reviewed-on: #117 Co-authored-by: zhuzihao <zhuzihao@wonderable.ai> Co-committed-by: zhuzihao <zhuzihao@wonderable.ai>
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
"""admin RBAC 角色 + 权限目录 schemas。"""
|
|
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class PermissionPage(BaseModel):
|
|
key: str
|
|
label: str
|
|
|
|
|
|
class PermissionGroup(BaseModel):
|
|
group: str
|
|
pages: list[PermissionPage]
|
|
|
|
|
|
class RoleOut(BaseModel):
|
|
id: int
|
|
name: str # 角色 key(承重,不可变)
|
|
label: str # 展示名(UI 显示)
|
|
pages: list[str] # 有效可见页 key(super_admin = 全部页)
|
|
is_builtin: bool # 内建角色(super_admin):不可编辑/删除
|
|
in_use: int # 使用该角色的管理员数(删除前端提示 / 拦截用)
|
|
|
|
|
|
class RoleCreateRequest(BaseModel):
|
|
# 新增自定义角色:name 即用户输入的名称(同时作 key 与展示名)
|
|
name: str = Field(..., min_length=1, max_length=32)
|
|
pages: list[str] = Field(default_factory=list)
|
|
|
|
|
|
class RoleUpdateRequest(BaseModel):
|
|
# 只改展示名 + 可见页;key 不可变
|
|
label: str | None = Field(None, min_length=1, max_length=32)
|
|
pages: list[str] | None = None
|