Commit Graph

7647 Commits

Author SHA1 Message Date
Eugene Dyudyunov
b4fecd620b refactor: rename toggle_warnings to toggle_warning (#30458)
Rename toggle_warnings to toggle_warning for consistency with setting_warning.
2022-05-24 11:47:31 -04:00
SaadYousaf
23aa0d39c1 fix: add investigation log for comment client request error 2022-05-24 16:39:40 +05:00
Kyle McCormick
25df9ca420 refactor: make safe_lxml an ordinary folder in openedx/core/lib (#25689) 2022-05-24 15:35:23 +05:00
Usama Sadiq
583b36938e fix: fix ResourceWarnings (#30317) 2022-05-24 11:44:45 +05:00
Muhammad Adeel Tajamul
be13b0d6af Merge pull request #30435 from openedx/inf-224
fix: cohorts api not working
2022-05-23 09:54:44 +05:00
Robert Raposa
98d990d7af fix: remove reference to ApplicationOrganization (#30446)
References to ApplicationOrganization were removed two
years ago in the following PR:
https://github.com/openedx/edx-platform/pull/23199

However, it looks like one reference was missed.

ARCHBOM-992
2022-05-20 13:42:12 -04:00
Attiya Ishaque
75ca47695c feat: add required fields rest api (#30198)
* feat: add required fields rest api

* feat: first review changes added.
2022-05-20 12:06:24 +05:00
adeel.tajamul
8ef0b18f06 fix: cohorts api not working 2022-05-20 11:33:27 +05:00
Robert Raposa
3fc852f53c feat!: change JWT access token expires (#30432)
Introduces JWT_ACCESS_TOKEN_EXPIRE_SECONDS setting. This is the number
of seconds a JWT access token remains valid. We use this custom
setting for JWT formatted access tokens, rather than the
django-oauth-toolkit setting ACCESS_TOKEN_EXPIRE_SECONDS, because the
JWT is non-revocable and we want it to be shorter lived than the
legacy Bearer (opaque) access tokens, and thus to have a smaller
default.

BREAKING CHANGE: The thing that is breaking is that JWT access tokens
will now have a 1 hour default, instead of a 10 hours default. If
third-party scripts are appropriately checking/refreshing the access
token, this should be ok. However, you can always override with a
longer duration temporarily. From a security perspective, we don't
recommend a longer duration, and you may consider a shorter duration.

ARCHBOM-2099
2022-05-19 09:46:17 -04:00
Maria Grimaldi
0edb0bb8b6 Merge pull request #29964 from eduNEXT/MJG/cohort-change-filter
[BD-32] feat: add cohort change Open edX Filter
2022-05-13 13:22:40 -04:00
Feanil Patel
661949771a Merge pull request #30347 from raccoongang/remove-verified-track-cohort
FC-0001: Remove verified track cohort
2022-05-13 09:47:13 -04:00
Eugene Dyudyunov
52dd883a3c refactor: delete now unused FutureCourseWaffleFlag (#30367)
Remove temporary FutureCourseWaffleFlag class;
Update ora2 and edx-toggles to versions cleaned from the
LegacyWaffle* classes;
Replace `override_flag`s with `override_waffle_flag`;
Replace `override_switch`s with `override_waffle_switch` (where it's possible).
2022-05-13 08:48:42 -04:00
Ahtisham Shahid
674778fc7a Removed PII sharing requirement from Live API (#30332) 2022-05-11 19:43:56 +05:00
Muhammad Adeel Tajamul
93dbb03984 Revert "feat: removed piazza from discussion providers" 2022-05-11 13:27:38 +05:00
Abdurrahman Asad
f22a129b23 fix: discussion moderators can't create posts for specific cohorts (#30352)
fix: discussion moderators can't create posts for specific cohorts
2022-05-11 09:41:48 +05:00
Eugene Dyudyunov
655e4a344f refactor!: update CourseWaffleFlag (#30351)
BREAKING: get rid of the LegacyWaffle-based CourseWaffleFlag.
Both CourseWaffleFlag and FutureCourseWaffleFlag now use the modern
WaffleFlag as parent class. FutureCourseWaffleFlag left to support ORA
transition to modern waffle.

Switch to the ORA version which supporting new Waffles.
2022-05-10 15:08:59 -04:00
Demid
a4ec4c1b8e refactor: Delete XModule classes (#30262)
Removes XModule, XModuleDescriptor, ProxyAttribute classes and their usages.
2022-05-10 19:09:11 +02:00
Muhammad Adeel Tajamul
90184cc765 Merge pull request #30362 from openedx/inf-185
feat: removed piazza from discussion providers
2022-05-10 16:54:01 +05:00
Muneeb Ur Rehman
20a0e6e9e1 feat: create learner pathway skeleton (#30355)
* feat: create skeleton for learner_pathway app

* feat: add learner_pathway app for quality checks

* feat: add verbose name and dir for tests

* feat: add docstrings for files in app

* fix: remove unused imports

* refactor: resolve quality issues
2022-05-10 13:19:45 +05:00
adeel.tajamul
0b69c7b638 feat: removed piazza from discussion providers 2022-05-10 12:28:07 +05:00
Eugene Dyudyunov
289e682b8f FC-0001: Remove old EdxRestAPIClient usage across the platform (#30301)
* refactor: remove EdxRestAPIClient

* test: update tests according to EdxRestAPIClient removal

* fix: remove unused import
2022-05-09 12:48:26 -04:00
Simon Chen
192b35eb8f fix: add Learner as another role posted to LTI tools for the LTI embed (#30356)
Co-authored-by: Simon Chen <schen@edx-c02fw0guml85.lan>
2022-05-09 10:12:28 -04:00
Maria Grimaldi
aacfb393d6 Merge pull request #30130 from open-craft/pooja/convert-warning-back-to-html
[BB-6041] Convert password compliance warning to html
2022-05-09 09:05:44 -04:00
Tim McCormack
80f60ffb36 refactor: Move log_sensitive to edx-django-utils (#30349)
It was copied there in 4.7.0 (openedx/edx-django-utils#209) so it can be used in more IDAs.

Includes dropping dependency on PyNacl, which was only in use by that module.
2022-05-06 12:42:19 +00:00
Eugene Dyudyunov
8bd43207ca refactor!: switch from LegacyWaffle* to modern waffles (#30330)
This is a first stage for removing the LegacyWaffle* classes.

LegacyWaffleFlag usage replaced with WaffleFlag;
LegacyWaffleSwitche usage replaced with WaffleSwitch;
New CourseWaffleFlag added to the temporary module __future__ as FutureCourseWaffleFlag;
Updated all the imports to use CourseWaffleFlag from the __future__ module;

BREAKING CHANGE: A number of toggle related constants (e.g. ENABLE_ACCESSIBILITY_POLICY_PAGE)
changed types. They were strings, and are now toggle instances (e.g. WaffleSwitch). Although the entire
refactor should be self-contained in edx-platform, if any plugins or dependencies were directly
using these constants, they will break. If this is the case, try to find a better publicized way of
exposing those toggles.
2022-05-05 12:03:10 -04:00
Maria Grimaldi
3b7398c448 docs: add inline documentation for filters easier use 2022-05-04 18:14:26 -04:00
Maria Grimaldi
465e5c02dd feat: add cohort change filter before moving users from cohorts 2022-05-04 18:14:26 -04:00
Eugene Dyudyunov
adb156ac03 test: update tests query counts 2022-05-03 13:16:43 +03:00
Eugene Dyudyunov
215b81534e test: VerifiedTrackCohortedCourse related tests 2022-05-02 18:27:09 +03:00
Eugene Dyudyunov
5c5d383aa0 refactor: remove VerifiedTrackCohortedCourse feature 2022-05-02 17:41:08 +03:00
Diana Huang
521151e712 refactor: Remove edx.org theme. (#30333)
This theme is no longer in use. The theme in use
has been moved to its own private repo.
2022-05-02 09:42:46 -04:00
pkulkark
a502d755e6 Merge branch 'master' of github.com:openedx/edx-platform into pooja/convert-warning-back-to-html 2022-04-29 08:05:24 +05:30
Ned Batchelder
cff365043d feat(process_warnings): remove data noise from messages, so they group better 2022-04-28 01:32:36 -07:00
Ned Batchelder
3333f78cf7 fix(process_warnings): escape html text so that <class ..> doesn't disappear 2022-04-28 01:32:36 -07:00
SaadYousaf
98262c088d feat: send email to moderators after content is reported 2022-04-27 22:18:56 +05:00
Michael Terry
393fd971f5 Merge pull request #30295 from openedx/mikix/embargo-chain
fix: use safer ip-chain logic when checking ip for embargos
2022-04-25 11:41:12 -04:00
Feanil Patel
f2ec7b5053 chore: Cleanup last remenants of the edx-microsite code. (#30306)
There are still references to the word `microsite` because the
site-configuration code uses it to referr to it's sub-sites in a few
places.
2022-04-25 10:48:35 -04:00
Michael Terry
b8ecfed67d fix: use safer ip-chain logic when checking ip for embargos
Specifically:
- check ALL ip addresses in the client ip chain for blocking
- check RIGHTMOST ip address in the client ip chain for allowing

Before, we always checked the LEFTMOST ip address in both cases.

AA-1234
2022-04-22 11:15:02 -04:00
Ahtisham Shahid
446392bf6a fix: Updated course live docs url (#30293) 2022-04-22 19:04:12 +05:00
pkulkark
c978974373 Merge branch 'master' of github.com:openedx/edx-platform into pooja/convert-warning-back-to-html 2022-04-22 16:38:29 +05:30
Tim McCormack
8bcec1a7c9 build: Remove empty coursegraph module (and the pylint reference to it) (#30273)
Coursegraph was moved from openedx to cms in commit 92552e50/PR #29156;
module init file was reintroduced in commit 80f9f1de/PR #30197, I think
by accident.
2022-04-21 19:33:38 +00:00
Eugene Dyudyunov
f262d64ad4 FC-0001: enterprise dependencies for EdxRestAPIClient replacement (#30240)
* refactor: enterprise dependencies for EdxRestAPIClient replacement

This is a part of https://github.com/openedx/public-engineering/issues/42

- add settings for enterprise-backend-service DOT application
- update utils used by enterprise to get rid of EdxRestAPIClient
- original utils stays in the code (to keep edx-platform api
clients working) till the
https://github.com/openedx/public-engineering/issues/39 deprecation
work will be done

* fix: fix typo in the docstring
2022-04-21 15:28:22 -04:00
Kaustav Banerjee
702866b225 feat: delete XModuleDescriptorToXBlockMixin (#29927)
This:
1. Deletes XModuleDescriptorToXBlockMixin
2. Deletes `metadata_traslations` and `_translate()` from `XmlParserMixin`,
    and all related implementations.
3. Removes translations of deprecated OLX attributes during import/export:
    <old_attr> : <new_attr>
    - 'slug' : 'url_name'
    - 'name' : 'display_name'
    - 'id' : 'discussion_id' (Discussion XBlock)
    - 'for' : 'discussion_target' (Discussion XBlock)
    - 'attempts' : 'max_attempts' (CAPA)
2022-04-21 16:15:00 +01:00
Michael Terry
48b0df4f99 Merge pull request #30281 from openedx/mikix/minor-api-cleanup
fix: remove a couple unused learning MFE serializer fields
2022-04-21 09:27:04 -04:00
Jillian Vogel
d0935d467c fix: fixes bug with HTML blocks in studio_view
Rendering asset URLs requires HTML blocks to be associated with a course key.
This change allows HTML blocks to be associated with libraries and still
render without error.
2022-04-21 09:39:59 +01:00
Jillian Vogel
732d8cb337 fix: use mako prefix lms. when XBlock runtime renders in Studio/authoring MFE
When the XBlock runtime is used in Studio/authoring mode, it needs to
use the template path prefix "lms." in order to locate the block
templates. (In LMS view, no prefix is required.)

Fixes bug introduced by https://github.com/openedx/edx-platform/pull/29354
and removes template workaround added by
https://github.com/openedx/edx-platform/pull/29517 (see Author Notes & Concerns)
2022-04-21 09:39:59 +01:00
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
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