Commit Graph

352 Commits

Author SHA1 Message Date
M. Zulqarnain
e54fb5f76e feat: New codemods on CMS (#28768) 2021-10-25 12:59:54 +05:00
Tim McCormack
0c164ad4c2 fix: Fix Studio logout by pointing to correct logout view (#28714)
This changes the "Sign out" link on Studio to point to Studio's own logout
view, which clears the session and then redirects to LMS's logout page. The
LMS logout page then skips loading the Studio logout because it is seen in
the Referer header.

This change also brings Studio better into line with how other IDAs perform
their logouts.

Background:

After the rollout of Studio OAuth, logouts initiated on Studio failed to
actually log out Studio (but all other IDAs were logged out). This was
because the LMS logout view loads the logout pages of other IDAs but skips
any that is a *prefix* match on the Referer header, and browsers now often
send a truncated version of the Referer for privacy. Therefore, Studio was
always skipped when coming from Studio.

The fix is to make sure that Studio has already performed its logout by the
time the LMS logout page is loaded.

One wrinkle here is that the LMS logout view is activated by `/logout`, but
the correct logout view (provided by auth_backends) is activated by
`/logout/` -- with a trailing slash. This is fragile and unfortunate, but
can be cleaned up when we later remove other leftovers of Studio's previous
ability to handle logistration.

ref: ARCHBOM-1897
2021-09-10 18:45:58 +00:00
Tim McCormack
f75ae33580 feat: Implement (but don't activate) LMS OAuth2 SSO login for Studio (#28533)
Once LOGIN_URL is changed for an environment, the OAuth flow will be
activated. (See included temporary doc.)

This is for ARCHBOM-1860: Convert Studio to use LMS OAuth login.
2021-08-25 16:16:48 +00:00
Josh
bc082eab93 [BD-27] FEAT: Add new API endpoint for uploading transcripts (#27844)
* FEAT: Add new API endpoint for uploading transcripts

* Add log messages to transcript upload function
2021-06-08 08:34:51 -04:00
M. Zulqarnain
88471575ab refactor: pyupgrade in CMS (#26723) 2021-03-02 16:45:46 +05:00
Ahtisham Shahid
774f2956de Created separate view for library (#26273) 2021-02-16 17:39:32 +05:00
Régis Behmo
5a618bfdbb Annotate git export settings and toggles in CMS
We take the opportunity to resolve a few linting issues, without affecting the
feature behaviour.
2021-02-09 12:39:48 +01:00
Farhaan Bukhsh
31f0432445 [BTR-38] [BB-3269] Add openassessmnet url to CMS
This change helps to check the preview of fileupload in
openassessment xblock in studio.

Signed-off-by: Farhaan Bukhsh <farhaan@opencraft.com>
2020-12-03 16:01:14 +05:30
Kyle McCormick
151bd13666 Use full names for common.djangoapps imports; warn when using old style (#25477)
* Generate common/djangoapps import shims for LMS
* Generate common/djangoapps import shims for Studio
* Stop appending project root to sys.path
* Stop appending common/djangoapps to sys.path
* Import from common.djangoapps.course_action_state instead of course_action_state
* Import from common.djangoapps.course_modes instead of course_modes
* Import from common.djangoapps.database_fixups instead of database_fixups
* Import from common.djangoapps.edxmako instead of edxmako
* Import from common.djangoapps.entitlements instead of entitlements
* Import from common.djangoapps.pipline_mako instead of pipeline_mako
* Import from common.djangoapps.static_replace instead of static_replace
* Import from common.djangoapps.student instead of student
* Import from common.djangoapps.terrain instead of terrain
* Import from common.djangoapps.third_party_auth instead of third_party_auth
* Import from common.djangoapps.track instead of track
* Import from common.djangoapps.util instead of util
* Import from common.djangoapps.xblock_django instead of xblock_django
* Add empty common/djangoapps/__init__.py to fix pytest collection
* Fix pylint formatting violations
* Exclude import_shims/ directory tree from linting
2020-11-10 07:02:01 -05:00
Alan Zarembok
e4befb1926 Add new generate_video_upload_link api. 2020-11-05 12:04:45 -05:00
Régis Behmo
87b5463d42 Use SettingDictToggle to document ENTRANCE_EXAMS 2020-10-29 11:11:02 +01:00
Kyle McCormick
a3deb6e317 Sort imports in cms/
Command: `isort --recursive cms/`
2020-10-19 09:34:31 -04:00
Kyle McCormick
d21a330d0a Tell isort not to sort certain imports in cms/ 2020-10-19 09:34:31 -04:00
Kyle McCormick
538dbf696b Import CMS code using fully qualified module names
or, using proper the proper Python 3 relative imports
(e.g., 'from .views import x') which are standard and
unambiguous.
2020-10-19 09:34:31 -04:00
Kyle McCormick
437526b4bb Include CMS urls using fully qualified names 2020-10-19 09:34:31 -04:00
Manjinder Singh
c76ed6ae45 Extracting plugin app from edx-platform (#24678)
* Moving plugins infrastructure to edx-django-utils
This PR extracts the code that enables plugins in edx-platform and puts it in edx-django-utils. This is done to allow other IDAS to add plugin functionality.
2020-08-12 07:48:53 -04:00
Michael Roytman
c1ddfe29a3 Add edX Django Rest Framework Extensions CSRF App URLS to Studio 2020-07-24 14:50:16 -04:00
Michael Roytman
6601111982 add rest_api for contentstore app, including a proctored_exam_settings view 2020-07-16 15:52:03 -04:00
David Ormsbee
5d1b24988e Create learning_sequences app, Course Outline API.
Introduces the learning_sequences app, intended to provide metadata for
sequences and course outlines. The short term goal is to provide faster
source of this information for the new Courseware microfrontend
(frontend-app-learning). The medium term goal is to provide an in-proc
API that is useful to other parts of the platform that need fast access
to course outline information customized for a user. The long term
goals are outlined in the README.rst.

This first iteration of the API only lays out the basic structure for
how we'd arrange the pieces, with enough of an implementation to feel
"real" (simple schedules, staff_only content hiding). It's not ready to
be turned on, and is not currently plugged into the publish-flow. The
only way to get data into this new API is via the update_course_outline
management command. The REST endpoint is also currently limited to
global staff only, though it's possible to get the outline for a student
by using the ?username= query parameter.

TNL-7122
2020-06-02 15:31:21 -04:00
Samuel Walladge
39de23c666 Add flag to enable password change form in admin
This was previously disabled because changing another user's password is
both not usually recommended and bypasses password policy. Here, we add
a feature flag (`ENABLE_CHANGE_USER_PASSWORD_ADMIN`) to allow
re-enabling this password change form. This allows continued use of this
functionality by clients that require it.
2020-02-21 11:22:10 +10:30
Ned Batchelder
079d17b899 Remove code that is now in edx_api_doc_tools 2020-01-21 11:15:41 -05:00
Feanil Patel
61e1eda20d Merge pull request #22644 from edx/feanil/2to3_imports
Run `2to3 -f future . -w`
2019-12-30 11:21:05 -05:00
Feanil Patel
9cf2f9f298 Run 2to3 -f future . -w
This will remove imports from __future__ that are no longer needed.

https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
2019-12-30 10:35:30 -05:00
Awais Qureshi
928a84f969 BOM-1117
Specifying a namespace in django.conf.urls.include() without providing an app_name is deprecated.
Adding the app_name attribute in the included module.
2019-12-30 18:08:21 +05:00
Diana Huang
461b11650e Move account_settings into user_api. 2019-12-06 10:27:26 -05:00
Robert Raposa
2202545aec remove studio signin and signup pages
This completes the work started in https://github.com/edx/edx-platform/pull/19453
to use the LMS login and registration for Studio, rather than Studio
providing its own implementation.

LMS login/registration are being used for the following reasons:
1. LMS logistration properly handles all SSO integrations.
2. A single logistration is simpler to maintain and understand.
3. Allows Studio to work more like all other IDAs that use LMS
logistration.

The original switch to use LMS logistration for Studio also added the
toggle `DISABLE_STUDIO_SSO_OVER_LMS` to provide the community some
additional time for switching. This commit removes this toggle, which
at this point means all deployments will use the LMS logistration.

This change requires sharing cookies across LMS and Studio. Should that
prove to be a problem for certain Open edX instances, there are
discussions of possible alternative solutions.
See https://github.com/edx/edx-platform/pull/19845#issuecomment-559154256

Detailed changes:
* Fix some Studio links that still went to old Studio signin and signup.
* Remove DISABLE_STUDIO_SSO_OVER_LMS feature toggle.
* Remove old studio signin and signup pages and templates.
* Fix url name "login", which had different meanings for Studio and LMS.
* Use the following settings: LOGIN_URL, FRONTEND_LOGIN_URL,
FRONTEND_LOGOUT_URL, and FRONTEND_REGISTER_URL.
* Redirect /signin and /signup to the LMS logistration.
* Add custom metric `uses_pattern_library`.
* Add custom metric `student_activate_account`.
* Add Django Settings to allow /signin, /signup, and /login_post to be
disabled once ready.

This work also relates to ARCH-218 and DEPR-6.

ARCH-1253
2019-12-04 02:36:36 -05:00
Régis Behmo
ae216c8584 Rename API decorators to "apidocs" to be provider-agnostic
The API documentation decorators do not have to leak which solution we
use to generate the docs. Here, and as discussed in PR #21820, we rename
the `openapi` module to `apidocs`, and we make sure that this module
includes all the right functions to document API Views without referring
to Open API.
2019-10-14 08:14:18 +02:00
Ned Batchelder
d585a8f71d URLs and settings for OpenAPI generation
API docs are now always available, no more toggle to enable them.
2019-09-17 16:54:27 -04:00
Braden MacDonald
d3f6ed09d8 Learning Contexts, New XBlock Runtime, Blockstore API Client + Content Libraries
https://github.com/edx/edx-platform/pull/20645

This introduces:
* A new XBlock runtime that can read and write XBlocks that are persisted using
  Blockstore instead of Modulestore. The new runtime is currently isolated so
  that it can be tested without risk to the current courseware/runtime.
* Content Libraries v2, which store XBlocks in Blockstore not modulestore
* An API Client for Blockstore
* "Learning Context" plugin API. A learning context is a more abstract concept
  than a course; it's a collection of XBlocks that serves some learning purpose.
2019-08-30 10:31:15 -07:00
Calen Pennington
1823d9f098 Add django app for running Coverage who-tests-what in bokchoy 2019-07-24 10:13:46 -04:00
Ayub khan
65efedc912 INCR-347 python3 compatibility 2019-07-19 13:52:49 +05:00
Ned Batchelder
2e9cae46cb Add drf-yasg
* Install drf-yasg

* Add drf-yasg settings and urls

* Pin drf to make drf-yasg work

* Adjust config-models version to be compatible

* Remove django-rest-swagger (the old way)
2019-06-21 17:47:26 -04:00
Ned Batchelder
39c7a2db7c Revert "Use drf-yasg for Open API documentation" 2019-06-11 16:05:00 -04:00
Ned Batchelder
f0fa5f7169 Enable Studio API docs in devstack 2019-06-10 15:27:39 -04:00
Mike Dikan
2c149ca6be Removing the Deprecated the 'external_auth' package in favor of 'third_party_auth' which is the current recommendation. 2019-03-02 16:06:46 -05:00
Nimisha Asthagiri
886bc4b20b Studio login/registration redirects to LMS 2018-12-17 20:50:57 -05:00
Cali Stenson
46a4bdb115 Override change password urls in django admin.
LEARNER-4928
2018-09-18 17:11:49 -04:00
Nimisha Asthagiri
8cf44283c9 Consolidate user login and authentication code 2018-09-15 03:21:39 -04:00
Calen Pennington
07a15c681f Reapply the XBlock RequireJS -> Webpack changes
This reverts commit 105db2cf59, reversing
changes made to 447457594f.
2018-06-27 22:27:07 -04:00
Dennis Jen
9b228ada89 Add Checklists to new page and to course outline view 2018-06-19 17:25:41 -04:00
Eric Fischer
e72549cdbe Revert "Merge pull request #18340 from cpennington/fix-studio-xblock-rendering"
This reverts commit 9a70ca78a5, reversing
changes made to efd5b9abbd.

Hopefully fixes EDUCATOR-3053
2018-06-15 13:18:27 -04:00
Calen Pennington
be3c7e05c5 Reapply "Switch container factory to webpack"
This reverts commit 18d93b00ba.
2018-06-07 15:52:05 -04:00
Calen Pennington
18d93b00ba Revert "Switch container factory to webpack" 2018-06-07 13:46:47 -04:00
Calen Pennington
0abe75a7c6 Re-apply the changes to convert XBlocks to Webpack
Reapplies edx/edx-platform#17509

This reverts commit 0f7e2373d0.
2018-06-06 12:52:12 -04:00
Calen Pennington
0f7e2373d0 Revert "Switch container factory to webpack" 2018-05-29 16:01:38 -04:00
Calen Pennington
389f4fcec9 Switch container.js to bundle using webpack 2018-05-29 12:19:05 -04:00
Douglas Hall
c6ec5edbf7 Add API documentation with django-rest-swagger. 2018-05-08 14:38:33 -04:00
Mushtaq Ali
f4b1da1f42 Merge pull request #17718 from edx/transcripts-phase-2
Transcripts phase 2
2018-05-07 12:42:50 +05:00
Anthony Mangano
07609e7d75 Add password_policy checks to login views
LEARNER-4869
2018-05-04 11:55:57 -04:00
muhammad-ammar
aaaafee2b2 remove video transcript enabled flag 2018-04-30 15:59:32 +05:00