fix: update program enrollments to be case insensitive on external_user_key (#29646)

UTAsutin is an example partner who would use mixed casing on their external_user_key references for program enrollment upload and matriculation. Update the system to be case insensitive on external_user_key

Co-authored-by: Simon Chen <schen@edX-C02FW0GUML85.local>
This commit is contained in:
Simon Chen
2021-12-21 09:20:16 -05:00
committed by GitHub
parent a358012cc1
commit 313afd70ae
8 changed files with 220 additions and 43 deletions

View File

@@ -11,6 +11,7 @@ import logging
from django.contrib.auth import get_user_model
from django.db import IntegrityError, transaction
from requests.structures import CaseInsensitiveDict
from common.djangoapps.course_modes.models import CourseMode
from common.djangoapps.student.api import get_access_role_by_role_name
@@ -158,10 +159,10 @@ def _get_program_enrollments_by_ext_key(program_uuid, external_user_keys):
).prefetch_related(
'program_course_enrollments'
).select_related('user')
return {
return CaseInsensitiveDict({
program_enrollment.external_user_key: program_enrollment
for program_enrollment in program_enrollments
}
})
def _get_lms_users(lms_usernames):