Commit Graph

61291 Commits

Author SHA1 Message Date
Jillian Vogel
8b77638bf0 test: refactors blockstore integration tests to run as unit tests.
Tests which @requires_blockstore (i.e. the Blockstore service) have
been made to run as a unit test using the installed Blockstore app, and
will be run by the platform CI.

The Blockstore service tests can still be run manually by setting
EDXAPP_RUN_BLOCKSTORE_TESTS=1

Related fixes:

* adds blockstore bundle storage settings
* let the studio devstack and test servers serve static files from
  the /media URL This allows the blockstore/content libraries API to
  serve blockstore assets in dev.
* Wrap ContentLibrary creation in an atomic transaction, so that if it
 fails, the related bundle can be deleted directly from the database
  during the exception handler. (Previously, we called a REST API which
  deleted it as part of a separate service.)
2022-04-21 09:39:59 +01:00
Jillian Vogel
7d81c3e671 test: minor fixes to requires_blockstore tests
These tests aren't run as part of the CI, and so have been failing for
an unknown time.
2022-04-21 09:39:59 +01:00
Jillian Vogel
cfd53aff70 refactor: installs blockstore into edx-platform
* adds blockstore as a requirement and an installed app, with
  configurable bundle storage settings.
* adds waffle switch and setting to allow use of blockstore's python API
  instead of REST API in live testservers and in production.
* adds database router which, when a `blockstore` DATABASE connection is
  configured, allows the platform to use the blockstore service's
  database instead of the default edxapp database.
* replaces blockstore_api exceptions and models with blockstore.app.api classes
* minor fixes to the blockstore_api to make the Blockstore REST API
  return data packaged the same as the Blockstore Python API.
2022-04-21 09:39:54 +01:00
Jillian Vogel
98a26e8674 fix: use default MEDIA_URL in devstack
The devstack override for this variable didn't work, so just use the common default: /edx/var/edxapp/media
2022-04-21 09:35:08 +01:00
John Nagro
a5e911fe1d feat: release edx-enterprise 3.44.4 (#30289)
- fix: implement back-off and retry for degreed2
- fix: drop tpa_hint param in redirects when no SSO

ENT-5728
ENT-5741
2022-04-20 17:24:38 -04:00
Hassan
4569b53bad Merge pull request #30070 from openedx/hassan/dump-course-ids-filter
feat: Added management command dump_course_ids_with_filter.
2022-04-20 10:24:02 -05:00
edx-pipeline-bot
6eda9b6d1f Merge pull request #30284 from openedx/private_to_public_a251d18
Mergeback PR from private to public.
2022-04-20 10:56:28 -04:00
Tim McCormack
a251d18281 feat!: Use more-trusted IP in rate-limiting (#241)
Previously, our rate-limiting code trusted the entire `X-Forwarded-For`
header, allowing a malicious client to spoof that header and evade
rate-limiting. This commit introduces a new module and setting
allowing us to make a more conservative choice of IPs.

- Create new `openedx.core.djangoapps.util.ip` module for producing
  the IP "external chain" for requests based on the XFF header and the
  REMOTE_ADDR.
- Include a function that gives the safest choice of IPs.
- Add new setting `CLOSEST_CLIENT_IP_FROM_HEADERS` for configuring how
  the external chain is derived (i.e. setting the trust
  boundary). Currently has a default, but we may want to make it
  mandatory in the future.
- Change `django-ratelimit` code to use the proximate IP in the external
  chain -- the one just outside the trust boundary.

Also:

- Change `XForwardedForMiddleware` to use more conservative choice for
  its `REMOTE_ADDR` override
- Other adjustments to `XForwardedForMiddleware` as needed in order to
  initialize new module and support code that needs the real
  `REMOTE_ADDR` value
- Metrics for observability into the change (and XFF composition)
- Feature switch to restore legacy mode if needed

This also gives us a path forward to removing use of the django-ipware
package, which is no longer maintained and has a handful of bugs that make it
difficult to use safely.

Internal ticket: ARCHBOM-2056
2022-04-20 13:46:58 +00:00
Justin Hynes
1435b619b4 Merge pull request #30271 from openedx/jhynes/microba-1507_process-scheduled-tasks
feat: add support for processing scheduled instructor tasks
2022-04-20 09:14:31 -04:00
Muhammad Adeel Tajamul
a7f51ee762 Merge pull request #30282 from openedx/inf-41
fix: hyperlinks opening in iframe in discussions mfe
2022-04-20 16:58:55 +05:00
adeel.tajamul
8c6f307de8 fix: hyperlinks opening in iframe in discussions mfe 2022-04-20 15:21:30 +05:00
Usama Sadiq
1df2c691db fix: bump bleach and django-wiki versions (#30263) 2022-04-20 10:39:50 +05:00
Michael Terry
e10b817369 Merge pull request #30280 from openedx/mikix/more-enrollment-conditions
fix: add more can-enroll checks to course home outline API
2022-04-19 16:11:29 -04:00
Justin Hynes
bec97653b5 feat: add support for processing scheduled instructor tasks
[MICROBA-1507]

* adds new functionality for retrieving and submitting scheduled tasks to Celery
* add an InstructorTaskSchedule factory for unit testing
* adds unit tests for processing scheduled tasks
2022-04-19 15:29:27 -04:00
Michael Terry
790391ad1f fix: add more can-enroll checks to course home outline API
Specifically:
- enrollment has ended or not begun (whoops!)
- is full (at/over max enrollment)

Before this change in these cases, we would still show an enroll
button which wasn't functional, causing user confusion.

AA-1245
2022-04-19 15:08:37 -04:00
Michael Terry
f416308a66 Merge pull request #30238 from openedx/mikix/drop-courseware-view
Drop courseware legacy view for all but Studio preview mode
2022-04-19 14:05:04 -04:00
Matthew Carter
fb2a0170c1 chore: updated ORA2 to 4.2.0 - ESG release (#30279) 2022-04-19 13:14:28 -04:00
Alex Dusenbery
953dd73c81 fix: enterprise-3.44.3, which overrides get_assignments() and handles null contexts gracefully
Overrides the SystemWideEnterpriseUserRoleAssignment.get_assignments() method to return
a list of (role, context) assignments, where the first item in the list corresponds
to the currently active enterprise for the user.  Also ensures that
EnterpriseSystemWideUserRoleAssignment.get_assignments() can handle null values that might be returned by get_context().
2022-04-19 12:49:58 -04:00
Michael Terry
afd19f0513 feat!: drop legacy courseware tab access for learners
The only way to access the legacy courseware is now through the
Studio preview feature (and at some point, when the MFE supports a
preview mode, we can then remove even that).

This drops the courseware.use_legacy_frontend waffle.
2022-04-19 12:27:10 -04:00
Ali Akbar
9b1db048f8 Merge pull request #30223 from openedx/aakbar/PROD-2738
feat: use new flow with with financial assistance form
2022-04-19 20:19:37 +05:00
AliAkbar
33bb739e50 feat: use new flow with with financial assistance form 2022-04-19 19:57:18 +05:00
Justin Hynes
e3888187c2 Merge pull request #30277 from openedx/jhynes/update-microba-1666-adr
docs: update ADR for reasons why we won't be sanitizing bulk email contents
2022-04-19 09:13:09 -04:00
Justin Hynes
054d74a85f Merge pull request #29908 from openedx/jhynes/microba-1696_adrs
doc: introduces ADRs describing an approach for the scheduled instructor tasks backend implementation
2022-04-19 08:50:01 -04:00
Kelly Buchanan
6f5efb6203 docs: Add ADR for not sanitizing html in bulk email.
[MICROBA-1666]
- Update ADR to explain why we will not be sanitizing the contents of bulk email messages.
2022-04-19 08:38:06 -04:00
Justin Hynes
d1aa1734dd docs: add ADRs describing approach for the scheduled instructor tasks implementation
[MICROBA-1696]

* Introduce an ADR with details on the proposed approach to scheduled instructor tasks to support scheduled bulk email
* Introduce an ADR with details on how scheduled instructor tasks will be processed
2022-04-19 08:23:43 -04:00
Awais Qureshi
b97af6ac6e build: Removing un-used django versions from tox and other places. (#30270) 2022-04-19 16:41:29 +05:00
Hassan Javeed
b2acb84855 feat: Added management command dump_course_ids_with_filter. 2022-04-19 01:29:57 -05:00
John Nagro
b944605eb0 feat: release edx-enterprise 3.44.2 (#30272)
- https://github.com/openedx/edx-enterprise/releases/tag/3.44.2
2022-04-18 16:54:17 -04:00
Jansen Kantor
4d18a6c1a0 feat: block team oras from ESG (#30269)
* feat: add teams enabled flag to ORA item view context

* feat: all team ORAs should be marked esg disabled
2022-04-18 15:41:02 -04:00
Mohammad Ahtasham ul Hassan
e84187bacd Revert "feat: node16 upgrade (#30249)" (#30268)
This reverts commit f10ebf0752.
2022-04-18 21:57:17 +05:00
Mohammad Ahtasham ul Hassan
f10ebf0752 feat: node16 upgrade (#30249) 2022-04-18 16:32:53 +05:00
Usama Sadiq
d8f282737c fix: Remove edx-django-utils GitHub pin (#30265)
* fix: remove unnecessary edx-django-utils github constraint
2022-04-18 14:48:31 +05:00
Muhammad Adeel Tajamul
40b2034717 Merge pull request #30253 from openedx/tnl-9871
feat: added flag to access course live in learning mfe
2022-04-18 10:45:14 +05:00
edx-pipeline-bot
2d3607b654 Merge pull request #30261 from openedx/private_to_public_283141a
Mergeback PR from private to public.
2022-04-15 15:50:43 -04:00
edx-pipeline-bot
afceb27231 fix: Make SAMLConfiguration viewset readonly (#247) (#30259)
The ony use is a GET request in admin portal so this view need not be post/put friendly right now.
It may actually get removed in an upcoming iteration, or stay readonly.

Fixes: SEC-1418

Co-authored-by: Binod Pant <bpant@edx.org>
2022-04-15 18:03:50 +00:00
Binod Pant
283141a3c7 fix: Make SAMLConfiguration viewset readonly (#247)
The ony use is a GET request in admin portal so this view need not be post/put friendly right now.
It may actually get removed in an upcoming iteration, or stay readonly.

Fixes: SEC-1418
2022-04-15 17:29:11 +00:00
Michael Terry
9714959816 Merge pull request #30257 from openedx/mikix/use-course-key
fix: pass a CourseKey not a string to course_home_url
2022-04-15 09:16:17 -04:00
Michael Terry
4732c46985 fix: pass a CourseKey not a string to course_home_url 2022-04-15 08:59:56 -04:00
Mehak Nasir
fefbbcbdba style: button font reduced to reduce button size (#30256) 2022-04-15 16:57:14 +05:00
adeel.tajamul
f48cc56e04 feat: added flag to access course live in learning mfe 2022-04-15 16:22:15 +05:00
Michael Terry
4dbeabf4bd Merge pull request #30251 from openedx/mikix/drop-outline-view
feat!: drop legacy course home view and related code
2022-04-14 15:37:09 -04:00
Michael Terry
ce5f1bb343 feat!: drop legacy course home view and related code
This was the "outline tab" view of the course. Preceded by the
course info view, succeeded by the MFE outline tab.

In addition to the course home view itself, this drops related
features:
- Legacy version of Course Goals (MFE has a newer implementation)
- Course home in-course search (MFE has no search)

The old course info view and course about views survive for now.

This also drops a few now-unused feature toggles:
- course_experience.latest_update
- course_experience.show_upgrade_msg_on_course_home
- course_experience.upgrade_deadline_message
- course_home.course_home_use_legacy_frontend

With this change, just the progress and courseware tabs are still
supported in legacy form, if you opt-in with waffle flags. The
outline and dates tabs are offered only by the MFE.

AA-798

(This is identical to previous commit be5c1a6, just reintroduced
now that the e2e tests have been fixed)
2022-04-14 15:18:31 -04:00
Michael Terry
584f400ca8 Merge pull request #30250 from openedx/revert-30064-mikix/drop-outline-view
Revert "Drop legacy outline tab in favor of the MFE's version"
2022-04-14 14:33:51 -04:00
Michael Terry
a515c2e992 Revert "Drop legacy outline tab in favor of the MFE's version" 2022-04-14 14:16:29 -04:00
Michael Terry
6af3cb14d9 Merge pull request #30064 from openedx/mikix/drop-outline-view
Drop legacy outline tab in favor of the MFE's version
2022-04-14 11:59:44 -04:00
María Fernanda Magallanes
a099d9a10b refactor: consider celery imports from common settings plus env tokens (#29739) 2022-04-14 09:16:14 -04:00
Michael Terry
be5c1a64d5 feat!: drop legacy course home view and related code
This was the "outline tab" view of the course. Preceded by the
course info view, succeeded by the MFE outline tab.

In addition to the course home view itself, this drops related
features:
- Legacy version of Course Goals (MFE has a newer implementation)
- Course home in-course search (MFE has no search)

The old course info view and course about views survive for now.

This also drops a few now-unused feature toggles:
- course_experience.latest_update
- course_experience.show_upgrade_msg_on_course_home
- course_experience.upgrade_deadline_message
- course_home.course_home_use_legacy_frontend

With this change, just the progress and courseware tabs are still
supported in legacy form, if you opt-in with waffle flags. The
outline and dates tabs are offered only by the MFE.

AA-798
2022-04-14 09:12:01 -04:00
Michael Terry
0be6d3c8ab Merge pull request #29846 from openedx/mikix/drop-dates-view
feat!: drop legacy dates tab, in favor of MFE version
2022-04-14 09:11:20 -04:00
Demid
16fa97dde4 feat: deprecate filestore
This:

1. Removes the `filestore` property from the `ModuleSystem` in favor of
   the `runtime.resources_fs` property.
   In the original code, `filestore` is equal to
   `DescriptorSystem.runtime.resources_fs`. It's safe to replace it with
   `ModuleSystem.runtime.resources_fs` because both runtimes are combined
   using the `CachingDescriptorSystem`. It provides the `resources_fs` property
   that uses the same file storage.

2. Renames `filestore` argument to `resources_fs` in the `LoncapaSystem`
   constructor.

3. Adds the deprecated `filestore` property to the `ModuleSystemShim`
   and `RuntimeShim`.
2022-04-14 14:45:05 +02:00
Usama Sadiq
a586f740e0 BOM-3361: Remove wrapt constraint (#30215)
* fix: remove wrapt constraint
2022-04-14 16:41:39 +05:00