basyx commited on
Commit
58a736e
·
verified ·
1 Parent(s): 878ab1e

Apply PR #7 security changes directly to main: app/projects/api.py

Browse files
Files changed (1) hide show
  1. 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, _, _, _ = _identity(request)
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
- return await request.app.state.container.approval.list_requests(workflow_id)
 
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
- _, user_id, _, _ = _identity(request)
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
- _, user_id, _, _ = _identity(request)
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
- return await request.app.state.container.collaboration.list_project_collaborators(str(project_id))
 
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
- await request.app.state.container.collaboration.remove_project_collaborator(str(project_id), user_id)
 
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