From 367d081dbf4bbbb6563a624469a6f430dc8973f9 Mon Sep 17 00:00:00 2001 From: VineetBala-AOT <90332175+VineetBala-AOT@users.noreply.github.com> Date: Thu, 10 Aug 2023 14:19:47 -0700 Subject: [PATCH] fixing viewer access on scheduled survey (#1993) --- met-api/src/met_api/models/survey.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/met-api/src/met_api/models/survey.py b/met-api/src/met_api/models/survey.py index 3ff5c008c..bd96f967f 100644 --- a/met-api/src/met_api/models/survey.py +++ b/met-api/src/met_api/models/survey.py @@ -178,14 +178,16 @@ def unlink_survey(cls, survey_id) -> Optional[Survey or None]: @staticmethod def _filter_accessible_surveys(query, assigned_engagements: list[int]): filter_conditions = [ - # Exclude draft engagements that the user is not assigned to - Engagement.status_id != Status.Draft.value, - # Scheduled surveys are still not viewable - Engagement.status_id != Status.Scheduled.value, - # Include all assigned engagements even if its draft + # Exclude draft engagements and scheduled engagements that the user is not assigned to + and_( + Engagement.status_id != Status.Draft.value, + Engagement.status_id != Status.Scheduled.value + ), + # Include all assigned engagements even if they are in draft status Engagement.id.in_(assigned_engagements), # Include Un-linked surveys - Survey.engagement_id.is_(None)] + Survey.engagement_id.is_(None) + ] query = query.filter(or_(*filter_conditions)) return query