From 98d97778d397e4b52c252bf85b1dc67e3daf4e65 Mon Sep 17 00:00:00 2001 From: sandeepsajan0 Date: Wed, 11 Jun 2025 19:10:56 +0530 Subject: [PATCH] Fix co-applicant permission for Partners, Reviewers, and Community Reviewers --- hypha/apply/funds/views/submission_detail.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/hypha/apply/funds/views/submission_detail.py b/hypha/apply/funds/views/submission_detail.py index 95782f15a7..dc90151c58 100644 --- a/hypha/apply/funds/views/submission_detail.py +++ b/hypha/apply/funds/views/submission_detail.py @@ -115,7 +115,11 @@ def dispatch(self, request, *args, **kwargs): submission = self.get_object() # If the requesting user submitted the application, return the Applicant view. # Reviewers may sometimes be applicants as well. - if submission.user == request.user: + # or if requesting user is a co-applicant to application, return the Applicant view. + if ( + submission.user == request.user + or submission.co_applicants.filter(user=request.user).exists() + ): return ApplicantSubmissionDetailView.as_view()(request, *args, **kwargs) if submission.status == DRAFT_STATE: raise Http404 @@ -149,7 +153,11 @@ def dispatch(self, request, *args, **kwargs): ) # If the requesting user submitted the application, return the Applicant view. # Partners may sometimes be applicants as well. - if submission.user == request.user: + # or if requesting user is a co-applicant to application, return the Applicant view. + if ( + submission.user == request.user + or submission.co_applicants.filter(user=request.user).exists() + ): return ApplicantSubmissionDetailView.as_view()(request, *args, **kwargs) # Only allow partners in the submission they are added as partners partner_has_access = submission.partners.filter(pk=request.user.pk).exists() @@ -171,7 +179,11 @@ def dispatch(self, request, *args, **kwargs): ) # If the requesting user submitted the application, return the Applicant view. # Reviewers may sometimes be applicants as well. - if submission.user == request.user: + # or if requesting user is a co-applicant to application, return the Applicant view. + if ( + submission.user == request.user + or submission.co_applicants.filter(user=request.user).exists() + ): return ApplicantSubmissionDetailView.as_view()(request, *args, **kwargs) # Only allow community reviewers in submission with a community review state. if not submission.community_review: