From 501ac92bd274d9bad7ae283f29d13d0815abf8ad Mon Sep 17 00:00:00 2001 From: "adeel.tajamul" Date: Fri, 27 May 2022 17:41:16 +0500 Subject: [PATCH] fix: thread api will now allow filter by group id --- lms/djangoapps/discussion/rest_api/api.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/lms/djangoapps/discussion/rest_api/api.py b/lms/djangoapps/discussion/rest_api/api.py index cc02f74f71..7324b9d607 100644 --- a/lms/djangoapps/discussion/rest_api/api.py +++ b/lms/djangoapps/discussion/rest_api/api.py @@ -42,6 +42,7 @@ from openedx.core.djangoapps.django_comment_common.models import ( FORUM_ROLE_COMMUNITY_TA, FORUM_ROLE_MODERATOR, CourseDiscussionSettings, + Role, ) from openedx.core.djangoapps.django_comment_common.signals import ( comment_created, @@ -783,12 +784,26 @@ def get_thread_list( if count_flagged and not context["is_requester_privileged"]: raise PermissionDenied("`count_flagged` can only be set by users with moderator access or higher.") + group_id = None + allowed_roles = [ + FORUM_ROLE_ADMINISTRATOR, + FORUM_ROLE_COMMUNITY_TA, + FORUM_ROLE_MODERATOR, + ] + + if request.GET.get("group_id", None): + if Role.user_has_role_for_course(request.user, course_key, allowed_roles): + try: + group_id = int(request.GET.get("group_id", None)) + except ValueError: + pass + + if (group_id is None) and (not context["is_requester_privileged"]): + group_id = get_group_id_for_user(request.user, CourseDiscussionSettings.get(course.id)) + query_params = { "user_id": str(request.user.id), - "group_id": ( - None if context["is_requester_privileged"] else - get_group_id_for_user(request.user, CourseDiscussionSettings.get(course.id)) - ), + "group_id": group_id, "page": page, "per_page": page_size, "text": text_search,