- Nov 29, 2022
-
-
Kshitij Sobti authored
-
Agrendalath authored
-
Kshitij Sobti authored
Replaces usages of runtime.course_id with runtime.scope_ids.usage_id.context_key.
-
Kshitij Sobti authored
-
Arunmozhi authored
The hostname used to construct the resource link ID is moved from using a runtime attribute to the LMS_BASE setting.
-
Arunmozhi authored
The `rebind_noauth_module_to_user` function is deprecated in the core edx-platform [1]. This is now replaced with a "rebind_user" service. This commit brings this change to the LTI Consumer XBlock. [1] - https://github.com/openedx/edx-platform/pull/30320/
-
- Nov 28, 2022
-
-
Arunmozhi authored
The OAuthlib 1.0 Client's get_oauth_params fails when processing Webob request object with the body stored as a binary instead of string. This commit replaces the client function with a different one which doesn't involve body hashing, as the body hash is calculated explicitly.
-
- Nov 21, 2022
-
-
Sarina Canelake authored
Fix github url strings (org edx -> openedx)
-
Sarina Canelake authored
-
Sarina Canelake authored
-
Sarina Canelake authored
-
Sarina Canelake authored
-
Michael Roytman authored
Add course flag to send external_user_id as user_id in LTI 1.1 XBlock launches
-
- Nov 18, 2022
-
-
michaelroytman authored
This commit introduces a new CourseWaffleFlag lti_consumer.enable_external_user_id_1p1_launches. When this flag is enabled for a course, LTI 1.1 XBlock launches in that course will send the user's external_user_id as the user_id attribute of the launch. external_user_id is the user's external user ID as defined, created, and stored by the external_user_ids Djangoapp in the edx-platform. When this waffle is not enabled for a course - the default case - LTI 1.1 XBlock launches in that course will continue to send the user's anonymous_user_id as the user_id attribute of the launch, as before. This provides an opt-in opportunity for courses to send a consistent, static, and opaque user identifier in an LTI 1.1 XBlock launch. This may be necessary for integration with LTI tools that require such an identifier. Please be aware that toggling this flag in a running course carries the risk of breaking the LTI integrations in the course. This flag should also only be enabled for new courses in which no LTI attempts have been made.
-
- Nov 16, 2022
-
-
Michael Roytman authored
build: update library version to 6.3.0 to release changes in pull #297
-
michaelroytman authored
-
Michael Roytman authored
build: update library version to 6.2.0 to release changes in pull #297
-
michaelroytman authored
-
Michael Roytman authored
Proctoring Service Implementation In-Browser Proctoring Launch
-
michaelroytman authored
* Adds an Lti1p3ProctoringLaunchData data class. It should be included as an attribute of the Lti1p3LaunchData data class to provide necessary proctoring data for a proctoring launch. * Adds an LtiProctoringConsumer class. This class is used to generate LTI proctoring launch requests and to decode and validate the JWT send back by the Tool with the LtiStartAssessment message. * Adds an lti_1p3_proctoring_enabled BooleanField to the LtiConfiguration model. This field controls whether proctoring is enabled for a particular LTI integration. * Modifies the launch_gate_endpoint to support LtiStartProctoring and LtiEndAssessment LTI launch messages. * Adds an start_proctoring_assessment_endpoint to support LtiStartAssessment messages from the Tool. * Adds an LTI_1P3_PROCTORING_ASSESSMENT_STARTED signal. This signal is emitted when the LtiStartAssessment message is sent from the Tool to inform users of the library that the LtiStartAssessment message has been received.
-
edX requirements bot authored
-
- Nov 09, 2022
-
-
Andrew Shultz authored
fix: remove general use of load_block_as_user
-
- Nov 07, 2022
-
-
Andy Shultz authored
For the config model we do not need to go as far as binding the block to the user and already get enough data out of the modulestore to satisfy the storage on the xblock case. Add a new function to get that much xblock only. For the limited cases where we are using the block more directly as a block we maintain the old function. Also includes a fix to test_views that was closing the wrong level mock and leaving an open patch into other tests.
-
- Nov 04, 2022
-
-
Varsha authored
Python Requirements Update
-
Andrew Shultz authored
docs: emphasize that for dev the xblock must be installed in two containers
-
Andy Shultz authored
-
- Nov 02, 2022
-
-
edX requirements bot authored
-
- Nov 01, 2022
-
-
Michael Roytman authored
Add ADR for decoupling LTI launches from the XBlock
-
michaelroytman authored
This commit adds an ADR describing our strategy for decoupling LTI launches from the XBlock and from the edX platform.
-
- Oct 26, 2022
-
-
Andrew Shultz authored
feat: add override for the LMS_BASE_URL in various LTI settings
-
Andrew Shultz authored
API gets config from launch data via config_id
-
- Oct 25, 2022
-
-
Andy Shultz authored
... without messing up the rest of your world by changing the LMS base URL for everyone. Meant for ngrok testing of LTI 1.3.
-
- Oct 20, 2022
-
-
Andy Shultz authored
these functions require the LMS environment which is not available in test so they are generally mocked away. Mark them as such.
-
Andy Shultz authored
-
Andy Shultz authored
Note that this uses config_id (the UUID) not config.id (the int) This required a way to get config_id if we only have the block. And it means that we are more likely to go through load_block_as_user because we have not created the config off the block even when calling from the block (since the block has to go through that config ID). A lot of tests had to be updated to have more complete configuration setup because config_id is now load bearing.
-
Andy Shultz authored
Sometimes we need to load the block. Current code always rebinds the block to the anonymous user because we might not have a user. But in many cases we do have a user and may have already loaded and bound the block in question. Check for user and request and if the block is already bound and just use that block if possible or at least load the block with the user you actually have.
-
- Oct 19, 2022
-
-
Andy Shultz authored
-
- Oct 18, 2022
-
-
Michael Roytman authored
LTI 1.3 Fixes: Clickjacking Protection Preventing Launch and Incorrect Authentication Response/Launch URL
-
- Oct 17, 2022
-
-
michaelroytman authored
-
michaelroytman authored
This commit fixes a bug in the way we determine where to send the authentication response - the LTI 1.3 launch message - as part of an LTI 1.3 launch. According to the 1EdTech Security Framework 1.0, during an LTI 1.3 launch, "the authentication response is sent to the redirect_uri." The redirect_uri is a query or form parameter provided by the tool when it directs the browser to make a request to the Platform's authentication endpoint. However, we currently send the authentication response to the preregistered launch URL - lti_1p3_launch_url in the LtiConsumerXBlock or the LtiConfiguration model. The difference is subtle, but it is important, because the specification indicates the Platform should respect the redirect_uri provided by the Tool, assuming it is a valid redirect_uri. During the pregistration phase, "the Tool must provide one or multiple redirect URIs that are valid end points where the authorization response can be sent. The number of distinct redirect URIs to be supported by a platform is not specified." Currently, we do not support multiple redirect URIs, so the change is not immediately impactful. However, we should follow the specification and ensure that we return the authentication response to the correct URL.
-