1. 16 Apr, 2015 1 commit
  2. 15 Apr, 2015 1 commit
  3. 10 Mar, 2015 1 commit
  4. 09 Mar, 2015 1 commit
    • ECOM-1178: Embargo rules for continent codes. · feed7eaa
      This commit fixes a bug that could occur when GeoIP
      returns a continent code ("EU" or "AN") instead of a
      country code.  The previous implementation would
      block users in this case since the country code
      was not on the whitelist (consisting of all known
      country codes).  The new implementation allows user
      access by default if we don't recognize the country code.
      Will Daly committed
  5. 23 Feb, 2015 1 commit
  6. 20 Feb, 2015 1 commit
  7. 13 Feb, 2015 1 commit
  8. 10 Feb, 2015 1 commit
    • Implement IP filtering in embargo middleware. · 98ee3a53
      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.
      Will Daly committed
  9. 09 Feb, 2015 2 commits
    • Fix embargo migration to the new data models. · 7e746f7d
      The previous version of this migration incorrectly handled
      disabled configuration.  When configuration is disabled,
      the embargoed country field was the empty string; calling
      str.split(",") produced a list with a single empty list entry,
      which is not a valid country code.
      Will Daly committed
    • Add new models to embargo to support country access · 92c2fdbc
      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.
      Will Daly committed
  10. 04 Feb, 2015 2 commits
    • Better support specifying of modulestore configuration in test cases · b353ed2e
      The existing pattern of using `override_settings(MODULESTORE=...)` prevented
      us from having more than one layer of subclassing in modulestore tests.
      
      In a structure like:
      
          @override_settings(MODULESTORE=store_a)
          class BaseTestCase(ModuleStoreTestCase):
              def setUp(self):
                  # use store
      
          @override_settings(MODULESTORE=store_b)
          class ChildTestCase(BaseTestCase):
              def setUp(self):
                  # use store
      
      In this case, the store actions performed in `BaseTestCase` on behalf of
      `ChildTestCase` would still use `store_a`, even though the `ChildTestCase`
      had specified to use `store_b`. This is because the `override_settings`
      decorator would be the innermost wrapper around the `BaseTestCase.setUp` method,
      no matter what `ChildTestCase` does.
      
      To remedy this, we move the call to `override_settings` into the
      `ModuleStoreTestCase.setUp` method, and use a cleanup to remove the override.
      Subclasses can just defined the `MODULESTORE` class attribute to specify which
      modulestore to use _for the entire `setUp` chain_.
      
      [PLAT-419]
      Calen Pennington committed
  11. 03 Feb, 2015 1 commit
  12. 02 Feb, 2015 2 commits
  13. 29 Jan, 2015 1 commit
  14. 02 Dec, 2014 1 commit
  15. 01 Dec, 2014 1 commit
  16. 10 Nov, 2014 1 commit
  17. 19 Sep, 2014 1 commit
  18. 12 Sep, 2014 1 commit
  19. 09 Sep, 2014 1 commit
  20. 08 Sep, 2014 1 commit
  21. 05 Sep, 2014 2 commits
  22. 04 Sep, 2014 1 commit
  23. 27 Aug, 2014 1 commit
  24. 14 Aug, 2014 1 commit
  25. 29 May, 2014 1 commit
  26. 21 May, 2014 1 commit
  27. 20 May, 2014 1 commit
  28. 19 May, 2014 3 commits
  29. 07 May, 2014 1 commit
    • Make course ids and usage ids opaque to LMS and Studio [partial commit] · e2bfcf2a
      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]
      Calen Pennington committed
  30. 05 May, 2014 1 commit
    • Make course ids and usage ids opaque to LMS and Studio [partial commit] · afde40ad
      This commit makes the embargo.tests module a real python module.
      
      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]
      Calen Pennington committed
  31. 02 May, 2014 1 commit
  32. 02 Mar, 2014 1 commit
  33. 27 Feb, 2014 2 commits