Commit Graph

4470 Commits

Author SHA1 Message Date
Feanil Patel
f485ff450d Deal with pylint. 2019-12-09 11:03:22 -05:00
Taranjeet Singh
00653433a5 Adds optional "unsubscribe" link and api support to let users opt out of email updates.
Scheduled emails show "unsubscribe" link if waffle switch
`schedules.course_update_show_unsubscribe` is enabled, and
settings.ACE_ENABLED_POLICIES respects `bulk_email_optout`.

API endpoint allows GET/POST requests, which:

* GET asks for confirmation of opt-out
* POST accepts "unsubscribe" or "cancel", where "unsubscribe" creates the
  Optout entry, and "cancel" does nothing.

Fixes flaky tests:

* The resolvers handle users in "bins", which are groups that depend on the user ID.
* The test user ID varies depending on the test order.
* This change ensures that the bin requested matches the user for the test.
2019-12-09 22:49:57 +10:30
Robert Raposa
9e4706e7bb remove UPDATE_LOGIN_USER_ERROR_STATUS_CODE toggle
The toggle UPDATE_LOGIN_USER_ERROR_STATUS_CODE was added to roll out a
breaking change for `login_user` auth errors to return a 400 rather than
a 200.

This toggle was enabled in Production on 12/5/2019 with seemingly no
adverse affects.

ARCH-1253
2019-12-06 17:20:17 -05:00
Robert Raposa
adf6327196 Merge pull request #22465 from edx/robrap/ARCH-1253-fix-flaky-test
fix flaky test_login unit test
2019-12-06 17:03:45 -05:00
Robert Raposa
6fc75c834b fix flaky test_login unit test
ARCH-1253
2019-12-06 16:19:52 -05:00
Feanil Patel
bf482f4989 Respond to code review. 2019-12-06 15:02:22 -05:00
Diana Huang
461b11650e Move account_settings into user_api. 2019-12-06 10:27:26 -05:00
Feanil Patel
48e9724808 Handle other places where we might be unpickling things.
We use pickling in conjunction with caches in these cases so we should
be able to fallback to the uncached behavior if the pickled data is
corrupt in some way.

eg. it's a python 2 pickle we don't know how to read.
2019-12-05 17:06:12 -05:00
Robert Raposa
ebcff3fb4b return json for third party auth failure
Returning JSON from `login_user` for third party auth failures makes
the response more consistent with all other `login_user` responses.

The only calls to `login_user` with this failure are processed by
`shim_student_view` which will in-turn remove this JSON. This improves
the `login_user` response in advance of switching the logistration page
to use `login_user` without `shim_student_view`.

ARCH-1253
2019-12-05 16:29:35 -05:00
Braden MacDonald
1ea3c032d3 Fixes for the blockstore API client / XBlock runtime under python 3 2019-12-05 09:24:24 -08:00
Robert Raposa
58fadab939 clean-up login part 1
`shim_student_view` is used for login, and is being simplified so it
can ulimately be completely deleted. In this commit, the shim
preprocessing was removed by deleting unused code, and moving code
that is still being used to login_user.

Note: `shim_student_view` was originally added in
https://github.com/edx/edx-platform/pull/5768/files

ARCH-1253
2019-12-04 17:01:23 -05:00
hunytalk
227ae8a51a Add reference to new field in schedule model 2019-12-04 19:05:55 +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
Diana Huang
54be35f913 Move AccountCreationForm to user_authn. 2019-12-02 17:20:23 -05:00
Ned Batchelder
30d4c37a30 Merge pull request #22091 from mahyard/activation-email-to-ace
Activation email to ace
2019-11-26 13:09:20 -05:00
adeelehsan
b9fd7f24ce Merge pull request #22394 from edx/aehsan/prod-1004/added_uri_for_explore_new_programs
Uri added for explore new program
2019-11-26 18:36:26 +05:00
adeelehsan
c7172c1d69 Uri added for explore new program
PROD-1004
2019-11-26 17:28:45 +05:00
Robert Raposa
6086e37c28 Merge pull request #22379 from edx/robrap/ARCH-1253-login-post-clean-up
ARCH-1253: switch login_user errors to 400
2019-11-25 16:15:02 -05:00
Shadi Naif
f93023bafe Convert Account Activation Emails to edx-ACE 2019-11-25 23:56:09 +03:30
Diana Huang
f8c8bf36a6 Move password reset logic from student to user_authn. 2019-11-25 13:58:09 -05:00
Robert Raposa
5aa6181f85 switch login_user errors to 400
The APIs using login_user are currently not following the API
conventions for non-SSO related authentication errors, by returning a
200 status code for errors.

In addition to switching the status code from 200 => 400 for
authentication failures, the following minor changes were made:
- Document and refactor an existing authn switch.
- Remove an unused url definition for login_ajax + error.

BREAKING CHANGE: This changes /login_post and /login_ajax to return
400, rather than 200, when success=False in the returned JSON (for
non-SSO related authentication errors).

To remove risk around this change, it was added behind a waffle switch
named `user_authn.update_login_user_error_status_code`.

A breaking change was made, rather than introducing /login_ajax_new,
in order to more quickly get to our end goal of the current clean-up
effort of having a single function for login. If this breaks any
callers, we may fix or abandon this change altogether.

ARCH-1253
2019-11-25 09:53:43 -05:00
adeelehsan
d506ecc99f Merge pull request #22318 from edx/aehsan/prod-987/fixing_oom_issue_for_notify_credentials
Fixing notify credentials job
2019-11-22 20:54:56 +05:00
Diana Huang
685260c721 Merge pull request #22366 from edx/diana/move-password-change-request
Move request_password_change to user_authn.
2019-11-22 09:40:13 -05:00
adeelehsan
e32e39e099 Fixing notify credentials job
To save the memory get cert and grade object directly from
the db because by doing that we'll override the queryset
evaluation and object won't be cached once it has gone out
of scope.

PROD-987
2019-11-22 18:38:00 +05:00
hunytalk
75b4b04607 Add start_date field in schedule model 2019-11-22 16:46:57 +05:00
Diana Huang
d472cd8bfe Move request_password_change to user_authn. 2019-11-21 11:07:33 -05:00
Robert Raposa
7a2594006d add more temporary login custom metrics
- add login_user + third party auth (tpa) metrics

This is in service of ARCH-1253 clean-up of login.

ARCH-1253
2019-11-20 16:56:56 -05:00
Robert Raposa
bf85380dc3 add temporary login custom metrics. (#22365)
- add temporary custom metrics for shim_student_view.
- remove some pointless tests.

This is in service of ARCH-1253 clean-up of login.

ARCH-1253
2019-11-20 16:36:04 -05:00
Diana Huang
898bd8a90e Move RegistrationValidationView into user_authn. 2019-11-20 14:09:20 -05:00
Diana Huang
44a70ff8cc Merge pull request #22354 from edx/diana/move-generate-password
Move generate_password to user_authn.
2019-11-20 09:35:08 -05:00
muhammad-ammar
36697dab8c If user belongs to edx.org and does not exist in AllowedAuthEdxUser
then user must login through `edx.org` Google account

ENT-2461
2019-11-20 16:05:34 +05:00
Diana Huang
a538843ac3 Move generate_password to user_authn. 2019-11-19 16:49:36 -05:00
Nimisha Asthagiri
1abad23d4a User API: Remove unneeded create_account API (#22239)
DEPR-52
2019-11-19 15:45:26 -05:00
Diana Huang
7cf13144ba Move get_login_session_form to user_authn. 2019-11-19 09:49:50 -05:00
Awais Jibran
aafaa1efae Handle ValueError while getting group for user. 2019-11-13 15:17:44 +05:00
Robert Raposa
ddc34bd023 upgrade edx-drf-extensions to 2.4.5 (#22269)
- Upgrade edx-drf-extensions to 2.4.5
- Removed constraint to 2.4.0, because 2.4.2 introduces a workaround for
ARCH-1210 by putting the problematic code behind a django setting.
- Remove unused JWT_AUTH_REFRESH_COOKIE setting.

ARCH-418, ARCH-1269, ARCH-1044

fix broken toggle
2019-11-12 15:10:28 -05:00
Nimisha Asthagiri
f7be885719 Registration API: Remove success field
LEARNER-7476
2019-11-12 11:34:57 -05:00
irfanuddinahmad
8b5e8968ed updated the login flow for multiple enterprise 2019-11-12 19:47:02 +05:00
David Ormsbee
6ba9cd2140 Merge pull request #22035 from open-craft/blockstore-assets
APIs for XBlock static asset files in Blockstore
2019-11-08 15:28:59 -05:00
hasnain-naveed
057f443a26 ENT-2437 | get_enterprise_customer_for_learner method replaced with enterprise_customer_for_request. 2019-11-08 15:47:52 +05:00
Stu Young
9ec9d45bc4 remove backfill history management command (#22267) 2019-11-07 15:03:31 -05:00
Matthew Piatetsky
8e54125e96 Merge pull request #22223 from edx/REV-693-step3
[REV-693] Delete old holdback code
2019-11-07 14:12:05 -05:00
Matthew Piatetsky
bd76a71019 delete old holdback code 2019-11-07 09:51:39 -05:00
Kyle McCormick
4f3262a40b Remove most references to old teams config scheme (#22238)
This is a follow up from MST-16, which was commited
in 3858036a4e.

Changes:
* Enrich course teams_configuration from a plain Dict
  to a custom XBlock field that uses the new TeamsConfig
  wrapper class.
* Remove teams_conf property from course, as the previous
  change made it redundant.
* Update teams_enabled implementation.
* Remove teams_max_size field from course, which is
  no longer semantically correct, as max team size
  is now defined on a teamset level.
* Remove teams_topics in order to discourage use of raw
  teams config dict.
* Add convenience properties teamsets and teamsets_by_id
  to course.
* Allow periods and spaces in teamset IDs to avoid breaking
  existing course teams.

Some parts of the code still use the old raw config data
(identifiable by searching "cleaned_data_old_format"),
which we expect to be slowly factored away as we build
new teams features. MST-40 has been created to remove any
remaining references if necessary.

MST-18

* fix: bokchoy test

* fix: remove pdb break
2019-11-06 20:43:32 -05:00
Braden MacDonald
7dafda6168 Support for storing an XBlock's static asset files in Blockstore
This PR introduces some backend python + REST APIs for storing static
asset files along with an XBlock in a content library. It also updates
the new runtime to be able to load such static asset files.

Example use cases:
* Store an image file with an HTML block and then use the image inline
  in the HTML block.
* Store a PDF file with an HTML block and provide a link in the HTML for
  the learner to download the PDF.
* Store .srt files or even video .mp4 files that belong to a video
  XBlock.

Within the bundle, these static asset files are stored in a "static/"
subfolder of the folder that contains the OLX file. Extending an
existing LMS/Studio convention, a static asset file such as "image.png"
is referenced within the OLX as "/static/image.png" and the URL will be
rewritten by the runtime.
2019-11-06 10:19:42 -08:00
Manjinder Singh
79c9231128 Revert "ENT-2437 | get_enterprise_customer_for_learner method replaced with e…" (#22248) 2019-11-05 16:51:44 -05:00
Diana Huang
c9323abd0e Move password reset logic and code to user_authn. 2019-11-05 10:03:22 -05:00
Matthew Piatetsky
6eb5466ee5 Merge pull request #22198 from edx/REV-693
[REV-693] Create table to keep track of FBE holdback experiment enrollments
2019-11-04 14:40:26 -05:00
Hasnain Naveed
6820b20059 Merge pull request #22207 from edx/hasnain-naveed/ENT-2437
ENT-2437 | get_enterprise_customer_for_learner method replaced with e…
2019-11-04 15:45:26 +05:00
Nimisha Asthagiri
1bcaa945d9 Merge pull request #22216 from edx/diana/registration-form-factory-move
Move RegistrationFormFactory from user_api to user_authn
2019-11-02 17:57:59 -04:00