From 5f04fd35a090fbdbd2c7fd01f6432520713f7cf1 Mon Sep 17 00:00:00 2001 From: muhammad-ammar Date: Mon, 2 Nov 2020 20:00:01 +0500 Subject: [PATCH] more logs for data sharing consent ENT-3494 --- openedx/features/enterprise_support/api.py | 36 +++++++++++++++++----- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/openedx/features/enterprise_support/api.py b/openedx/features/enterprise_support/api.py index 0d853a8ffe5e..725f78db5ef7 100644 --- a/openedx/features/enterprise_support/api.py +++ b/openedx/features/enterprise_support/api.py @@ -103,14 +103,15 @@ def consent_required(self, enrollment_exists=False, **kwargs): # Call the endpoint with the given kwargs, and check the value that it provides. response = self.consent_endpoint.get(**kwargs) + LOGGER.info( + '[ENTERPRISE DSC] Consent Requirement Info. APIParams: [%s], APIResponse: [%s], EnrollmentExists: [%s]', + kwargs, + response, + enrollment_exists, + ) + # No Enterprise record exists, but we're already enrolled in a course. So, go ahead and proceed. if enrollment_exists and not response.get('exists', False): - LOGGER.info( - '[ENTERPRISE DSC] No Consent Required. APIParams: [%s], APIResponse: [%s], EnrollmentExists: [%s]', - kwargs, - response, - enrollment_exists, - ) return False # In all other cases, just trust the Consent API. @@ -584,6 +585,27 @@ def consent_needed_for_course(request, user, course_id, enrollment_exists=False) for learner in enterprise_learner_details ) + if not consent_needed: + for learner in enterprise_learner_details: + if current_enterprise_uuid != learner['enterprise_customer']['uuid']: + LOGGER.info( + '[ENTERPRISE DSC] Consent requirement failed due to enterprise mismatch. ' + 'USER: [%s], CurrentEnterprise: [%s], LearnerEnterprise: [%s]', + user.username, + current_enterprise_uuid, + learner['enterprise_customer']['uuid'] + ) + + learner_enterprise_site = Site.objects.get(domain=learner['enterprise_customer']['site']['domain']) + if learner_enterprise_site != request.site: + LOGGER.info( + '[ENTERPRISE DSC] Consent requirement failed due to site mismatch. ' + 'USER: [%s], RequestSite: [%s], LearnerEnterpriseSite: [%s]', + user.username, + request.site, + learner_enterprise_site + ) + if consent_needed: LOGGER.info( u"Consent from user [{username}] is needed for course [{course_id}]. The user's current enterprise" @@ -594,7 +616,7 @@ def consent_needed_for_course(request, user, course_id, enrollment_exists=False) ) else: LOGGER.info( - u"Consent from user [{username}] is not needed for course [{course_id}]. The user's current enterprise" + u"Consent from user [{username}] is not needed for course [{course_id}]. The user's current enterprise " u"does not require data sharing consent.".format( username=user.username, course_id=course_id