Skip to content

feat(quince): warn when relative dates are past due and can't be shifted - #664

Closed
DanielVZ96 wants to merge 86 commits into
masterfrom
opencraft-release/quince.1
Closed

feat(quince): warn when relative dates are past due and can't be shifted#664
DanielVZ96 wants to merge 86 commits into
masterfrom
opencraft-release/quince.1

Conversation

@DanielVZ96

Copy link
Copy Markdown

cmltaWt0 and others added 30 commits October 11, 2023 14:55
With this change, the platform users who access content via LTI will be
automatically linked to their platform account instead of the new (anonymous)
one. The following conditions need to be met:
* The `LtiConsumer` should be configured to auto-link the users via email.
* The LTI Consumer should share the user's email using the
`lis_person_contact_email_primary` parameter in the LTI Launch POST data.

This also replaces the one-to-one relationship of the `User` and `LtiUser`
with one-to-many. This way, multiple `LtiUser` objects can refer to the same
`edx_user`. With the auto-linking, multiple LTI Consumers can create
independent `LtiUser` objects with the same `edx_user`.

Co-authored-by: Piotr Surowiec <piotr@surowiec.it>
(cherry picked from commit 5b2f012)
…kport-lti-provider-user-auto-linking

[Quince Backport] feat: link LTI Provider launches to authenticated users
POST requests to the LMS are failing systematically when HTTPS is
enabled. This issue is observed in the Quince release branch. Here is
the root cause analysis:

- CorsCSRFMiddleware overrides the `is_secure` attribute by setting it
  to "false".
- CorsCSRFMiddleware calls the parent `process_view` method, from the
  CsrfViewMiddleware.
- CsrfViewMiddleware checks the Origin header, including the scheme. It
  is equal to "https://LMSHOST". But because the request is not
  considered secure, the expected origin is "http://LMSHOST".
- The check fails with "Origin checking failed"

We resolve this issue by running the CsrfViewMiddleware *before* the
custom CorsCSRFMiddleware. After a successful check of the
CsrfViewMiddleware, the request has the "csrf_processing_done = True"
attribute, and CorsCSRFMiddleware is short-circuited.

This issue did not happen in the following environments:

- in Palm because the CsrfViewMiddleware did not check the "Origin" header in Django 3.
- in the Studio, because the Studio already runs the CsrfViewMiddleware before
  the CorsCSRFMiddleware.
- in the master branch because the master branch does not yet run on
  Django 4. But the issue will happen in the master branch without this
  proposed change.

To bypass this issue in the master branch, it was proposed that we add
"https://LMSHOST" to CSRF_TRUSTED_ORIGINS. This would effectily bypass
CSRF checking entirely for all requests that originate from the LMS.
Such a solution would not be acceptable, as we would lose the security
guarantees offered by CSRF.

See discussion: openedx/wg-build-test-release#325
…penedx#33724)

(requires the contentstore.enable_copy_paste_units waffle flag)
* test: test for length validation
…it-backport

Backport to Quince: copy/paste unit from within a unit in Studio
chore: update Django to 4.2.8 for Quince - Security Patch
…to md5

The hashing algorithm has been changed in cd60646. However, there are Open edX
operators who maintain backward compatibility of anonymous user IDs after past
rotations of their Django secret key. For them, altering the hashing algorithm
was a breaking change that made their analytics inconsistent.

(cherry picked from commit 746e4fe)
(cherry picked from commit ff6d92f)
(cherry picked from commit 7245bdc)
This change adds a new waffle switch to redirect a student to coursware after
enrolment instead of the dashboard.

(cherry picked from commit f494586)
(cherry picked from commit 79c4b4a4bbb067c07b30980d9bd11ceb3f4e9af2)
…account is unlinked

(cherry picked from commit e83a8c8f82849644cf95534cde3fe149e4f11916)
(cherry picked from commit 0c831dc)
(cherry picked from commit 7a7af8cdc16416ec8e3289f9482e734b58145b0e)
(cherry picked from commit 9475431)
(cherry picked from commit 3ca85ea)
(cherry picked from commit 8ef55754f4a529cc6b784298320fcdb8b415bd83)
(cherry picked from commit 8e281a9)
(cherry picked from commit f552973)
Allows admins to configure same oauth backend for multiple sites.

This change includes site_id in KEY_FIELDS for oauth configuration
provider allowing a backend configuration for each site.

(cherry picked from commit 565b34e)
Adds the eSHE Instructor role, which inherits Course Staff permissions,
but isn't able to enroll / un-enroll students and can't assing course
team roles unless in combination with Course Staff / Instructor /
Discussion admin roles.

(cherry picked from commit 5d160c2)
IrfanUddinAhmad and others added 27 commits March 11, 2024 15:13
fix: removed waffle switch around oep-50 filter
feat: Allow trusted apps to perform cookie login.
…er-20240311-1710116441

Sync opencraft-release/quince.1 with Upstream 20240311-1710116441
Authored-by: Dima Alipov <dimaalipov@MacBook-Pro-Dima.local>
The url was renamed from session_language to update_language but it was still referred to in some html templates
…er-20240325-1711326059

Sync opencraft-release/quince.1 with Upstream 20240325-1711326059
…#34404)

Co-authored-by: Dima Alipov <dimaalipov@MacBook-Pro-Dima.local>
…ce-4.2.11

chore: update Django to 4.2.11 for Quince - Security Patch
…tadata response

Currently, openedx/frontend-app-authoring#517 faces an issue when the
progress graph toggle is enabled/disabled but the settings are not respected, the disable_progress_graph
attribute will allow the frontend-app-learning repo to use this attribute to respect the settings authored
from frontend-app-course-authoring and ultimately fix openedx/frontend-app-authoring#517.
…s-graph

feat: Adds disable_progress_graph attribute to the returned course_me…
…nedx#34485)

Co-authored-by: Dima Alipov <dimaalipov@MacBook-Pro-Dima.local>
* fix: Social link parsing approach changed

* fix: fix tests

* fix: better approach
Makes use of name field from user profile field if it is not empty

(cherry picked from commit 53c47bb095b4d885408d1f13589d23673230e520)
…enedx#34466)

"Course organization display string" option in Advanced settings
doesn't influence certificate.

Co-authored-by: Dima Alipov <dimaalipov@MacBook-Pro-Dima.local>
…b-for-all-courses-quince-backport

feat: add a feature flag to disable dates tab for all courses
… discussion is enabled (openedx#34426)

Co-authored-by: Jason Wesson <jsnwesson@gmail.com>
Open edX implements its a JwtAuthentication class in edx-drf-extensions
(in edx_rest_framework_extensions.auth.jwt.authentication). This class
updates the local User database entry to match certain values in the
token. It's used as a way to automatically provision and update users
with their LMS user information on other Open edX services like
ecommerce.

Since LMS and Studio keep the record of truth in its database tables,
they should *not* update their database user information based on the
JWT. Doing so would allow stale JWTs to incorrectly reset user values
after they had been changed in the LMS. This is done by having the
EDX_DRF_EXTENSIONS['JWT_PAYLOAD_USER_ATTRIBUTE_MAPPING'] setting be an
empty dictionary, and was set correctly for the LMS in its common.py env
settings module. Unfortunately, this was *not* being set for Studio.

This commit adds the same setting to Studio's common settings module.
Prior to this commit, it was possible for a stale JWT to reset user
attributes if the user hit a Studio API endpoint that used JWT for  auth
(e.g. endpoints used by the Course Authoring MFE). This opened up a
potential security issue where a global staff user (is_staff=True) that
had their global staff status removed (is_staff=False) could have up to
a one hour window in which they could use their stale-but-still-valid
global-staff JWT token to regain global staff status by calling a Studio
endpoint with their browser.
…er-20240520-1716214773

Sync opencraft-release/quince.1 with Upstream 20240520-1716214773
@DanielVZ96
DanielVZ96 requested a review from Agrendalath June 10, 2024 03:08
@DanielVZ96

DanielVZ96 commented Jun 10, 2024

Copy link
Copy Markdown
Author

mistakenly mixed up branches

@DanielVZ96 DanielVZ96 closed this Jun 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.