Spaces:
Runtime error
Runtime error
Apply PR #7 security changes directly to main: app/projects/api.py
Browse files- app/projects/api.py +12 -9
app/projects/api.py
CHANGED
|
@@ -66,8 +66,8 @@ async def update_notification_preference(request: Request, payload: dict[str, An
|
|
| 66 |
|
| 67 |
@router.post("/workspace/invitations", response_model=InvitationResponse)
|
| 68 |
async def invite_member(request: Request, payload: InvitationCreate) -> InvitationResponse:
|
| 69 |
-
workspace_id,
|
| 70 |
-
return await request.app.state.container.collaboration.invite_member(workspace_id, payload.email, payload.role)
|
| 71 |
|
| 72 |
@router.patch("/workspace/teams/{team_id}", response_model=TeamResponse)
|
| 73 |
async def update_team(request: Request, team_id: str, payload: TeamBase) -> TeamResponse:
|
|
@@ -82,7 +82,8 @@ async def archive_team(request: Request, team_id: str) -> Response:
|
|
| 82 |
|
| 83 |
@router.get("/workspace/workflows/{workflow_id}/requests", response_model=list[ApprovalRequest])
|
| 84 |
async def list_approval_requests(request: Request, workflow_id: str) -> list[ApprovalRequest]:
|
| 85 |
-
|
|
|
|
| 86 |
|
| 87 |
|
| 88 |
@router.post("/workspace/requests/{request_id}/approve", response_model=ApprovalRequest)
|
|
@@ -90,16 +91,16 @@ async def approve_request(
|
|
| 90 |
request: Request,
|
| 91 |
request_id: str
|
| 92 |
) -> ApprovalRequest:
|
| 93 |
-
|
| 94 |
-
return await request.app.state.container.approval.approve_request(request_id, user_id)
|
| 95 |
|
| 96 |
@router.post("/workspace/requests/{request_id}/reject", response_model=ApprovalRequest)
|
| 97 |
async def reject_request(
|
| 98 |
request: Request,
|
| 99 |
request_id: str
|
| 100 |
) -> ApprovalRequest:
|
| 101 |
-
|
| 102 |
-
return await request.app.state.container.approval.reject_request(request_id, user_id)
|
| 103 |
|
| 104 |
@router.post("/workspace/requests/{request_id}/comments", response_model=ReviewComment)
|
| 105 |
async def add_review_comment(
|
|
@@ -327,7 +328,8 @@ async def list_project_collaborators(
|
|
| 327 |
request: Request,
|
| 328 |
project_id: UUID
|
| 329 |
) -> list[MemberResponse]:
|
| 330 |
-
|
|
|
|
| 331 |
|
| 332 |
@router.post("/{project_id}/collaborators", response_model=MemberResponse)
|
| 333 |
async def add_project_collaborator(
|
|
@@ -347,7 +349,8 @@ async def remove_project_collaborator(
|
|
| 347 |
project_id: UUID,
|
| 348 |
user_id: str
|
| 349 |
) -> Response:
|
| 350 |
-
|
|
|
|
| 351 |
return Response(status_code=status.HTTP_204_NO_CONTENT)
|
| 352 |
|
| 353 |
|
|
|
|
| 66 |
|
| 67 |
@router.post("/workspace/invitations", response_model=InvitationResponse)
|
| 68 |
async def invite_member(request: Request, payload: InvitationCreate) -> InvitationResponse:
|
| 69 |
+
workspace_id, actor_user_id, _, _ = _identity(request)
|
| 70 |
+
return await request.app.state.container.collaboration.invite_member(workspace_id, actor_user_id, payload.email, payload.role)
|
| 71 |
|
| 72 |
@router.patch("/workspace/teams/{team_id}", response_model=TeamResponse)
|
| 73 |
async def update_team(request: Request, team_id: str, payload: TeamBase) -> TeamResponse:
|
|
|
|
| 82 |
|
| 83 |
@router.get("/workspace/workflows/{workflow_id}/requests", response_model=list[ApprovalRequest])
|
| 84 |
async def list_approval_requests(request: Request, workflow_id: str) -> list[ApprovalRequest]:
|
| 85 |
+
workspace_id, _, _, _ = _identity(request)
|
| 86 |
+
return await request.app.state.container.approval.list_requests(workspace_id, workflow_id)
|
| 87 |
|
| 88 |
|
| 89 |
@router.post("/workspace/requests/{request_id}/approve", response_model=ApprovalRequest)
|
|
|
|
| 91 |
request: Request,
|
| 92 |
request_id: str
|
| 93 |
) -> ApprovalRequest:
|
| 94 |
+
workspace_id, user_id, _, _ = _identity(request)
|
| 95 |
+
return await request.app.state.container.approval.approve_request(workspace_id, request_id, user_id)
|
| 96 |
|
| 97 |
@router.post("/workspace/requests/{request_id}/reject", response_model=ApprovalRequest)
|
| 98 |
async def reject_request(
|
| 99 |
request: Request,
|
| 100 |
request_id: str
|
| 101 |
) -> ApprovalRequest:
|
| 102 |
+
workspace_id, user_id, _, _ = _identity(request)
|
| 103 |
+
return await request.app.state.container.approval.reject_request(workspace_id, request_id, user_id)
|
| 104 |
|
| 105 |
@router.post("/workspace/requests/{request_id}/comments", response_model=ReviewComment)
|
| 106 |
async def add_review_comment(
|
|
|
|
| 328 |
request: Request,
|
| 329 |
project_id: UUID
|
| 330 |
) -> list[MemberResponse]:
|
| 331 |
+
workspace_id, _, _, _ = _identity(request)
|
| 332 |
+
return await request.app.state.container.collaboration.list_project_collaborators(workspace_id, str(project_id))
|
| 333 |
|
| 334 |
@router.post("/{project_id}/collaborators", response_model=MemberResponse)
|
| 335 |
async def add_project_collaborator(
|
|
|
|
| 349 |
project_id: UUID,
|
| 350 |
user_id: str
|
| 351 |
) -> Response:
|
| 352 |
+
workspace_id, _, _, _ = _identity(request)
|
| 353 |
+
await request.app.state.container.collaboration.remove_project_collaborator(workspace_id, str(project_id), user_id)
|
| 354 |
return Response(status_code=status.HTTP_204_NO_CONTENT)
|
| 355 |
|
| 356 |
|