From dd70066644bbf8b7d1dc280cff41adfa8972cf1d Mon Sep 17 00:00:00 2001 From: muhammad-ammar Date: Thu, 16 Jun 2022 19:13:08 +0500 Subject: [PATCH] chore: refine source param in dsc url --- lms/djangoapps/course_wiki/middleware.py | 2 +- openedx/features/enterprise_support/api.py | 7 ++++--- openedx/features/enterprise_support/tests/test_api.py | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lms/djangoapps/course_wiki/middleware.py b/lms/djangoapps/course_wiki/middleware.py index 8aefe623f5..54884a23f2 100644 --- a/lms/djangoapps/course_wiki/middleware.py +++ b/lms/djangoapps/course_wiki/middleware.py @@ -81,7 +81,7 @@ class WikiAccessMiddleware(MiddlewareMixin): return redirect('about_course', str(course_id)) # If we need enterprise data sharing consent for this course, then redirect to the form. - consent_url = get_enterprise_consent_url(request, str(course_id)) + consent_url = get_enterprise_consent_url(request, str(course_id), source='WikiAccessMiddleware') if consent_url: return redirect(consent_url) diff --git a/openedx/features/enterprise_support/api.py b/openedx/features/enterprise_support/api.py index 373eaf4bd5..2074b7a563 100644 --- a/openedx/features/enterprise_support/api.py +++ b/openedx/features/enterprise_support/api.py @@ -352,7 +352,8 @@ def data_sharing_consent_required(view_func): Otherwise, just call the wrapped view function. """ # Redirect to the consent URL, if consent is required. - consent_url = get_enterprise_consent_url(request, course_id, enrollment_exists=True) + source = getattr(view_func, '__name__', '') + consent_url = get_enterprise_consent_url(request, course_id, enrollment_exists=True, source=source) if consent_url: real_user = getattr(request.user, 'real_user', request.user) LOGGER.info( @@ -721,7 +722,7 @@ def get_consent_required_courses(user, course_ids): @enterprise_is_enabled(otherwise='') -def get_enterprise_consent_url(request, course_id, user=None, return_to=None, enrollment_exists=False): +def get_enterprise_consent_url(request, course_id, user=None, return_to=None, enrollment_exists=False, source='lms'): """ Build a URL to redirect the user to the Enterprise app to provide data sharing consent for a specific course ID. @@ -753,7 +754,7 @@ def get_enterprise_consent_url(request, course_id, user=None, return_to=None, en url_params = { 'enterprise_customer_uuid': enterprise_customer_uuid_for_request(request), 'course_id': course_id, - 'source': 'lms-courseware', + 'source': source, 'next': request.build_absolute_uri(return_path), 'failure_url': request.build_absolute_uri( reverse('dashboard') + '?' + urlencode( diff --git a/openedx/features/enterprise_support/tests/test_api.py b/openedx/features/enterprise_support/tests/test_api.py index 3731e81a1b..81f416f8cc 100644 --- a/openedx/features/enterprise_support/tests/test_api.py +++ b/openedx/features/enterprise_support/tests/test_api.py @@ -712,7 +712,7 @@ class TestEnterpriseApi(EnterpriseServiceMockMixin, CacheIsolationTestCase): expected_path = '/courses/course-v1:edX+DemoX+Demo_Course/courseware' expected_url_args = { 'course_id': ['course-v1:edX+DemoX+Demo_Course'], - 'source': ['lms-courseware'], + 'source': ['lms'], 'failure_url': ['http://localhost:8000/dashboard?consent_failed=course-v1%3AedX%2BDemoX%2BDemo_Course'], 'enterprise_customer_uuid': ['cf246b88-d5f6-4908-a522-fc307e0b0c59'], 'next': [f'http://localhost:8000{expected_path}']