Commit Graph

332 Commits

Author SHA1 Message Date
michaelroytman
bb299c9521 feat: Remove Use of VERIFIED_NAME_FLAG Waffle Flag and is_verified_enabled Utility
The VERIFIED_NAME_FLAG, the VerifiedNameEnabledView, and the verified_name_enabled key removed from responses for both VerifiedNameView view and VerifiedNameHistoryView
were removed as part https://github.com/edx/edx-name-affirmation/pull/12. This was released in version 2.0.0 of the edx-name-affirmation PyPI package. Please see below for additional context for the removal, copied from the name-affirmation commit message.

The VERIFIED_NAME_FLAG was added as part https://github.com/edx/edx-name-affirmation/pull/12, [MST-801](https://openedx.atlassian.net/browse/MST-801) in order to control the release of the Verified Name project. It was used for a phased roll out by percentage of users.

The release reached a percentage of 50% before it was observed that, due to the way percentage roll out works in django-waffle, the code to create or update VerifiedName records was not working properly. The code was written such that any change to a SoftwareSecurePhotoVerification model instance sent a signal, which was received and handled by the Name Affirmation application. If the VERIFIED_NAME_FLAG was on for the requesting user, a Celery task was launched from the Name Affirmation application to perform the creation of or update to the appropriate VerifiedName model instances based on the verify_student application signal. However, we observed that when SoftwareSecurePhotoVerification records were moved into the "created" or "ready" status, a Celery task in Name Affirmation was created, but when SoftwareSecurePhotoVerification records were moved into the "submitted" status, the corresponding Celery task in Name Affirmation was not created. This caused VerifiedName records to stay in the "pending" state.

The django-waffle waffle flag used by the edx-toggle library implements percentage rollout by setting a cookie in a learner's browser session to assign them to the enabled or disabled group.
It turns out that the code that submits a SoftwareSecurePhotoVerification record, which moves it into the "submitted" state, happens as part of a Celery task in the verify_student application in the edx-platform. Therefore, we believe that because there is no request object in a Celery task, the edx-toggle code is defaulting to the case where there is no request object. In this case, the code checks whether the flag is enabled for everyone when determining whether the flag is enabled. Because of the percentage rollout (i.e. waffle flag not enabled for everyone), the Celery task in Name Affirmation is not created. This behavior was confirmed by logging added as part of https://github.com/edx/edx-name-affirmation/pull/62.

We have determined that we do not need the waffle flag, as we are comfortable that enabling the waffle flag for everyone will fix the issue and are comfortable releasing the feature to all users. For this reason, we are removing references to the flag.

[MST-1130](https://openedx.atlassian.net/browse/MST-1130)
2021-11-01 13:33:55 -04:00
Andy Shultz
dc01bf3aad feat: add parameter to submit attempt to carry full name through
original behavior does pass the empty name through to
_update_full_name rather than just considering that as full name not
set. That's a little weird but outside the scope of this work so I've
preserved it by checking is not None rather than just using full_name
as a boolean.

MST-1015
2021-09-09 14:18:38 -04:00
Andy Shultz
695f2cd4c8 feat: prevent name update on photo verification if the name is already updated
MST-1015
2021-09-09 11:56:06 -04:00
Andy Shultz
f158fedd15 feat: only update full name if not verified name enabled
MST-1015
2021-09-09 11:56:06 -04:00
Bianca Severino
bdc8653cca fix: use pending name change in IDV post_save signal 2021-09-08 12:25:29 -04:00
alangsto
b6cb629849 feat: add signal emitters for IDV (#28511)
MST-805. A signal should be emitted upon an IDV attempt being submitted or reviewed for consumption by other applications.
2021-08-26 15:29:48 -04:00
Bianca Severino
69b6cf8d42 feat: remove references to expiry_date in IDV 2021-05-12 16:42:32 -04:00
Michael Terry
35f78a3241 feat!: remove all email_marketing djangoapp code
This djangoapp was designed for talking to sailthru, in a fairly
edx.org-specific way. Nowadays, edx.org doesn't need this code and
if other installations do, it's better off as a more distinct
plugin anyway, rather than direct support in the platform.

I've moved the one signal that was still useful (calling
segment.identify() whenever user fields change) into user_authn.

And I've left the EmailMarketingConfiguration model alone for now,
but will remove that shortly. Nothing uses it as of this commit.

AA-607
DEPR-139
2021-05-03 16:39:01 -04:00
Usama Sadiq
3ff951940d refactor: pyupgrade second iteration 2021-05-03 14:55:37 +05:00
Bianca Severino
a8957fd118 refactor: remove verification approved emails from ACE 2021-04-26 14:55:47 -04:00
alangsto
a45bcd158b feat: Add tracking event for IDV photo mode (#27349)
As part of the ongoing A/B experiment for IDV, we would like to know how users submitted their photos (either by upload or camera) in addition to the other information we are tracking
2021-04-15 11:07:40 -04:00
Bianca Severino
3712e0ee2e Merge pull request #27205 from edx/bseverino/idv-validate-image-data
[MST-718] Validate the media type of uploaded IDV images
2021-04-02 11:38:47 -04:00
Bianca Severino
4fc5713792 fix: validate the media type of uploaded IDV images 2021-04-02 10:49:08 -04:00
Jawayria
3743aa7dc8 BOM-2352: Removed unused-imports from lms/djangoapps/verify_student 2021-04-02 17:15:14 +05:00
alangsto
027704adae Added optional param on submit post request to mark experiment name (#26925) 2021-03-11 10:31:47 -05:00
Christie Rice
8c2ce91a15 MICROBA-1033 Remove temporary id verification code. Require users to have a current id verification. (#26834) 2021-03-04 09:08:56 -05:00
M. Zulqarnain
ba86198519 pyupgrade on verify_students app (#26648) 2021-03-02 16:45:01 +05:00
Christie Rice
efff6857a0 MICROBA-1026 Update allowlist to check if a user has ever had a verified id (#26715) 2021-02-25 15:32:17 -05:00
Aarif
c828beb5d1 replaced unittest assertions pytest assertions (#26549) 2021-02-23 10:24:42 +05:00
alangsto
f88181c3c8 update context key/value pair being used for approved email (#26635) 2021-02-19 14:15:09 -05:00
M. Zulqarnain
feaf5011c8 BOM-2287 : Pylint amnesty in teams,tests,survey and verify_student (#26305)
* lint amnesty in teams,tests,survey and verify_student
2021-02-03 18:15:03 +05:00
alangsto
e9dc5baf79 added two endpoints for IDV decryption on stage (#25939)
simplified public keys

made migration

fixes for quality

added pylint fixes

fixed for pylint

added endpoint to retrieve user's receipt_ids

added tests for 404 with decryption error

fixed for quality

fixed for quality

updates for feedback

removed unnecessary method

fixed quality issue

updated tests
2021-01-07 09:05:33 -05:00
Simon Chen
78407b4a8f MST-400 Update the support verification_api to provide the correct status under the same API used by learner (#25917) 2020-12-21 09:14:57 -05:00
alangsto
30d4106659 added endpoint to retrieve IDV photo urls (#25909)
fixed quality issues

added comment

updated for comments

fixing test

removed typo

readded files

moved settings override

testing adding other keys

not overriding setting
2020-12-18 08:14:44 -05:00
Kyle McCormick
bb30a27b3e Revert "added endpoint to retrieve IDV photo urls (#25903)"
This reverts commit 356f187559.
2020-12-17 17:08:58 -05:00
alangsto
356f187559 added endpoint to retrieve IDV photo urls (#25903)
fixed quality issues

added comment

updated for comments
2020-12-17 16:13:32 -05:00
Bianca Severino
2a4c26c367 Encode course_key passed into IDV flow 2020-12-11 09:38:38 -05:00
Simon Chen
00ad36839d MST-542 Roll out Accounts MFE IDV workflow (#25613)
* MST-542 remove the IDV redirect to Account MFE waffle flag to permanently redirect learners to new IDV workflow. This completes the rollout process on edx-platform
2020-12-01 09:08:12 -05:00
Bianca Severino
e4366646f9 Default to expiry_date for older software secure photo verifications 2020-11-12 12:34:04 -05:00
Bianca Severino
56d7ff8017 Set expiration_date field in IDVerificationAttempt model 2020-11-10 15:29:47 -05:00
Bianca Severino
82e8592fbe Revert "Set expiration_date field in IDVerificationAttempt model" 2020-11-10 14:24:07 -05:00
Bianca Severino
3342524699 Update IDVerificationAttempt to use expiration_date field 2020-11-10 11:15:04 -05:00
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
Kyle McCormick
d1a775d3cd Use full names for lms.djangoapps imports (#25401)
* Use full LMS imports paths in LMS settings and urls modules
* Use full LMS import paths in Studio settings and urls modules
* Import from lms.djangoapps.badges instead of badges
* Import from lms.djangoapps.branding instead of branding
* Import from lms.djangoapps.bulk_email instead of bulk_email
* Import from lms.djangoapps.bulk_enroll instead of bulk_enroll
* Import from lms.djangoapps.ccx instead of ccx
* Import from lms.djangoapps.course_api instead of course_api
* Import from lms.djangoapps.course_blocks instead of course_blocks
* Import from lms.djangoapps.course_wiki instead of course_wiki
* Import from lms.djangoapps.courseware instead of courseware
* Import from lms.djangoapps.dashboard instead of dashboard
* Import from lms.djangoapps.discussion import discussion
* Import from lms.djangoapps.email_marketing instead of email_marketing
* Import from lms.djangoapps.experiments instead of experiments
* Import from lms.djangoapps.gating instead of gating
* Import from lms.djangoapps.grades instead of grades
* Import from lms.djangoapps.instructor_analytics instead of instructor_analytics
* Import form lms.djangoapps.lms_xblock instead of lms_xblock
* Import from lms.djangoapps.lti_provider instead of lti_provider
* Import from lms.djangoapps.mobile_api instead of mobile_api
* Import from lms.djangoapps.rss_proxy instead of rss_proxy
* Import from lms.djangoapps.static_template_view instead of static_template_view
* Import from lms.djangoapps.survey instead of survey
* Import from lms.djangoapps.verify_student instead of verify_student
* Stop suppressing EdxPlatformDeprecatedImportWarnings
2020-11-04 08:48:33 -05:00
Simon Chen
1edec15dd5 MST-400 Always return the latest approved valid ID verification (#25453) 2020-10-28 09:27:38 -04:00
Jeremy Bowman
d19368525b DEPR-43 Remove most of the shoppingcart app (#24692)
Removed most of the deprecated shoppingcart app, leaving just enough to allow us to cleanly remove the related database tables later. Also removed the relevant Django settings that weren't in use elsewhere.
2020-10-14 14:24:52 -04:00
Diana Huang
657da20c6e DEPR-43 - Remove JS that refers to shoppingcart receipt page. (#24890)
https://openedx.atlassian.net/browse/DEPR-43

Co-authored-by: Jeremy Bowman <jbowman@edx.org>
2020-09-29 16:08:42 -04:00
Calen Pennington
4a120a9e26 Fix failures caused by removing lms/djangoapps from sys.path 2020-09-23 10:05:37 -04:00
Daphne Li-Chen
f557e395de AA-274: sending credit requirement information and added tests 2020-08-14 14:39:44 -04:00
Awais Jibran
adaa701a76 Deprecate old idv code 2020-07-09 11:53:16 +05:00
Daniel Francis
82c0ca0da8 Fixing implicit parser name for Beautiful Soup (lms, openedx) (#24100)
Fixing 56 GuessedAtParserWarnings, in commit edx#24098

Background: BeautifulSoup automatically picks the fastest parser available. By default, it picks the "lxml" parser.

Per the [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser) documentation:

> Beautiful Soup supports the HTML parser included in Python’s standard library, but it also supports a number of third-party Python parsers. One is the lxml parser. Depending on your setup, you might install lxml with one of these commands.
> Another alternative is the pure-Python html5lib parser, which parses HTML the way a web browser does. 

Context: We changed two statements, one in lms and another in openedx. Both statements fire up BeautifulSoup. Now we explicitly ask for "lxml," following the recommendation on BeautifulSoup's documentation:

> If you can, I recommend you install and use lxml for speed. If you’re using a very old version of Python – earlier than 2.7.3 or 3.2.2 – it’s essential that you install lxml or html5lib. Python’s built-in HTML parser is just not very good in those old versions.

Before:
`soup = BeautifulSoup(content)`

After:
`soup = BeautifulSoup(markup=content, features="lxml")`

The warnings are gone, tests are passing in local.
2020-06-18 15:41:07 -04:00
Diana Huang
c7bd5a8a15 Remove more references to fix tests. 2020-06-09 13:06:44 -04:00
Aarif
98af9ce418 remove useless-supression warnings 2020-05-01 19:42:15 +05:00
Awais Jibran
465d864c77 Adds settings for celery task auto discovery 2020-04-23 12:52:16 +05:00
adeelehsan
0e3bf36ced Verification enabled for the software secure
PROD-1395
2020-04-17 12:26:12 +05:00
Awais Jibran
804fac9358 Adds retry logic for software secure 2020-04-13 14:14:11 +05:00
Ahtisham Shahid
34d126f9e5 changed verification email type to html
changed verification email type to html

changed verification email type to html

changed verification email type to html
2020-04-08 14:50:49 +05:00
Waheed Ahmed
3dc3e10819 Revert "Adds retry logic for software secure." 2020-04-07 20:40:06 +05:00
Awais Jibran
4b22554411 Merge pull request #23514 from edx/aj/ss-retry-logic
Adds retry logic for software secure.
2020-04-07 10:59:57 +05:00
Diana Huang
99863aebff Remove course_id field from CourseMode.
Handle this change appropriately in CourseModeFactory.
2020-04-06 11:21:28 -04:00