fix: 修复接口错误 - _loads未定义+重新注册ecosystem路由
1. repositories.py: 添加 _loads 函数定义(之前从 hall_repositories 隐式依赖导致 NameError) - 修复 /cert/types 返回 500 错误 2. main.py: 重新注册 rbac_ecosystem 路由(通知/信用/任务/合同/争议等基础功能) - 修复 /me/credit 返回 404 错误 3. rbac_ecosystem.py: 将已移除的 service 角色统一替换为 opc_member - _ANY 元组移除 service - 所有 require_roles 中的 service 替换为 opc_member
This commit is contained in:
@@ -13,7 +13,7 @@ from ...infrastructure.repositories import Database
|
||||
|
||||
router = APIRouter(tags=["ecosystem"])
|
||||
|
||||
_ANY = ("opc_member", "carrier", "service", "operator")
|
||||
_ANY = ("opc_member", "carrier", "operator")
|
||||
|
||||
|
||||
# ── 通知中心 ──────────────────────────────────────────────────────────────
|
||||
@@ -51,7 +51,7 @@ async def rate_task(
|
||||
req: RatingRequest,
|
||||
request: Request,
|
||||
db: Database = Depends(get_db),
|
||||
actor: dict = Depends(require_roles("service", "opc_member")),
|
||||
actor: dict = Depends(require_roles("opc_member")),
|
||||
):
|
||||
if not req.to_id:
|
||||
raise HTTPException(status_code=400, detail="缺少被评对象")
|
||||
@@ -66,7 +66,7 @@ async def rate_task(
|
||||
async def get_contract(
|
||||
task_id: str,
|
||||
db: Database = Depends(get_db),
|
||||
_u: dict = Depends(require_roles("service", "opc_member")),
|
||||
_u: dict = Depends(require_roles("opc_member")),
|
||||
):
|
||||
contract = await db.contracts.get_for_task(task_id)
|
||||
if contract is None:
|
||||
@@ -80,7 +80,7 @@ async def sign_contract(
|
||||
req: SignRequest,
|
||||
request: Request,
|
||||
db: Database = Depends(get_db),
|
||||
actor: dict = Depends(require_roles("service", "opc_member")),
|
||||
actor: dict = Depends(require_roles("opc_member")),
|
||||
):
|
||||
from ...services.settlement_service import SettlementService
|
||||
|
||||
@@ -96,7 +96,7 @@ async def release_escrow(
|
||||
task_id: str,
|
||||
request: Request,
|
||||
db: Database = Depends(get_db),
|
||||
actor: dict = Depends(require_roles("service")),
|
||||
actor: dict = Depends(require_roles("opc_member")),
|
||||
):
|
||||
from ...services.settlement_service import SettlementService
|
||||
|
||||
@@ -122,7 +122,7 @@ async def create_dispute(
|
||||
req: DisputeRequest,
|
||||
request: Request,
|
||||
db: Database = Depends(get_db),
|
||||
actor: dict = Depends(require_roles("service", "opc_member")),
|
||||
actor: dict = Depends(require_roles("opc_member")),
|
||||
):
|
||||
from ...services.settlement_service import SettlementService
|
||||
|
||||
@@ -151,7 +151,7 @@ async def resolve_dispute(
|
||||
@router.get("/investor/matches", summary="投资撮合(按偏好推荐)")
|
||||
async def investor_matches(
|
||||
db: Database = Depends(get_db),
|
||||
user: dict = Depends(require_roles("service")),
|
||||
user: dict = Depends(require_roles("opc_member")),
|
||||
):
|
||||
from ...services.settlement_service import SettlementService
|
||||
|
||||
@@ -164,7 +164,7 @@ async def join_roadshow(
|
||||
roadshow_id: str,
|
||||
request: Request,
|
||||
db: Database = Depends(get_db),
|
||||
actor: dict = Depends(require_roles("service", "operator", "carrier")),
|
||||
actor: dict = Depends(require_roles("opc_member", "operator", "carrier")),
|
||||
):
|
||||
rs = await db.roadshows.get(roadshow_id)
|
||||
if rs is None:
|
||||
|
||||
Reference in New Issue
Block a user