fix(router): check system permissions against target project

This commit is contained in:
Cheng Zhou
2026-06-08 11:08:23 +08:00
parent 8cd8c38900
commit 30e2398400
9 changed files with 283 additions and 82 deletions
+7 -1
View File
@@ -12,7 +12,7 @@ from app.crud import startup as startup_crud
from app.crud import study as study_crud
from app.crud import user as user_crud
from app.schemas.site import SiteCreate, SiteRead, SiteUpdate
from app.schemas.startup import StartupEthicsCreate, StartupFeasibilityCreate
from app.schemas.startup import KickoffMeetingCreate, StartupEthicsCreate, StartupFeasibilityCreate
from app.services.site_contact_display import build_contact_display, parse_contact_user_ids
router = APIRouter()
@@ -58,6 +58,12 @@ async def create_site(
StartupEthicsCreate(site_id=site.id),
created_by=getattr(current_user, "id", None),
)
await startup_crud.create_kickoff(
db,
study_id,
KickoffMeetingCreate(site_id=site.id),
created_by=getattr(current_user, "id", None),
)
await audit_crud.log_action(
db,
study_id=study_id,
+11
View File
@@ -413,6 +413,17 @@ def test_training_authorization_list_can_filter_by_site_name():
assert "TrainingAuthorization.site_name == site_name" in crud_source
def test_site_creation_initializes_all_startup_baseline_records():
"""创建中心时应生成启动模块默认记录,但后续手动删除不应依赖列表页重建。"""
route_path = Path(__file__).resolve().parents[1] / "app" / "api" / "v1" / "sites.py"
source = route_path.read_text()
assert "StartupFeasibilityCreate(site_id=site.id)" in source
assert "StartupEthicsCreate(site_id=site.id)" in source
assert "KickoffMeetingCreate(site_id=site.id)" in source
assert "await startup_crud.create_kickoff(" in source
def test_visit_list_permission_matches_wired_visit_endpoints():
"""访视当前没有详情查询接口,列表接口应只使用 visits:list。"""
visits_path = Path(__file__).resolve().parents[1] / "app" / "api" / "v1" / "visits.py"