Files
server-core/app/api/routers/rbac_developer.py
T
Pine f6f2008498 refactor(auth): 账号类型彻底收敛为四种 + 各端口守卫改 service(去除冗余角色)
- 迁移守卫: provider/enterprise/government/investor/developer 一律 require_roles("service")
- token/profile.role 归一为四种(operator/carrier/opc_member/service); require_roles 与之一致
- 账号类型集中 app/domain/account_types.py; 子角色停用
2026-08-26 13:15:06 +08:00

47 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
"""开放平台端点:开发者工作台 / 应用 / 插件 / 技能 / API 凭证。"""
from __future__ import annotations
from fastapi import APIRouter, Depends
from ..dependencies import get_db
from ...rbac import require_roles
from ...infrastructure.repositories import Database
router = APIRouter(prefix="/developer", tags=["developer"])
async def _page(port: str, page: str):
async def handler(db: Database = Depends(get_db)):
return await db.portal_pages.get(port, page) or {"items": []}
return handler
@router.get("/dashboard", summary="开发者工作台")
async def dev_dashboard(db: Database = Depends(get_db), _u: dict = Depends(require_roles("service"))):
return await db.portal_pages.get("developer", "dashboard") or {"stats": []}
@router.get("/apps", summary="我的应用")
async def dev_apps(db: Database = Depends(get_db), _u: dict = Depends(require_roles("service"))):
return await db.portal_pages.get("developer", "apps") or {"items": []}
@router.get("/plugins", summary="我的插件")
async def dev_plugins(db: Database = Depends(get_db), _u: dict = Depends(require_roles("service"))):
return await db.portal_pages.get("developer", "plugins") or {"items": []}
@router.get("/skills", summary="技能市场")
async def dev_skills(db: Database = Depends(get_db), _u: dict = Depends(require_roles("service"))):
return await db.portal_pages.get("developer", "skills") or {"items": []}
@router.get("/api-keys", summary="API 凭证")
async def dev_api_keys(db: Database = Depends(get_db), _u: dict = Depends(require_roles("service"))):
return {"items": [
{"id": "key_001", "name": "生产环境", "prefix": "pa_live_****abcd", "created_at": "2026-07-01"},
{"id": "key_002", "name": "测试环境", "prefix": "pa_test_****wxyz", "created_at": "2026-07-05"},
], "note": "演示:凭证仅展示脱敏前缀"}