Add history table for course access rule changes.
Provide test utility for simulating restricted access.
Provide `redirect_if_blocked` method for integration with other
parts of the system (will be used for blocking enrollment).
Add info-level logging explaining when and why users are blocked.
Add Django admin UI for configuring country access
Migrate existing embargo rules into the new tables.
ECOM-996: updated the middleware to use new models and access rules
ECOM-996: added the flag to support old and new formats
ECOM-996: added the api layer for country access settings
ECOM-996: added the api layer for country access settings
ECOM-996 implementing the white and blacklist checks.
ECOM-996 minor re-factoring in api.
ECOM-996 minor re-factoring in api.
ECOM-1025 refactoring the code according to PR feedback.
ECOM-1025 refactoring the code according to PR feedback.
ECOM-1025 deleting cache in model save and delete methods
ECOM-1025 adding basic api test cases file.
ECOM-1025 refactoring the code according to PR feedback.
ECOM-1025 refactoring the code according to PR feedback.
ECOM-1025 refactoring the code according to PR feedback. adding the test cases.
ECOM-1025 removing extra line
ECOM-1025 removing un-used function.
ECOM-1025 removing un-used function.
ECOM-1025 re-factor the code.
ECOM-1025 re-name the test file to test_middleware_access_rules.py. we already had old test_middleware.py
ECOM-1025 adding test cases for newly added models.
ECOM-1025 adding test cases and resolve conflicts.
ECOM-1025 fixing the quality and pep-8 issues.
ECOM-1025 re-factoring the code according to the PR feedback.
ECOM-1025 re-name the variable name.
ECOM-1025 removing the _check_ip_lists and its test cases. also added few missing scenarios test cases.
ECOM-1025 removing un-used line.
This commit updates common/djangoapps.
These keys are now objects with a limited interface, and the particular
internal representation is managed by the data storage layer (the
modulestore).
For the LMS, there should be no outward-facing changes to the system.
The keys are, for now, a change to internal representation only. For
Studio, the new serialized form of the keys is used in urls, to allow
for further migration in the future.
Co-Author: Andy Armstrong <andya@edx.org>
Co-Author: Christina Roberts <christina@edx.org>
Co-Author: David Baumgold <db@edx.org>
Co-Author: Diana Huang <dkh@edx.org>
Co-Author: Don Mitchell <dmitchell@edx.org>
Co-Author: Julia Hansbrough <julia@edx.org>
Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
Co-Author: Sarina Canelake <sarina@edx.org>
[LMS-2370]
Allows specification of countries to embargo, what course(s) should
apply embargo restrictions, and whitelist/blacklist capability for
specific individual IP addresses.
Adds configurable middleware in common/djangoapps/embargo that
allows specific courses to comply with US Export regulations by
embargoing students from specific countries, whilst simultaneously
allowing other courses to be freely open to all.