Skip to content

Fix LTI 1.1 Basic Outcomes Service and LTI 2.0 Result Service to Support External User IDs

Choose a tag to compare

@michaelroytman michaelroytman released this 29 Nov 21:41
· 269 commits to master since this release
78cabcf

In #307, we added the ability to send a stable, static user identifier (i.e. external user ID) to fix failed launches with the QwikLabs tool. This is because the QwikLabs tool did not work with the course-anonymized user IDs we used to send (i.e. anonymous user IDs). Inadvertently, this change broke the LTI 1.1 Basic Outcomes Service and the LTI 2.0 Result Service for courses that use the external user ID (i.e. they have the lti_consumer.enable_external_user_id_1p1_launches CourseWaffleFlag enabled). The Basic Outcomes Service and Result Service handle grade pass backs. Because we now have two ways to identify a user in LTI 1.1/2.0, we must update the Basic Outcomes Service and Result Service to support both.

  • Fix the LTI 1.1 Outcome Results Service to be able to tie an outcome pass back to a user when the user ID is an
    external_user_id.
  • Fix the LTI 2.0 Result Service to be able to tie a result pass back to a user when the user ID is an
    external_user_id.
  • Update the RESULT_SERVICE_SUFFIX_PARSER regex string to be able to parse UUIDs to accommodate external_user_ids.
  • Add a get_lti_1p1_user_from_user_id method to the LtiConsumerXBlock to get the user object associated with a user
    ID.