From a7ae152d9bd609b7535735a9197e4496f9ffda84 Mon Sep 17 00:00:00 2001 From: Julia Hansbrough Date: Fri, 21 Feb 2014 16:46:53 +0000 Subject: [PATCH 1/7] Embargo Middleware feature 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. --- cms/envs/common.py | 7 ++ cms/urls.py | 1 + common/djangoapps/embargo/__init__.py | 0 common/djangoapps/embargo/middleware.py | 37 +++++++++ .../embargo/migrations/0001_initial.py | 76 ++++++++++++++++++ common/djangoapps/embargo/models.py | 39 +++++++++ common/djangoapps/embargo/tests/tests.py | 71 ++++++++++++++++ common/djangoapps/student/views.py | 11 ++- common/djangoapps/util/request.py | 15 ++++ common/static/data/geoip/GeoIP.dat | Bin 0 -> 612238 bytes common/static/data/geoip/README | 2 + lms/envs/common.py | 7 ++ lms/templates/static_templates/embargo.html | 8 ++ lms/urls.py | 3 +- requirements/edx/github.txt | 4 + 15 files changed, 279 insertions(+), 2 deletions(-) create mode 100644 common/djangoapps/embargo/__init__.py create mode 100644 common/djangoapps/embargo/middleware.py create mode 100644 common/djangoapps/embargo/migrations/0001_initial.py create mode 100644 common/djangoapps/embargo/models.py create mode 100644 common/djangoapps/embargo/tests/tests.py create mode 100644 common/static/data/geoip/GeoIP.dat create mode 100644 common/static/data/geoip/README create mode 100644 lms/templates/static_templates/embargo.html diff --git a/cms/envs/common.py b/cms/envs/common.py index 8b61901327..a0665400a9 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -97,6 +97,9 @@ sys.path.append(PROJECT_ROOT / 'lib') sys.path.append(COMMON_ROOT / 'djangoapps') sys.path.append(COMMON_ROOT / 'lib') +# For geolocation ip database +GEOIP_PATH = REPO_ROOT / "common/static/data/geoip/GeoIP.dat" + ############################# WEB CONFIGURATION ############################# # This is where we stick our compiled template files. @@ -195,6 +198,8 @@ MIDDLEWARE_CLASSES = ( # for expiring inactive sessions 'session_inactivity_timeout.middleware.SessionInactivityTimeout', + + 'embargo.middleware.EmbargoMiddleware', ) ############# XBlock Configuration ########## @@ -465,6 +470,8 @@ INSTALLED_APPS = ( # User preferences 'user_api', 'django_openid_auth', + + 'embargo', ) diff --git a/cms/urls.py b/cms/urls.py index 8ddfc2e2f7..5ef9c414f4 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -51,6 +51,7 @@ urlpatterns += patterns( # ajax view that actually does the work url(r'^login_post$', 'student.views.login_user', name='login_post'), url(r'^logout$', 'student.views.logout_user', name='logout'), + url(r'^embargo$', 'student.views.embargo', name="embargo"), ) # restful api diff --git a/common/djangoapps/embargo/__init__.py b/common/djangoapps/embargo/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/common/djangoapps/embargo/middleware.py b/common/djangoapps/embargo/middleware.py new file mode 100644 index 0000000000..c521de3c07 --- /dev/null +++ b/common/djangoapps/embargo/middleware.py @@ -0,0 +1,37 @@ +""" +Middleware for embargoing courses. +""" + + +from django.shortcuts import redirect +from util.request import course_id_from_url +from embargo.models import EmbargoConfig +from ipware.ip import get_ip +import pygeoip +from django.conf import settings + + +class EmbargoMiddleware(object): + """ + Middleware for embargoing courses + + This is configured by creating ``DarkLangConfig`` rows in the database, + using the django admin site. + """ + + def process_request(self, request): + """ + Processes embargo requests + """ + url = request.path + course_id = course_id_from_url(url) + + # If they're trying to access a course that cares about embargoes + if course_id in EmbargoConfig.current().embargoed_courses_list: + + # If we're having performance issues, add caching here + ip = get_ip(request) + country_code_from_ip = pygeoip.GeoIP(settings.GEOIP_PATH).country_code_by_addr(ip) + is_embargoed = (country_code_from_ip in EmbargoConfig.current().embargoed_countries_list) + if is_embargoed: + return redirect('embargo') diff --git a/common/djangoapps/embargo/migrations/0001_initial.py b/common/djangoapps/embargo/migrations/0001_initial.py new file mode 100644 index 0000000000..f5289c559d --- /dev/null +++ b/common/djangoapps/embargo/migrations/0001_initial.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'EmbargoConfig' + db.create_table('embargo_embargoconfig', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('change_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('changed_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.PROTECT)), + ('enabled', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('embargoed_countries', self.gf('django.db.models.fields.TextField')(blank=True)), + ('embargoed_courses', self.gf('django.db.models.fields.TextField')(blank=True)), + )) + db.send_create_signal('embargo', ['EmbargoConfig']) + + + def backwards(self, orm): + # Deleting model 'EmbargoConfig' + db.delete_table('embargo_embargoconfig') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'embargo.embargoconfig': { + 'Meta': {'object_name': 'EmbargoConfig'}, + 'change_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'changed_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.PROTECT'}), + 'embargoed_countries': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'embargoed_courses': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + } + } + + complete_apps = ['embargo'] \ No newline at end of file diff --git a/common/djangoapps/embargo/models.py b/common/djangoapps/embargo/models.py new file mode 100644 index 0000000000..3bbe5e4fb1 --- /dev/null +++ b/common/djangoapps/embargo/models.py @@ -0,0 +1,39 @@ +""" +Models for embargoing countries +""" +from django.db import models + +from config_models.models import ConfigurationModel + + +class EmbargoConfig(ConfigurationModel): + """ + Configuration for the embargo feature + """ + embargoed_countries = models.TextField( + blank=True, + help_text="A comma-separated list of country codes that fall under U.S. embargo restrictions" + ) + + embargoed_courses = models.TextField( + blank=True, + help_text="A comma-separated list of course IDs that we are enforcing the embargo for" + ) + + @property + def embargoed_countries_list(self): + """ + Returns list of embargoed countries + """ + if not self.embargoed_countries.strip(): + return [] + return [country.strip() for country in self.embargoed_countries.split(',')] + + @property + def embargoed_courses_list(self): + """ + Returns list of embargoed courses + """ + if not self.embargoed_courses.strip(): + return [] + return [course.strip() for course in self.embargoed_courses.split(',')] diff --git a/common/djangoapps/embargo/tests/tests.py b/common/djangoapps/embargo/tests/tests.py new file mode 100644 index 0000000000..a76d59ad94 --- /dev/null +++ b/common/djangoapps/embargo/tests/tests.py @@ -0,0 +1,71 @@ +""" +Tests for EmbargoMiddleware +""" + +from xmodule.modulestore.tests.factories import CourseFactory +from django.test import TestCase +from django.test.utils import override_settings +from courseware.tests.tests import TEST_DATA_MONGO_MODULESTORE +from embargo.models import EmbargoConfig +from django.test import Client +from student.models import CourseEnrollment +from student.tests.factories import UserFactory +import mock +import pygeoip + + +@override_settings(MODULESTORE=TEST_DATA_MONGO_MODULESTORE) +class EmbargoMiddlewareTests(TestCase): + """ + Tests of EmbargoMiddleware + """ + def setUp(self): + self.client = Client() + self.user = UserFactory(username='fred', password='secret') + self.client.login(username='fred', password='secret') + self.embargo_course = CourseFactory.create() + self.embargo_course.save() + self.regular_course = CourseFactory.create(org="Regular") + self.regular_course.save() + self.embargoed_page = '/courses/' + self.embargo_course.id + '/info' + self.regular_page = '/courses/' + self.regular_course.id + '/info' + EmbargoConfig( + embargoed_countries="CU, IR, SY,SD", + embargoed_courses=self.embargo_course.id, + changed_by=self.user, + enabled=True + ).save() + + CourseEnrollment.enroll(self.user, self.regular_course.id) + CourseEnrollment.enroll(self.user, self.embargo_course.id) + + def test_countries(self): + def mock_country_code_by_addr(ip): + """ + Gives us a fake set of IPs + """ + ip_dict = { + '1.0.0.0': 'CU', + '2.0.0.0': 'IR', + '3.0.0.0': 'SY', + '4.0.0.0': 'SD', + } + return ip_dict.get(ip, 'US') + + with mock.patch.object(pygeoip.GeoIP, 'country_code_by_addr') as mocked_method: + mocked_method.side_effect = mock_country_code_by_addr + + # Accessing an embargoed page from a blocked IP should cause a redirect + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 302) + + # Accessing a regular course from a blocked IP should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 404) + + # Accessing any course from non-embaroged IPs should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 404) + + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 404) diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index 29d4ee06df..ebc6597a35 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -140,6 +140,15 @@ def _get_date_for_press(publish_date): return date +def embargo(request): + """ + Render the embargo page. + + Explains to the user why they are not able to access a particular embargoed course. + """ + return render_to_response('static_templates/embargo.html') + + def press(request): json_articles = cache.get("student_press_json_articles") if json_articles is None: @@ -718,7 +727,7 @@ def login_user(request, error=""): # This is actually the common case, logging in user without external linked login AUDIT_LOG.info("User %s w/o external auth attempting login", user) - # see if account has been locked out due to excessive login failres + # see if account has been locked out due to excessive login failures user_found_by_email_lookup = user if user_found_by_email_lookup and LoginFailures.is_feature_enabled(): if LoginFailures.is_user_locked_out(user_found_by_email_lookup): diff --git a/common/djangoapps/util/request.py b/common/djangoapps/util/request.py index fc9c835194..fd2f876269 100644 --- a/common/djangoapps/util/request.py +++ b/common/djangoapps/util/request.py @@ -1,6 +1,7 @@ """ Utility functions related to HTTP requests """ from django.conf import settings from microsite_configuration.middleware import MicrositeConfiguration +from track.contexts import COURSE_REGEX def safe_get_host(request): @@ -16,3 +17,17 @@ def safe_get_host(request): return request.get_host() else: return MicrositeConfiguration.get_microsite_configuration_value('site_domain', settings.SITE_NAME) + + +def course_id_from_url(url): + """ + Extracts the course_id from the given `url`. + """ + url = url or '' + + match = COURSE_REGEX.match(url) + course_id = '' + if match: + course_id = match.group('course_id') or '' + + return course_id diff --git a/common/static/data/geoip/GeoIP.dat b/common/static/data/geoip/GeoIP.dat new file mode 100644 index 0000000000000000000000000000000000000000..5e38e99bdf6a15b329d899487c81624fbbb59d31 GIT binary patch literal 612238 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

GO^@**`*;%fgBDKoJ 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�F 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

7e~BtG;+GmHXKQiKGGE@{3PY|m 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ð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�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 P +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("This Course Unavailable In Your Country")} + +
+

${_('Our system indicates that you are trying to access an edX course from an IP address associated with a country currently subjected to U.S. economic and trade sanctions. Unfortunately, at this time edX must comply with export controls, and we cannot allow you to register for this particular course. Feel free to browse our catalogue to find other courses you may be interested in taking.')}

+
diff --git a/lms/urls.py b/lms/urls.py index 634aec78c3..b7c749c69c 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -11,7 +11,6 @@ if settings.DEBUG or settings.FEATURES.get('ENABLE_DJANGO_ADMIN_SITE'): urlpatterns = ('', # nopep8 # certificate view - url(r'^update_certificate$', 'certificates.views.update_certificate'), url(r'^$', 'branding.views.index', name="root"), # Main marketing page, or redirect to courseware url(r'^dashboard$', 'student.views.dashboard', name="dashboard"), @@ -66,6 +65,8 @@ urlpatterns = ('', # nopep8 url(r'^', include('waffle.urls')), url(r'^i18n/', include('django.conf.urls.i18n')), + + url(r'^embargo$', 'student.views.embargo', name="embargo"), ) # if settings.FEATURES.get("MULTIPLE_ENROLLMENT_ROLES"): diff --git a/requirements/edx/github.txt b/requirements/edx/github.txt index c8cb2c4897..beb3a90a33 100644 --- a/requirements/edx/github.txt +++ b/requirements/edx/github.txt @@ -13,6 +13,10 @@ -e git+https://github.com/gabrielfalcao/lettuce.git@cccc3978ad2df82a78b6f9648fe2e9baddd22f88#egg=lettuce -e git+https://github.com/dementrock/pystache_custom.git@776973740bdaad83a3b029f96e415a7d1e8bec2f#egg=pystache_custom-dev -e git+https://github.com/eventbrite/zendesk.git@d53fe0e81b623f084e91776bcf6369f8b7b63879#egg=zendesk +# TODO clear this library with appropriate people +-e git+https://github.com/un33k/django-ipware.git@42cb1bb1dc680a60c6452e8bb2b843c2a0382c90#egg=django-ipware +# TODO clear this library with appropriate people +-e git+https://github.com/appliedsec/pygeoip.git@95e69341cebf5a6a9fbf7c4f5439d458898bdc3b#egg=pygeoip # Our libraries: -e git+https://github.com/edx/XBlock.git@893cd83dfb24405ce81b07f49c1c2e3053cdc865#egg=XBlock From fe85a1eec1bbd11d657b950fa39bf0d3195e2769 Mon Sep 17 00:00:00 2001 From: Sarina Canelake Date: Sat, 22 Feb 2014 18:04:12 -0500 Subject: [PATCH 2/7] Django-admin for Embargo feature Allows specification of countries to embargo, what course(s) should apply embargo restrictions, and whitelist/blacklist capability for specific individual IP addresses. --- common/djangoapps/embargo/admin.py | 61 +++++++++ .../djangoapps/embargo/fixtures/__init__.py | 0 .../embargo/fixtures/country_codes.py | 25 ++++ common/djangoapps/embargo/forms.py | 127 ++++++++++++++++++ common/djangoapps/embargo/middleware.py | 17 ++- .../embargo/migrations/0001_initial.py | 56 ++++++-- .../djangoapps/embargo/migrations/__init__.py | 0 common/djangoapps/embargo/models.py | 87 +++++++++--- common/djangoapps/embargo/tests/tests.py | 14 +- common/djangoapps/student/views.py | 2 +- 10 files changed, 349 insertions(+), 40 deletions(-) create mode 100644 common/djangoapps/embargo/admin.py create mode 100644 common/djangoapps/embargo/fixtures/__init__.py create mode 100644 common/djangoapps/embargo/fixtures/country_codes.py create mode 100644 common/djangoapps/embargo/forms.py create mode 100644 common/djangoapps/embargo/migrations/__init__.py diff --git a/common/djangoapps/embargo/admin.py b/common/djangoapps/embargo/admin.py new file mode 100644 index 0000000000..8f2f85b484 --- /dev/null +++ b/common/djangoapps/embargo/admin.py @@ -0,0 +1,61 @@ +""" +Django admin page for embargo models +""" +from django.contrib import admin + +from config_models.admin import ConfigurationModelAdmin +from embargo.models import EmbargoedCourse, EmbargoedState, IPException +from embargo.forms import EmbargoedCourseForm, EmbargoedStateForm, IPExceptionForm + + +class EmbargoedCourseAdmin(admin.ModelAdmin): + """Admin for embargoed course ids""" + form = EmbargoedCourseForm + fieldsets = ( + (None, { + 'fields': ('course_id', 'embargoed'), + 'description': ''' +Enter a course id in the following box. Do not enter leading or trailing slashes. There is no need to surround the course ID with quotes. + +Validation will be performed on the course name, and if it is invalid, an error message will display. + +To enable embargos against this course (restrict course access from embargoed states), check the "Embargoed" box, then click "Save". +''' + }), + ) + + +class EmbargoedStateAdmin(ConfigurationModelAdmin): + """Admin for embargoed countries""" + form = EmbargoedStateForm + fieldsets = ( + (None, { + 'fields': ('embargoed_countries',), + 'description': ''' +Enter the two-letter ISO-3166-1 Alpha-2 code of the country or countries to embargo +in the following box. For help, see +
+this list of ISO-3166-1 country codes. + +Enter the embargoed country codes separated by a comma. Do not surround with quotes. +''' + }), + ) + + +class IPExceptionAdmin(ConfigurationModelAdmin): + """Admin for blacklisting/whitelisting specific IP addresses""" + form = IPExceptionForm + fieldsets = ( + (None, { + 'fields': ('whitelist', 'blacklist'), + 'description': ''' +Enter specific IP addresses to explicitly whitelist (not block) or blacklist (block) in +the appropriate box below. Separate IP addresses with a comma. Do not surround with quotes. +''' + }), + ) + +admin.site.register(EmbargoedCourse, EmbargoedCourseAdmin) +admin.site.register(EmbargoedState, EmbargoedStateAdmin) +admin.site.register(IPException, IPExceptionAdmin) diff --git a/common/djangoapps/embargo/fixtures/__init__.py b/common/djangoapps/embargo/fixtures/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/common/djangoapps/embargo/fixtures/country_codes.py b/common/djangoapps/embargo/fixtures/country_codes.py new file mode 100644 index 0000000000..cc73615a26 --- /dev/null +++ b/common/djangoapps/embargo/fixtures/country_codes.py @@ -0,0 +1,25 @@ +""" +List of valid ISO 3166-1 Alpha-2 country codes, used for +validating entries on entered country codes on django-admin page. +""" + +COUNTRY_CODES = set([ + "AC", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", + "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BM", + "BN", "BO", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", + "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CX", "CY", "CZ", "DE", + "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ER", "ES", "ET", "FI", "FJ", "FK", + "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", + "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", + "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", + "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", + "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", + "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", + "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", + "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PT", "PW", "PY", + "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", + "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "ST", "SV", "SY", "SZ", "TA", "TC", "TD", + "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", + "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", + "WS", "YE", "YT", "ZA", "ZM", "ZW" +]) diff --git a/common/djangoapps/embargo/forms.py b/common/djangoapps/embargo/forms.py new file mode 100644 index 0000000000..43f8ea9162 --- /dev/null +++ b/common/djangoapps/embargo/forms.py @@ -0,0 +1,127 @@ +""" +Defines forms for providing validation of embargo admin details. +""" + +from django import forms + +from embargo.models import EmbargoedCourse, EmbargoedState, IPException +from embargo.fixtures.country_codes import COUNTRY_CODES + +import socket + +from xmodule.course_module import CourseDescriptor +from xmodule.modulestore.django import modulestore +from xmodule.modulestore.exceptions import ItemNotFoundError, InvalidLocationError + + +class EmbargoedCourseForm(forms.ModelForm): # pylint: disable=incomplete-protocol + """Form providing validation of entered Course IDs.""" + + class Meta: # pylint: disable=missing-docstring + model = EmbargoedCourse + + def clean_course_id(self): + """Validate the course id""" + course_id = self.cleaned_data["course_id"] + try: + # Try to get the course descriptor, if we can do that, + # it's a real course. + course_loc = CourseDescriptor.id_to_location(course_id) + modulestore().get_instance(course_id, course_loc, depth=1) + except (KeyError, ItemNotFoundError): + msg = 'COURSE NOT FOUND' + msg += u' --- Entered course id was: "{0}". '.format(course_id) + msg += 'Please recheck that you have supplied a valid course id.' + raise forms.ValidationError(msg) + except (ValueError, InvalidLocationError): + msg = 'INVALID LOCATION' + msg += u' --- Entered course id was: "{0}". '.format(course_id) + msg += 'Please recheck that you have supplied a valid course id.' + raise forms.ValidationError(msg) + + return course_id + + +class EmbargoedStateForm(forms.ModelForm): # pylint: disable=incomplete-protocol + """Form validating entry of states to embargo""" + + class Meta: # pylint: disable=missing-docstring + model = EmbargoedState + + def _is_valid_code(self, code): + """Whether or not code is a valid country code""" + if len(code) == 2 and code in COUNTRY_CODES: + return True + return False + + def clean_embargoed_countries(self): + """Validate the country list""" + embargoed_countries = self.cleaned_data["embargoed_countries"] + error_countries = [] + + for country in embargoed_countries.split(','): + country = country.strip().upper() + if not self._is_valid_code(country): + error_countries.append(country) + + if error_countries: + msg = 'COULD NOT PARSE COUNTRY CODE(S) FOR: {0}'.format(error_countries) + msg += ' Please check the list of country codes and verify your entries.' + raise forms.ValidationError(msg) + + return embargoed_countries + + +class IPExceptionForm(forms.ModelForm): # pylint: disable=incomplete-protocol + """Form validating entry of IP addresses""" + + class Meta: # pylint: disable=missing-docstring + model = IPException + + def _is_valid_ipv4(self, address): + """Whether or not address is a valid ipv4 address""" + try: + # Is this an ipv4 address? + socket.inet_pton(socket.AF_INET, address) + except socket.error: + return False + return True + + def _is_valid_ipv6(self, address): + """Whether or not address is a valid ipv6 address""" + try: + # Is this an ipv6 address? + socket.inet_pton(socket.AF_INET6, address) + except socket.error: + return False + return True + + def _valid_ip_addresses(self, addresses): + """ + Checks if a csv string of IP addresses contains valid values. + + If not, raises a ValidationError. + """ + if addresses == '': + return '' + error_addresses = [] + for addr in addresses.split(','): + address = addr.strip() + if not (self._is_valid_ipv4(address) or self._is_valid_ipv6(address)): + error_addresses.append(address) + if error_addresses: + msg = 'Invalid IP Address(es): {0}'.format(error_addresses) + msg += ' Please fix the error(s) and try again.' + raise forms.ValidationError(msg) + + return addresses + + def clean_whitelist(self): + """Validates the whitelist""" + whitelist = self.cleaned_data["whitelist"] + return self._valid_ip_addresses(whitelist) + + def clean_blacklist(self): + """Validates the blacklist""" + blacklist = self.cleaned_data["blacklist"] + return self._valid_ip_addresses(blacklist) diff --git a/common/djangoapps/embargo/middleware.py b/common/djangoapps/embargo/middleware.py index c521de3c07..2dfe4c6ba6 100644 --- a/common/djangoapps/embargo/middleware.py +++ b/common/djangoapps/embargo/middleware.py @@ -5,7 +5,7 @@ Middleware for embargoing courses. from django.shortcuts import redirect from util.request import course_id_from_url -from embargo.models import EmbargoConfig +from embargo.models import EmbargoedCourse, EmbargoedState, IPException from ipware.ip import get_ip import pygeoip from django.conf import settings @@ -27,11 +27,16 @@ class EmbargoMiddleware(object): course_id = course_id_from_url(url) # If they're trying to access a course that cares about embargoes - if course_id in EmbargoConfig.current().embargoed_courses_list: + if EmbargoedCourse.is_embargoed(course_id): # If we're having performance issues, add caching here - ip = get_ip(request) - country_code_from_ip = pygeoip.GeoIP(settings.GEOIP_PATH).country_code_by_addr(ip) - is_embargoed = (country_code_from_ip in EmbargoConfig.current().embargoed_countries_list) - if is_embargoed: + ip_addr = get_ip(request) + # if blacklisted, immediately fail + if ip_addr in IPException.current().blacklist_ips: + return redirect('embargo') + + country_code_from_ip = pygeoip.GeoIP(settings.GEOIP_PATH).country_code_by_addr(ip_addr) + is_embargoed = country_code_from_ip in EmbargoedState.current().embargoed_countries_list + # Fail if country is embargoed and the ip address isn't explicitly whitelisted + if is_embargoed and ip_addr not in IPException.current().whitelist_ips: return redirect('embargo') diff --git a/common/djangoapps/embargo/migrations/0001_initial.py b/common/djangoapps/embargo/migrations/0001_initial.py index f5289c559d..cd4a26197d 100644 --- a/common/djangoapps/embargo/migrations/0001_initial.py +++ b/common/djangoapps/embargo/migrations/0001_initial.py @@ -8,21 +8,45 @@ from django.db import models class Migration(SchemaMigration): def forwards(self, orm): - # Adding model 'EmbargoConfig' - db.create_table('embargo_embargoconfig', ( + # Adding model 'EmbargoedCourse' + db.create_table('embargo_embargoedcourse', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('course_id', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255, db_index=True)), + ('embargoed', self.gf('django.db.models.fields.BooleanField')(default=False)), + )) + db.send_create_signal('embargo', ['EmbargoedCourse']) + + # Adding model 'EmbargoedState' + db.create_table('embargo_embargoedstate', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('change_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('changed_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.PROTECT)), ('enabled', self.gf('django.db.models.fields.BooleanField')(default=False)), ('embargoed_countries', self.gf('django.db.models.fields.TextField')(blank=True)), - ('embargoed_courses', self.gf('django.db.models.fields.TextField')(blank=True)), )) - db.send_create_signal('embargo', ['EmbargoConfig']) + db.send_create_signal('embargo', ['EmbargoedState']) + + # Adding model 'IPException' + db.create_table('embargo_ipexception', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('change_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('changed_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.PROTECT)), + ('enabled', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('whitelist', self.gf('django.db.models.fields.TextField')(blank=True)), + ('blacklist', self.gf('django.db.models.fields.TextField')(blank=True)), + )) + db.send_create_signal('embargo', ['IPException']) def backwards(self, orm): - # Deleting model 'EmbargoConfig' - db.delete_table('embargo_embargoconfig') + # Deleting model 'EmbargoedCourse' + db.delete_table('embargo_embargoedcourse') + + # Deleting model 'EmbargoedState' + db.delete_table('embargo_embargoedstate') + + # Deleting model 'IPException' + db.delete_table('embargo_ipexception') models = { @@ -62,14 +86,28 @@ class Migration(SchemaMigration): 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) }, - 'embargo.embargoconfig': { - 'Meta': {'object_name': 'EmbargoConfig'}, + 'embargo.embargoedcourse': { + 'Meta': {'object_name': 'EmbargoedCourse'}, + 'course_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}), + 'embargoed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'embargo.embargoedstate': { + 'Meta': {'object_name': 'EmbargoedState'}, 'change_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'changed_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.PROTECT'}), 'embargoed_countries': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'embargoed_courses': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'embargo.ipexception': { + 'Meta': {'object_name': 'IPException'}, + 'blacklist': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'change_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'changed_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.PROTECT'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'whitelist': ('django.db.models.fields.TextField', [], {'blank': 'True'}) } } diff --git a/common/djangoapps/embargo/migrations/__init__.py b/common/djangoapps/embargo/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/common/djangoapps/embargo/models.py b/common/djangoapps/embargo/models.py index 3bbe5e4fb1..a1b4aa4276 100644 --- a/common/djangoapps/embargo/models.py +++ b/common/djangoapps/embargo/models.py @@ -1,39 +1,92 @@ """ -Models for embargoing countries +Models for embargoing visits to certain courses by IP address. + +WE'RE USING MIGRATIONS! + +If you make changes to this model, be sure to create an appropriate migration +file and check it in at the same time as your model changes. To do that, + +1. Go to the edx-platform dir +2. ./manage.py lms schemamigration embargo --auto description_of_your_change +3. Add the migration file created in edx-platform/common/djangoapps/embargo/migrations/ """ from django.db import models from config_models.models import ConfigurationModel -class EmbargoConfig(ConfigurationModel): +class EmbargoedCourse(models.Model): """ - Configuration for the embargo feature + Enable course embargo on a course-by-course basis. """ + # The course to embargo + course_id = models.CharField(max_length=255, db_index=True, unique=True) + + # Whether or not to embargo + embargoed = models.BooleanField(default=False) + + @classmethod + def is_embargoed(cls, course_id): + """ + Returns whether or not the given course id is embargoed. + + If course has not been explicitly embargoed, returns False. + """ + try: + record = cls.objects.get(course_id=course_id) + return record.embargoed + except cls.DoesNotExist: + return False + + def __unicode__(self): + not_em = "Not " + if self.embargoed: + not_em = "" + return u"Course '{}' is {}Embargoed".format(self.course_id, not_em) + + +class EmbargoedState(ConfigurationModel): + """ + Register countries to be embargoed. + """ + # The countries to embargo embargoed_countries = models.TextField( blank=True, help_text="A comma-separated list of country codes that fall under U.S. embargo restrictions" ) - embargoed_courses = models.TextField( - blank=True, - help_text="A comma-separated list of course IDs that we are enforcing the embargo for" - ) - @property def embargoed_countries_list(self): """ - Returns list of embargoed countries + Return a list of upper case country codes """ - if not self.embargoed_countries.strip(): - return [] - return [country.strip() for country in self.embargoed_countries.split(',')] + return [country.strip().upper() for country in self.embargoed_countries.split(',')] # pylint: disable=no-member + + +class IPException(ConfigurationModel): + """ + Register specific IP addresses to explicitly block or unblock. + """ + whitelist = models.TextField( + blank=True, + help_text="A comma-separated list of IP addresses that should not fall under embargo restrictions." + ) + + blacklist = models.TextField( + blank=True, + help_text="A comma-separated list of IP addresses that should fall under embargo restrictions." + ) @property - def embargoed_courses_list(self): + def whitelist_ips(self): """ - Returns list of embargoed courses + Return a list of valid IP addresses to whitelist """ - if not self.embargoed_courses.strip(): - return [] - return [course.strip() for course in self.embargoed_courses.split(',')] + return [addr.strip() for addr in self.whitelist.split(',')] # pylint: disable=no-member + + @property + def blacklist_ips(self): + """ + Return a list of valid IP addresses to blacklist + """ + return [addr.strip() for addr in self.blacklist.split(',')] # pylint: disable=no-member diff --git a/common/djangoapps/embargo/tests/tests.py b/common/djangoapps/embargo/tests/tests.py index a76d59ad94..e2e9fd7149 100644 --- a/common/djangoapps/embargo/tests/tests.py +++ b/common/djangoapps/embargo/tests/tests.py @@ -6,7 +6,7 @@ from xmodule.modulestore.tests.factories import CourseFactory from django.test import TestCase from django.test.utils import override_settings from courseware.tests.tests import TEST_DATA_MONGO_MODULESTORE -from embargo.models import EmbargoConfig +from embargo.models import EmbargoedCourse, EmbargoedState from django.test import Client from student.models import CourseEnrollment from student.tests.factories import UserFactory @@ -29,18 +29,18 @@ class EmbargoMiddlewareTests(TestCase): self.regular_course.save() self.embargoed_page = '/courses/' + self.embargo_course.id + '/info' self.regular_page = '/courses/' + self.regular_course.id + '/info' - EmbargoConfig( - embargoed_countries="CU, IR, SY,SD", - embargoed_courses=self.embargo_course.id, + EmbargoedCourse(course_id=self.embargo_course.id, embargoed=True).save() + EmbargoedState( + embargoed_countries="cu, ir, Sy, SD", changed_by=self.user, enabled=True ).save() - + # TODO need to set up & test whitelist/blacklist IPs (IPException model) CourseEnrollment.enroll(self.user, self.regular_course.id) CourseEnrollment.enroll(self.user, self.embargo_course.id) def test_countries(self): - def mock_country_code_by_addr(ip): + def mock_country_code_by_addr(ip_addr): """ Gives us a fake set of IPs """ @@ -50,7 +50,7 @@ class EmbargoMiddlewareTests(TestCase): '3.0.0.0': 'SY', '4.0.0.0': 'SD', } - return ip_dict.get(ip, 'US') + return ip_dict.get(ip_addr, 'US') with mock.patch.object(pygeoip.GeoIP, 'country_code_by_addr') as mocked_method: mocked_method.side_effect = mock_country_code_by_addr diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index ebc6597a35..5b3d3c3aaa 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -140,7 +140,7 @@ def _get_date_for_press(publish_date): return date -def embargo(request): +def embargo(_request): """ Render the embargo page. From e71bbeb1e2fad16fd6d87f8f1ed541a7aa8a9eed Mon Sep 17 00:00:00 2001 From: Sarina Canelake Date: Mon, 24 Feb 2014 18:09:16 -0500 Subject: [PATCH 3/7] Tests for embargo middleware feature --- cms/envs/common.py | 4 +- common/djangoapps/embargo/admin.py | 46 ++-- common/djangoapps/embargo/forms.py | 11 +- common/djangoapps/embargo/middleware.py | 32 ++- .../embargo/migrations/0001_initial.py | 14 +- common/djangoapps/embargo/models.py | 8 +- common/djangoapps/embargo/tests/test_forms.py | 203 ++++++++++++++++++ .../embargo/tests/test_middleware.py | 132 ++++++++++++ .../djangoapps/embargo/tests/test_models.py | 80 +++++++ common/djangoapps/embargo/tests/tests.py | 71 ------ common/djangoapps/track/contexts.py | 5 +- common/djangoapps/util/request.py | 5 +- lms/envs/common.py | 2 +- lms/templates/static_templates/embargo.html | 2 +- requirements/edx/github.txt | 2 - 15 files changed, 491 insertions(+), 126 deletions(-) create mode 100644 common/djangoapps/embargo/tests/test_forms.py create mode 100644 common/djangoapps/embargo/tests/test_middleware.py create mode 100644 common/djangoapps/embargo/tests/test_models.py delete mode 100644 common/djangoapps/embargo/tests/tests.py diff --git a/cms/envs/common.py b/cms/envs/common.py index a0665400a9..a557f2c649 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -186,6 +186,8 @@ MIDDLEWARE_CLASSES = ( # Allows us to dark-launch particular languages 'dark_lang.middleware.DarkLangMiddleware', + 'embargo.middleware.EmbargoMiddleware', + # Detects user-requested locale from 'accept-language' header in http request 'django.middleware.locale.LocaleMiddleware', @@ -198,8 +200,6 @@ MIDDLEWARE_CLASSES = ( # for expiring inactive sessions 'session_inactivity_timeout.middleware.SessionInactivityTimeout', - - 'embargo.middleware.EmbargoMiddleware', ) ############# XBlock Configuration ########## diff --git a/common/djangoapps/embargo/admin.py b/common/djangoapps/embargo/admin.py index 8f2f85b484..75a9f11d81 100644 --- a/common/djangoapps/embargo/admin.py +++ b/common/djangoapps/embargo/admin.py @@ -2,10 +2,11 @@ Django admin page for embargo models """ from django.contrib import admin +import textwrap from config_models.admin import ConfigurationModelAdmin -from embargo.models import EmbargoedCourse, EmbargoedState, IPException -from embargo.forms import EmbargoedCourseForm, EmbargoedStateForm, IPExceptionForm +from embargo.models import EmbargoedCourse, EmbargoedState, IPFilter +from embargo.forms import EmbargoedCourseForm, EmbargoedStateForm, IPFilterForm class EmbargoedCourseAdmin(admin.ModelAdmin): @@ -14,13 +15,15 @@ class EmbargoedCourseAdmin(admin.ModelAdmin): fieldsets = ( (None, { 'fields': ('course_id', 'embargoed'), - 'description': ''' -Enter a course id in the following box. Do not enter leading or trailing slashes. There is no need to surround the course ID with quotes. + 'description': textwrap.dedent("""Enter a course id in the following box. + Do not enter leading or trailing slashes. There is no need to surround the + course ID with quotes. + Validation will be performed on the course name, and if it is invalid, an + error message will display. -Validation will be performed on the course name, and if it is invalid, an error message will display. - -To enable embargos against this course (restrict course access from embargoed states), check the "Embargoed" box, then click "Save". -''' + To enable embargos against this course (restrict course access from embargoed + states), check the "Embargoed" box, then click "Save". + """) }), ) @@ -31,31 +34,30 @@ class EmbargoedStateAdmin(ConfigurationModelAdmin): fieldsets = ( (None, { 'fields': ('embargoed_countries',), - 'description': ''' -Enter the two-letter ISO-3166-1 Alpha-2 code of the country or countries to embargo -in the following box. For help, see - -this list of ISO-3166-1 country codes. + 'description': textwrap.dedent("""Enter the two-letter ISO-3166-1 Alpha-2 + code of the country or countries to embargo in the following box. For help, + see + this list of ISO-3166-1 country codes. -Enter the embargoed country codes separated by a comma. Do not surround with quotes. -''' + Enter the embargoed country codes separated by a comma. Do not surround with quotes. + """) }), ) -class IPExceptionAdmin(ConfigurationModelAdmin): +class IPFilterAdmin(ConfigurationModelAdmin): """Admin for blacklisting/whitelisting specific IP addresses""" - form = IPExceptionForm + form = IPFilterForm fieldsets = ( (None, { 'fields': ('whitelist', 'blacklist'), - 'description': ''' -Enter specific IP addresses to explicitly whitelist (not block) or blacklist (block) in -the appropriate box below. Separate IP addresses with a comma. Do not surround with quotes. -''' + 'description': textwrap.dedent("""Enter specific IP addresses to explicitly + whitelist (not block) or blacklist (block) in the appropriate box below. + Separate IP addresses with a comma. Do not surround with quotes. + """) }), ) admin.site.register(EmbargoedCourse, EmbargoedCourseAdmin) admin.site.register(EmbargoedState, EmbargoedStateAdmin) -admin.site.register(IPException, IPExceptionAdmin) +admin.site.register(IPFilter, IPFilterAdmin) diff --git a/common/djangoapps/embargo/forms.py b/common/djangoapps/embargo/forms.py index 43f8ea9162..39f03c5211 100644 --- a/common/djangoapps/embargo/forms.py +++ b/common/djangoapps/embargo/forms.py @@ -4,7 +4,7 @@ Defines forms for providing validation of embargo admin details. from django import forms -from embargo.models import EmbargoedCourse, EmbargoedState, IPException +from embargo.models import EmbargoedCourse, EmbargoedState, IPFilter from embargo.fixtures.country_codes import COUNTRY_CODES import socket @@ -50,13 +50,16 @@ class EmbargoedStateForm(forms.ModelForm): # pylint: disable=incomplete-protoco def _is_valid_code(self, code): """Whether or not code is a valid country code""" - if len(code) == 2 and code in COUNTRY_CODES: + if code in COUNTRY_CODES: return True return False def clean_embargoed_countries(self): """Validate the country list""" embargoed_countries = self.cleaned_data["embargoed_countries"] + if embargoed_countries == '': + return '' + error_countries = [] for country in embargoed_countries.split(','): @@ -72,11 +75,11 @@ class EmbargoedStateForm(forms.ModelForm): # pylint: disable=incomplete-protoco return embargoed_countries -class IPExceptionForm(forms.ModelForm): # pylint: disable=incomplete-protocol +class IPFilterForm(forms.ModelForm): # pylint: disable=incomplete-protocol """Form validating entry of IP addresses""" class Meta: # pylint: disable=missing-docstring - model = IPException + model = IPFilter def _is_valid_ipv4(self, address): """Whether or not address is a valid ipv4 address""" diff --git a/common/djangoapps/embargo/middleware.py b/common/djangoapps/embargo/middleware.py index 2dfe4c6ba6..4fdf4d803f 100644 --- a/common/djangoapps/embargo/middleware.py +++ b/common/djangoapps/embargo/middleware.py @@ -1,23 +1,35 @@ """ Middleware for embargoing courses. + +IMPORTANT NOTE: This code WILL NOT WORK if you have a misconfigured proxy +server. If you are configuring embargo functionality, or if you are +experiencing mysterious problems with embargoing, please check that your +reverse proxy is setting any of the well known client IP address headers (ex., +HTTP_X_FORWARDED_FOR). """ - -from django.shortcuts import redirect -from util.request import course_id_from_url -from embargo.models import EmbargoedCourse, EmbargoedState, IPException -from ipware.ip import get_ip import pygeoip +import django.core.exceptions + from django.conf import settings +from django.shortcuts import redirect +from ipware.ip import get_ip +from util.request import course_id_from_url + +from embargo.models import EmbargoedCourse, EmbargoedState, IPFilter class EmbargoMiddleware(object): """ Middleware for embargoing courses - This is configured by creating ``DarkLangConfig`` rows in the database, - using the django admin site. + This is configured by creating ``EmbargoedCourse``, ``EmbargoedState``, and + optionally ``IPFilter`` rows in the database, using the django admin site. """ + def __init__(self): + # If embargoing is turned off, make this middleware do nothing + if not settings.FEATURES.get('EMBARGO', False): + raise django.core.exceptions.MiddlewareNotUsed() def process_request(self, request): """ @@ -28,15 +40,15 @@ class EmbargoMiddleware(object): # If they're trying to access a course that cares about embargoes if EmbargoedCourse.is_embargoed(course_id): - # If we're having performance issues, add caching here ip_addr = get_ip(request) + # if blacklisted, immediately fail - if ip_addr in IPException.current().blacklist_ips: + if ip_addr in IPFilter.current().blacklist_ips: return redirect('embargo') country_code_from_ip = pygeoip.GeoIP(settings.GEOIP_PATH).country_code_by_addr(ip_addr) is_embargoed = country_code_from_ip in EmbargoedState.current().embargoed_countries_list # Fail if country is embargoed and the ip address isn't explicitly whitelisted - if is_embargoed and ip_addr not in IPException.current().whitelist_ips: + if is_embargoed and ip_addr not in IPFilter.current().whitelist_ips: return redirect('embargo') diff --git a/common/djangoapps/embargo/migrations/0001_initial.py b/common/djangoapps/embargo/migrations/0001_initial.py index cd4a26197d..9516b8985e 100644 --- a/common/djangoapps/embargo/migrations/0001_initial.py +++ b/common/djangoapps/embargo/migrations/0001_initial.py @@ -26,8 +26,8 @@ class Migration(SchemaMigration): )) db.send_create_signal('embargo', ['EmbargoedState']) - # Adding model 'IPException' - db.create_table('embargo_ipexception', ( + # Adding model 'IPFilter' + db.create_table('embargo_ipfilter', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('change_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('changed_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.PROTECT)), @@ -35,7 +35,7 @@ class Migration(SchemaMigration): ('whitelist', self.gf('django.db.models.fields.TextField')(blank=True)), ('blacklist', self.gf('django.db.models.fields.TextField')(blank=True)), )) - db.send_create_signal('embargo', ['IPException']) + db.send_create_signal('embargo', ['IPFilter']) def backwards(self, orm): @@ -45,8 +45,8 @@ class Migration(SchemaMigration): # Deleting model 'EmbargoedState' db.delete_table('embargo_embargoedstate') - # Deleting model 'IPException' - db.delete_table('embargo_ipexception') + # Deleting model 'IPFilter' + db.delete_table('embargo_ipfilter') models = { @@ -100,8 +100,8 @@ class Migration(SchemaMigration): 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) }, - 'embargo.ipexception': { - 'Meta': {'object_name': 'IPException'}, + 'embargo.ipfilter': { + 'Meta': {'object_name': 'IPFilter'}, 'blacklist': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 'change_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'changed_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.PROTECT'}), diff --git a/common/djangoapps/embargo/models.py b/common/djangoapps/embargo/models.py index a1b4aa4276..4ee6613859 100644 --- a/common/djangoapps/embargo/models.py +++ b/common/djangoapps/embargo/models.py @@ -60,10 +60,12 @@ class EmbargoedState(ConfigurationModel): """ Return a list of upper case country codes """ + if self.embargoed_countries == '': + return [] return [country.strip().upper() for country in self.embargoed_countries.split(',')] # pylint: disable=no-member -class IPException(ConfigurationModel): +class IPFilter(ConfigurationModel): """ Register specific IP addresses to explicitly block or unblock. """ @@ -82,6 +84,8 @@ class IPException(ConfigurationModel): """ Return a list of valid IP addresses to whitelist """ + if self.whitelist == '': + return [] return [addr.strip() for addr in self.whitelist.split(',')] # pylint: disable=no-member @property @@ -89,4 +93,6 @@ class IPException(ConfigurationModel): """ Return a list of valid IP addresses to blacklist """ + if self.blacklist == '': + return [] return [addr.strip() for addr in self.blacklist.split(',')] # pylint: disable=no-member diff --git a/common/djangoapps/embargo/tests/test_forms.py b/common/djangoapps/embargo/tests/test_forms.py new file mode 100644 index 0000000000..7fc7682642 --- /dev/null +++ b/common/djangoapps/embargo/tests/test_forms.py @@ -0,0 +1,203 @@ +# -*- coding: utf-8 -*- +""" +Unit tests for embargo app admin forms. +""" + +from django.test import TestCase +from django.test.utils import override_settings + +# Explicitly import the cache from ConfigurationModel so we can reset it after each test +from config_models.models import cache +from embargo.forms import EmbargoedCourseForm, EmbargoedStateForm, IPFilterForm +from embargo.models import EmbargoedCourse, EmbargoedState, IPFilter + +from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase +from xmodule.modulestore.tests.factories import CourseFactory +from courseware.tests.tests import TEST_DATA_MONGO_MODULESTORE + + +@override_settings(MODULESTORE=TEST_DATA_MONGO_MODULESTORE) +class EmbargoCourseFormTest(ModuleStoreTestCase): + """Test the course form properly validates course IDs""" + + def setUp(self): + self.course = CourseFactory.create() + self.true_form_data = {'course_id': self.course.id, 'embargoed': True} + self.false_form_data = {'course_id': self.course.id, 'embargoed': False} + + def tearDown(self): + # Delete any EmbargoedCourse record we may have created + try: + record = EmbargoedCourse.objects.get(course_id=self.course.id) + record.delete() + except EmbargoedCourse.DoesNotExist: + return + + def test_embargo_course(self): + self.assertFalse(EmbargoedCourse.is_embargoed(self.course.id)) + # Test adding embargo to this course + form = EmbargoedCourseForm(data=self.true_form_data) + # Validation should work + self.assertTrue(form.is_valid()) + form.save() + # Check that this course is embargoed + self.assertTrue(EmbargoedCourse.is_embargoed(self.course.id)) + + def test_repeat_course(self): + # Initially course shouldn't be authorized + self.assertFalse(EmbargoedCourse.is_embargoed(self.course.id)) + # Test authorizing the course, which should totally work + form = EmbargoedCourseForm(data=self.true_form_data) + # Validation should work + self.assertTrue(form.is_valid()) + form.save() + # Check that this course is authorized + self.assertTrue(EmbargoedCourse.is_embargoed(self.course.id)) + + # Now make a new course authorization with the same course id that tries to turn email off + form = EmbargoedCourseForm(data=self.false_form_data) + # Validation should not work because course_id field is unique + self.assertFalse(form.is_valid()) + self.assertEquals( + "Embargoed course with this Course id already exists.", + form._errors['course_id'][0] # pylint: disable=protected-access + ) + with self.assertRaisesRegexp(ValueError, "The EmbargoedCourse could not be created because the data didn't validate."): + form.save() + + # Course should still be authorized (invalid attempt had no effect) + self.assertTrue(EmbargoedCourse.is_embargoed(self.course.id)) + + def test_form_typo(self): + # Munge course id + bad_id = self.course.id + '_typo' + + form_data = {'course_id': bad_id, 'embargoed': True} + form = EmbargoedCourseForm(data=form_data) + # Validation shouldn't work + self.assertFalse(form.is_valid()) + + msg = 'COURSE NOT FOUND' + msg += u' --- Entered course id was: "{0}". '.format(bad_id) + msg += 'Please recheck that you have supplied a valid course id.' + self.assertEquals(msg, form._errors['course_id'][0]) # pylint: disable=protected-access + + with self.assertRaisesRegexp(ValueError, "The EmbargoedCourse could not be created because the data didn't validate."): + form.save() + + def test_invalid_location(self): + # Munge course id + bad_id = self.course.id.split('/')[-1] + + form_data = {'course_id': bad_id, 'embargoed': True} + form = EmbargoedCourseForm(data=form_data) + # Validation shouldn't work + self.assertFalse(form.is_valid()) + + msg = 'INVALID LOCATION' + msg += u' --- Entered course id was: "{0}". '.format(bad_id) + msg += 'Please recheck that you have supplied a valid course id.' + self.assertEquals(msg, form._errors['course_id'][0]) # pylint: disable=protected-access + + with self.assertRaisesRegexp(ValueError, "The EmbargoedCourse could not be created because the data didn't validate."): + form.save() + + +class EmbargoedStateFormTest(TestCase): + """Test form for adding new states""" + + def tearDown(self): + # Explicitly clear ConfigurationModel's cache so tests have a clear cache + # and don't interfere with each other + cache.clear() + + def test_add_valid_states(self): + # test adding valid two letter states + # case and spacing should not matter + form_data = {'embargoed_countries': 'cu, Sy , US'} + form = EmbargoedStateForm(data=form_data) + self.assertTrue(form.is_valid()) + form.save() + current_embargoes = EmbargoedState.current().embargoed_countries_list + for country in ["CU", "SY", "US"]: + self.assertIn(country, current_embargoes) + # Test clearing by adding an empty list is OK too + form_data = {'embargoed_countries': ''} + form = EmbargoedStateForm(data=form_data) + self.assertTrue(form.is_valid()) + form.save() + self.assertTrue(len(EmbargoedState.current().embargoed_countries_list) == 0) + + + def test_add_invalid_states(self): + # test adding invalid codes + # xx is not valid + # usa is not valid + form_data = {'embargoed_countries': 'usa, xx'} + form = EmbargoedStateForm(data=form_data) + self.assertFalse(form.is_valid()) + + msg = 'COULD NOT PARSE COUNTRY CODE(S) FOR: {0}'.format([u'USA', u'XX']) + msg += ' Please check the list of country codes and verify your entries.' + self.assertEquals(msg, form._errors['embargoed_countries'][0]) # pylint: disable=protected-access + + with self.assertRaisesRegexp(ValueError, "The EmbargoedState could not be created because the data didn't validate."): + form.save() + + self.assertFalse('USA' in EmbargoedState.current().embargoed_countries_list) + self.assertFalse('XX' in EmbargoedState.current().embargoed_countries_list) + + +class IPFilterFormTest(TestCase): + """Test form for adding [black|white]list IP addresses""" + + def tearDown(self): + # Explicitly clear ConfigurationModel's cache so tests have a clear cache + # and don't interfere with each other + cache.clear() + + def test_add_valid_ips(self): + # test adding valid ip addresses + # should be able to do both ipv4 and ipv6 + # spacing should not matter + form_data = { + 'whitelist': '127.0.0.1, 2003:dead:beef:4dad:23:46:bb:101', + 'blacklist': ' 18.244.1.5 , 2002:c0a8:101::42, 18.36.22.1' + } + form = IPFilterForm(data=form_data) + self.assertTrue(form.is_valid()) + form.save() + whitelist = IPFilter.current().whitelist_ips + blacklist = IPFilter.current().blacklist_ips + for addr in '127.0.0.1, 2003:dead:beef:4dad:23:46:bb:101'.split(','): + self.assertIn(addr.strip(), whitelist) + for addr in '18.244.1.5, 2002:c0a8:101::42, 18.36.22.1'.split(','): + self.assertIn(addr.strip(), blacklist) + + # Test clearing by adding an empty list is OK too + form_data = { + 'whitelist': '', + 'blacklist': '' + } + form = IPFilterForm(data=form_data) + self.assertTrue(form.is_valid()) + form.save() + self.assertTrue(len(IPFilter.current().whitelist) == 0) + self.assertTrue(len(IPFilter.current().blacklist) == 0) + + def test_add_invalid_ips(self): + # test adding invalid ip addresses + form_data = { + 'whitelist': '.0.0.1, :dead:beef:::', + 'blacklist': ' 18.244.* , 999999:c0a8:101::42' + } + form = IPFilterForm(data=form_data) + self.assertFalse(form.is_valid()) + + wmsg = "Invalid IP Address(es): [u'.0.0.1', u':dead:beef:::'] Please fix the error(s) and try again." + self.assertEquals(wmsg, form._errors['whitelist'][0]) # pylint: disable=protected-access + bmsg = "Invalid IP Address(es): [u'18.244.*', u'999999:c0a8:101::42'] Please fix the error(s) and try again." + self.assertEquals(bmsg, form._errors['blacklist'][0]) # pylint: disable=protected-access + + with self.assertRaisesRegexp(ValueError, "The IPFilter could not be created because the data didn't validate."): + form.save() diff --git a/common/djangoapps/embargo/tests/test_middleware.py b/common/djangoapps/embargo/tests/test_middleware.py new file mode 100644 index 0000000000..3e39c93c30 --- /dev/null +++ b/common/djangoapps/embargo/tests/test_middleware.py @@ -0,0 +1,132 @@ +""" +Tests for EmbargoMiddleware +""" + +import mock +import pygeoip +import unittest + +from django.conf import settings +from django.test import TestCase, Client +from django.test.utils import override_settings +from courseware.tests.tests import TEST_DATA_MONGO_MODULESTORE +from student.models import CourseEnrollment +from student.tests.factories import UserFactory +from xmodule.modulestore.tests.factories import CourseFactory + +# Explicitly import the cache from ConfigurationModel so we can reset it after each test +from config_models.models import cache +from embargo.models import EmbargoedCourse, EmbargoedState, IPFilter + + +@override_settings(MODULESTORE=TEST_DATA_MONGO_MODULESTORE) +class EmbargoMiddlewareTests(TestCase): + """ + Tests of EmbargoMiddleware + """ + def setUp(self): + self.client = Client() + self.user = UserFactory(username='fred', password='secret') + self.client.login(username='fred', password='secret') + self.embargo_course = CourseFactory.create() + self.embargo_course.save() + self.regular_course = CourseFactory.create(org="Regular") + self.regular_course.save() + self.embargoed_page = '/courses/' + self.embargo_course.id + '/info' + self.regular_page = '/courses/' + self.regular_course.id + '/info' + EmbargoedCourse(course_id=self.embargo_course.id, embargoed=True).save() + EmbargoedState( + embargoed_countries="cu, ir, Sy, SD", + changed_by=self.user, + enabled=True + ).save() + CourseEnrollment.enroll(self.user, self.regular_course.id) + CourseEnrollment.enroll(self.user, self.embargo_course.id) + # Text from lms/templates/static_templates/embargo.html + self.embargo_text = "Unfortunately, at this time edX must comply with export controls, and we cannot allow you to access this particular course." + + def tearDown(self): + # Explicitly clear ConfigurationModel's cache so tests have a clear cache + # and don't interfere with each other + cache.clear() + + def mock_country_code_by_addr(self, ip_addr): + """ + Gives us a fake set of IPs + """ + ip_dict = { + '1.0.0.0': 'CU', + '2.0.0.0': 'IR', + '3.0.0.0': 'SY', + '4.0.0.0': 'SD', + '5.0.0.0': 'AQ', # Antartica + } + return ip_dict.get(ip_addr, 'US') + + @unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms') + def test_countries(self): + with mock.patch.object(pygeoip.GeoIP, 'country_code_by_addr') as mocked_method: + mocked_method.side_effect = self.mock_country_code_by_addr + + # Accessing an embargoed page from a blocked IP should cause a redirect + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 302) + # Following the redirect should give us the embargo page + response = self.client.get( + self.embargoed_page, + HTTP_X_FORWARDED_FOR='1.0.0.0', + REMOTE_ADDR='1.0.0.0', + follow=True + ) + self.assertIn(self.embargo_text, response.content) + + # Accessing a regular page from a blocked IP should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 200) + + # Accessing an embargoed page from a non-embargoed IP should succeed + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 200) + + # Accessing a regular page from a non-embargoed IP should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 200) + + @unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms') + def test_ip_exceptions(self): + # Explicitly whitelist/blacklist some IPs + IPFilter( + whitelist='1.0.0.0', + blacklist='5.0.0.0', + changed_by=self.user, + enabled=True + ).save() + + with mock.patch.object(pygeoip.GeoIP, 'country_code_by_addr') as mocked_method: + mocked_method.side_effect = self.mock_country_code_by_addr + + # Accessing an embargoed page from a blocked IP that's been whitelisted + # should succeed + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 200) + + # Accessing a regular course from a blocked IP that's been whitelisted should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 200) + + # Accessing an embargoed course from non-embargoed IP that's been blacklisted + # should cause a redirect + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 302) + # Following the redirect should give us the embargo page + response = self.client.get( + self.embargoed_page, + HTTP_X_FORWARDED_FOR='5.0.0.0', + REMOTE_ADDR='1.0.0.0', + follow=True + ) + self.assertIn(self.embargo_text, response.content) + + # Accessing a regular course from a non-embargoed IP that's been blacklisted should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 200) diff --git a/common/djangoapps/embargo/tests/test_models.py b/common/djangoapps/embargo/tests/test_models.py new file mode 100644 index 0000000000..12c66295b8 --- /dev/null +++ b/common/djangoapps/embargo/tests/test_models.py @@ -0,0 +1,80 @@ +"""Test of models for embargo middleware app""" +from django.test import TestCase + +from embargo.models import EmbargoedCourse, EmbargoedState, IPFilter + + +class EmbargoModelsTest(TestCase): + """Test each of the 3 models in embargo.models""" + def test_course_embargo(self): + course_id = 'abc/123/doremi' + # Test that course is not authorized by default + self.assertFalse(EmbargoedCourse.is_embargoed(course_id)) + + # Authorize + cauth = EmbargoedCourse(course_id=course_id, embargoed=True) + cauth.save() + + # Now, course should be embargoed + self.assertTrue(EmbargoedCourse.is_embargoed(course_id)) + self.assertEquals( + cauth.__unicode__(), + "Course 'abc/123/doremi' is Embargoed" + ) + + # Unauthorize by explicitly setting email_enabled to False + cauth.embargoed = False + cauth.save() + # Test that course is now unauthorized + self.assertFalse(EmbargoedCourse.is_embargoed(course_id)) + self.assertEquals( + cauth.__unicode__(), + "Course 'abc/123/doremi' is Not Embargoed" + ) + + def test_state_embargo(self): + # Azerbaijan and France should not be blocked + good_states = ['AZ', 'FR'] + # Gah block USA and Antartica + blocked_states = ['US', 'AQ'] + currently_blocked = EmbargoedState.current().embargoed_countries_list + + for state in blocked_states + good_states: + self.assertFalse(state in currently_blocked) + + # Block + cauth = EmbargoedState(embargoed_countries='US, AQ') + cauth.save() + currently_blocked = EmbargoedState.current().embargoed_countries_list + + for state in good_states: + self.assertFalse(state in currently_blocked) + for state in blocked_states: + self.assertTrue(state in currently_blocked) + + # Change embargo - block Isle of Man too + blocked_states.append('IM') + cauth.embargoed_countries = 'US, AQ, IM' + cauth.save() + currently_blocked = EmbargoedState.current().embargoed_countries_list + + for state in good_states: + self.assertFalse(state in currently_blocked) + for state in blocked_states: + self.assertTrue(state in currently_blocked) + + def test_ip_blocking(self): + whitelist = '127.0.0.1' + blacklist = '18.244.51.3' + + cwhitelist = IPFilter.current().whitelist_ips + self.assertFalse(whitelist in cwhitelist) + cblacklist = IPFilter.current().blacklist_ips + self.assertFalse(blacklist in cblacklist) + + IPFilter(whitelist=whitelist, blacklist=blacklist).save() + + cwhitelist = IPFilter.current().whitelist_ips + self.assertTrue(whitelist in cwhitelist) + cblacklist = IPFilter.current().blacklist_ips + self.assertTrue(blacklist in cblacklist) diff --git a/common/djangoapps/embargo/tests/tests.py b/common/djangoapps/embargo/tests/tests.py deleted file mode 100644 index e2e9fd7149..0000000000 --- a/common/djangoapps/embargo/tests/tests.py +++ /dev/null @@ -1,71 +0,0 @@ -""" -Tests for EmbargoMiddleware -""" - -from xmodule.modulestore.tests.factories import CourseFactory -from django.test import TestCase -from django.test.utils import override_settings -from courseware.tests.tests import TEST_DATA_MONGO_MODULESTORE -from embargo.models import EmbargoedCourse, EmbargoedState -from django.test import Client -from student.models import CourseEnrollment -from student.tests.factories import UserFactory -import mock -import pygeoip - - -@override_settings(MODULESTORE=TEST_DATA_MONGO_MODULESTORE) -class EmbargoMiddlewareTests(TestCase): - """ - Tests of EmbargoMiddleware - """ - def setUp(self): - self.client = Client() - self.user = UserFactory(username='fred', password='secret') - self.client.login(username='fred', password='secret') - self.embargo_course = CourseFactory.create() - self.embargo_course.save() - self.regular_course = CourseFactory.create(org="Regular") - self.regular_course.save() - self.embargoed_page = '/courses/' + self.embargo_course.id + '/info' - self.regular_page = '/courses/' + self.regular_course.id + '/info' - EmbargoedCourse(course_id=self.embargo_course.id, embargoed=True).save() - EmbargoedState( - embargoed_countries="cu, ir, Sy, SD", - changed_by=self.user, - enabled=True - ).save() - # TODO need to set up & test whitelist/blacklist IPs (IPException model) - CourseEnrollment.enroll(self.user, self.regular_course.id) - CourseEnrollment.enroll(self.user, self.embargo_course.id) - - def test_countries(self): - def mock_country_code_by_addr(ip_addr): - """ - Gives us a fake set of IPs - """ - ip_dict = { - '1.0.0.0': 'CU', - '2.0.0.0': 'IR', - '3.0.0.0': 'SY', - '4.0.0.0': 'SD', - } - return ip_dict.get(ip_addr, 'US') - - with mock.patch.object(pygeoip.GeoIP, 'country_code_by_addr') as mocked_method: - mocked_method.side_effect = mock_country_code_by_addr - - # Accessing an embargoed page from a blocked IP should cause a redirect - response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') - self.assertEqual(response.status_code, 302) - - # Accessing a regular course from a blocked IP should succeed - response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') - self.assertEqual(response.status_code, 404) - - # Accessing any course from non-embaroged IPs should succeed - response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') - self.assertEqual(response.status_code, 404) - - response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') - self.assertEqual(response.status_code, 404) diff --git a/common/djangoapps/track/contexts.py b/common/djangoapps/track/contexts.py index 0fb06fb1b1..070ac10ebd 100644 --- a/common/djangoapps/track/contexts.py +++ b/common/djangoapps/track/contexts.py @@ -1,12 +1,9 @@ """Generates common contexts""" - -import re import logging from xmodule.course_module import CourseDescriptor +from util.request import COURSE_REGEX - -COURSE_REGEX = re.compile(r'^.*?/courses/(?P[^/]+/[^/]+/[^/]+)') log = logging.getLogger(__name__) diff --git a/common/djangoapps/util/request.py b/common/djangoapps/util/request.py index fd2f876269..a26059e8a7 100644 --- a/common/djangoapps/util/request.py +++ b/common/djangoapps/util/request.py @@ -1,7 +1,10 @@ """ Utility functions related to HTTP requests """ +import re + from django.conf import settings from microsite_configuration.middleware import MicrositeConfiguration -from track.contexts import COURSE_REGEX + +COURSE_REGEX = re.compile(r'^.*?/courses/(?P[^/]+/[^/]+/[^/]+)') def safe_get_host(request): diff --git a/lms/envs/common.py b/lms/envs/common.py index 5c6b472fbc..e374c5a401 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -703,6 +703,7 @@ MIDDLEWARE_CLASSES = ( # Allows us to dark-launch particular languages 'dark_lang.middleware.DarkLangMiddleware', + 'embargo.middleware.EmbargoMiddleware', # Allows us to set user preferences # should be after DarkLangMiddleware @@ -728,7 +729,6 @@ MIDDLEWARE_CLASSES = ( # for expiring inactive sessions 'session_inactivity_timeout.middleware.SessionInactivityTimeout', - 'embargo.middleware.EmbargoMiddleware', ) ############################### Pipeline ####################################### diff --git a/lms/templates/static_templates/embargo.html b/lms/templates/static_templates/embargo.html index 51622cb33b..23ebd75a71 100644 --- a/lms/templates/static_templates/embargo.html +++ b/lms/templates/static_templates/embargo.html @@ -4,5 +4,5 @@ <%block name="pagetitle">${_("This Course Unavailable In Your Country")}
-

${_('Our system indicates that you are trying to access an edX course from an IP address associated with a country currently subjected to U.S. economic and trade sanctions. Unfortunately, at this time edX must comply with export controls, and we cannot allow you to register for this particular course. Feel free to browse our catalogue to find other courses you may be interested in taking.')}

+

${_("Our system indicates that you are trying to access an edX course from an IP address associated with a country currently subjected to U.S. economic and trade sanctions. Unfortunately, at this time edX must comply with export controls, and we cannot allow you to access this particular course. Feel free to browse our catalogue to find other courses you may be interested in taking.")}

diff --git a/requirements/edx/github.txt b/requirements/edx/github.txt index beb3a90a33..ab024b2e22 100644 --- a/requirements/edx/github.txt +++ b/requirements/edx/github.txt @@ -13,9 +13,7 @@ -e git+https://github.com/gabrielfalcao/lettuce.git@cccc3978ad2df82a78b6f9648fe2e9baddd22f88#egg=lettuce -e git+https://github.com/dementrock/pystache_custom.git@776973740bdaad83a3b029f96e415a7d1e8bec2f#egg=pystache_custom-dev -e git+https://github.com/eventbrite/zendesk.git@d53fe0e81b623f084e91776bcf6369f8b7b63879#egg=zendesk -# TODO clear this library with appropriate people -e git+https://github.com/un33k/django-ipware.git@42cb1bb1dc680a60c6452e8bb2b843c2a0382c90#egg=django-ipware -# TODO clear this library with appropriate people -e git+https://github.com/appliedsec/pygeoip.git@95e69341cebf5a6a9fbf7c4f5439d458898bdc3b#egg=pygeoip # Our libraries: From 1fe453a3a7aae8cda358863e5c470841d4889f2e Mon Sep 17 00:00:00 2001 From: Jay Zoldak Date: Wed, 26 Feb 2014 11:15:57 -0500 Subject: [PATCH 4/7] Update schema for bok-choy database Finalize tests for embargo middleware app --- cms/envs/common.py | 3 + cms/envs/test.py | 3 + common/djangoapps/embargo/admin.py | 15 +- common/djangoapps/embargo/forms.py | 21 +-- common/djangoapps/embargo/middleware.py | 4 +- common/djangoapps/embargo/tests/test_forms.py | 15 +- .../embargo/tests/test_middleware.py | 121 +++++++++------ common/test/db_cache/bok_choy_data.json | 2 +- common/test/db_cache/bok_choy_schema.sql | 145 +++++++++++++++--- lms/envs/common.py | 3 + lms/envs/test.py | 3 + 11 files changed, 235 insertions(+), 100 deletions(-) diff --git a/cms/envs/common.py b/cms/envs/common.py index a557f2c649..b60cec9db7 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -78,6 +78,9 @@ FEATURES = { # Allow editing of short description in course settings in cms 'EDITABLE_SHORT_DESCRIPTION': True, + + # Toggles embargo functionality + 'EMBARGO': False, } ENABLE_JASMINE = False diff --git a/cms/envs/test.py b/cms/envs/test.py index 5edbc89686..7077ed87bd 100644 --- a/cms/envs/test.py +++ b/cms/envs/test.py @@ -190,3 +190,6 @@ FEATURES['ENABLE_SERVICE_STATUS'] = True # This is to disable a test under the common directory that will not pass when run under CMS FEATURES['DISABLE_RESET_EMAIL_TEST'] = True + +# Toggles embargo on for testing +FEATURES['EMBARGO'] = True diff --git a/common/djangoapps/embargo/admin.py b/common/djangoapps/embargo/admin.py index 75a9f11d81..8ff4cc3970 100644 --- a/common/djangoapps/embargo/admin.py +++ b/common/djangoapps/embargo/admin.py @@ -15,14 +15,15 @@ class EmbargoedCourseAdmin(admin.ModelAdmin): fieldsets = ( (None, { 'fields': ('course_id', 'embargoed'), - 'description': textwrap.dedent("""Enter a course id in the following box. - Do not enter leading or trailing slashes. There is no need to surround the - course ID with quotes. - Validation will be performed on the course name, and if it is invalid, an - error message will display. + 'description': textwrap.dedent("""\ + Enter a course id in the following box. + Do not enter leading or trailing slashes. There is no need to surround the + course ID with quotes. + Validation will be performed on the course name, and if it is invalid, an + error message will display. - To enable embargos against this course (restrict course access from embargoed - states), check the "Embargoed" box, then click "Save". + To enable embargos against this course (restrict course access from embargoed + states), check the "Embargoed" box, then click "Save". """) }), ) diff --git a/common/djangoapps/embargo/forms.py b/common/djangoapps/embargo/forms.py index 39f03c5211..09ea11445b 100644 --- a/common/djangoapps/embargo/forms.py +++ b/common/djangoapps/embargo/forms.py @@ -9,9 +9,7 @@ from embargo.fixtures.country_codes import COUNTRY_CODES import socket -from xmodule.course_module import CourseDescriptor from xmodule.modulestore.django import modulestore -from xmodule.modulestore.exceptions import ItemNotFoundError, InvalidLocationError class EmbargoedCourseForm(forms.ModelForm): # pylint: disable=incomplete-protocol @@ -23,18 +21,17 @@ class EmbargoedCourseForm(forms.ModelForm): # pylint: disable=incomplete-protoc def clean_course_id(self): """Validate the course id""" course_id = self.cleaned_data["course_id"] + + # Try to get the course. If this returns None, it's not a real course try: - # Try to get the course descriptor, if we can do that, - # it's a real course. - course_loc = CourseDescriptor.id_to_location(course_id) - modulestore().get_instance(course_id, course_loc, depth=1) - except (KeyError, ItemNotFoundError): + course = modulestore().get_course(course_id) + except ValueError: msg = 'COURSE NOT FOUND' msg += u' --- Entered course id was: "{0}". '.format(course_id) msg += 'Please recheck that you have supplied a valid course id.' raise forms.ValidationError(msg) - except (ValueError, InvalidLocationError): - msg = 'INVALID LOCATION' + if not course: + msg = 'COURSE NOT FOUND' msg += u' --- Entered course id was: "{0}". '.format(course_id) msg += 'Please recheck that you have supplied a valid course id.' raise forms.ValidationError(msg) @@ -50,14 +47,12 @@ class EmbargoedStateForm(forms.ModelForm): # pylint: disable=incomplete-protoco def _is_valid_code(self, code): """Whether or not code is a valid country code""" - if code in COUNTRY_CODES: - return True - return False + return code in COUNTRY_CODES def clean_embargoed_countries(self): """Validate the country list""" embargoed_countries = self.cleaned_data["embargoed_countries"] - if embargoed_countries == '': + if not embargoed_countries: return '' error_countries = [] diff --git a/common/djangoapps/embargo/middleware.py b/common/djangoapps/embargo/middleware.py index 4fdf4d803f..2e2cb2b645 100644 --- a/common/djangoapps/embargo/middleware.py +++ b/common/djangoapps/embargo/middleware.py @@ -9,8 +9,8 @@ HTTP_X_FORWARDED_FOR). """ import pygeoip -import django.core.exceptions +from django.core.exceptions import MiddlewareNotUsed from django.conf import settings from django.shortcuts import redirect from ipware.ip import get_ip @@ -29,7 +29,7 @@ class EmbargoMiddleware(object): def __init__(self): # If embargoing is turned off, make this middleware do nothing if not settings.FEATURES.get('EMBARGO', False): - raise django.core.exceptions.MiddlewareNotUsed() + raise MiddlewareNotUsed() def process_request(self, request): """ diff --git a/common/djangoapps/embargo/tests/test_forms.py b/common/djangoapps/embargo/tests/test_forms.py index 7fc7682642..cea030c23d 100644 --- a/common/djangoapps/embargo/tests/test_forms.py +++ b/common/djangoapps/embargo/tests/test_forms.py @@ -25,14 +25,6 @@ class EmbargoCourseFormTest(ModuleStoreTestCase): self.true_form_data = {'course_id': self.course.id, 'embargoed': True} self.false_form_data = {'course_id': self.course.id, 'embargoed': False} - def tearDown(self): - # Delete any EmbargoedCourse record we may have created - try: - record = EmbargoedCourse.objects.get(course_id=self.course.id) - record.delete() - except EmbargoedCourse.DoesNotExist: - return - def test_embargo_course(self): self.assertFalse(EmbargoedCourse.is_embargoed(self.course.id)) # Test adding embargo to this course @@ -94,7 +86,7 @@ class EmbargoCourseFormTest(ModuleStoreTestCase): # Validation shouldn't work self.assertFalse(form.is_valid()) - msg = 'INVALID LOCATION' + msg = 'COURSE NOT FOUND' msg += u' --- Entered course id was: "{0}". '.format(bad_id) msg += 'Please recheck that you have supplied a valid course id.' self.assertEquals(msg, form._errors['course_id'][0]) # pylint: disable=protected-access @@ -106,6 +98,10 @@ class EmbargoCourseFormTest(ModuleStoreTestCase): class EmbargoedStateFormTest(TestCase): """Test form for adding new states""" + def setUp(self): + # Explicitly clear the cache, since ConfigurationModel relies on the cache + cache.clear() + def tearDown(self): # Explicitly clear ConfigurationModel's cache so tests have a clear cache # and don't interfere with each other @@ -128,7 +124,6 @@ class EmbargoedStateFormTest(TestCase): form.save() self.assertTrue(len(EmbargoedState.current().embargoed_countries_list) == 0) - def test_add_invalid_states(self): # test adding invalid codes # xx is not valid diff --git a/common/djangoapps/embargo/tests/test_middleware.py b/common/djangoapps/embargo/tests/test_middleware.py index 3e39c93c30..c3f418c905 100644 --- a/common/djangoapps/embargo/tests/test_middleware.py +++ b/common/djangoapps/embargo/tests/test_middleware.py @@ -45,10 +45,14 @@ class EmbargoMiddlewareTests(TestCase): # Text from lms/templates/static_templates/embargo.html self.embargo_text = "Unfortunately, at this time edX must comply with export controls, and we cannot allow you to access this particular course." + self.patcher = mock.patch.object(pygeoip.GeoIP, 'country_code_by_addr', self.mock_country_code_by_addr) + self.patcher.start() + def tearDown(self): # Explicitly clear ConfigurationModel's cache so tests have a clear cache # and don't interfere with each other cache.clear() + self.patcher.stop() def mock_country_code_by_addr(self, ip_addr): """ @@ -65,32 +69,29 @@ class EmbargoMiddlewareTests(TestCase): @unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms') def test_countries(self): - with mock.patch.object(pygeoip.GeoIP, 'country_code_by_addr') as mocked_method: - mocked_method.side_effect = self.mock_country_code_by_addr + # Accessing an embargoed page from a blocked IP should cause a redirect + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 302) + # Following the redirect should give us the embargo page + response = self.client.get( + self.embargoed_page, + HTTP_X_FORWARDED_FOR='1.0.0.0', + REMOTE_ADDR='1.0.0.0', + follow=True + ) + self.assertIn(self.embargo_text, response.content) - # Accessing an embargoed page from a blocked IP should cause a redirect - response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') - self.assertEqual(response.status_code, 302) - # Following the redirect should give us the embargo page - response = self.client.get( - self.embargoed_page, - HTTP_X_FORWARDED_FOR='1.0.0.0', - REMOTE_ADDR='1.0.0.0', - follow=True - ) - self.assertIn(self.embargo_text, response.content) + # Accessing a regular page from a blocked IP should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 200) - # Accessing a regular page from a blocked IP should succeed - response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') - self.assertEqual(response.status_code, 200) + # Accessing an embargoed page from a non-embargoed IP should succeed + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 200) - # Accessing an embargoed page from a non-embargoed IP should succeed - response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') - self.assertEqual(response.status_code, 200) - - # Accessing a regular page from a non-embargoed IP should succeed - response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') - self.assertEqual(response.status_code, 200) + # Accessing a regular page from a non-embargoed IP should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 200) @unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms') def test_ip_exceptions(self): @@ -102,31 +103,57 @@ class EmbargoMiddlewareTests(TestCase): enabled=True ).save() - with mock.patch.object(pygeoip.GeoIP, 'country_code_by_addr') as mocked_method: - mocked_method.side_effect = self.mock_country_code_by_addr + # Accessing an embargoed page from a blocked IP that's been whitelisted + # should succeed + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 200) - # Accessing an embargoed page from a blocked IP that's been whitelisted - # should succeed - response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') - self.assertEqual(response.status_code, 200) + # Accessing a regular course from a blocked IP that's been whitelisted should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 200) - # Accessing a regular course from a blocked IP that's been whitelisted should succeed - response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') - self.assertEqual(response.status_code, 200) + # Accessing an embargoed course from non-embargoed IP that's been blacklisted + # should cause a redirect + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 302) + # Following the redirect should give us the embargo page + response = self.client.get( + self.embargoed_page, + HTTP_X_FORWARDED_FOR='5.0.0.0', + REMOTE_ADDR='1.0.0.0', + follow=True + ) + self.assertIn(self.embargo_text, response.content) - # Accessing an embargoed course from non-embargoed IP that's been blacklisted - # should cause a redirect - response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') - self.assertEqual(response.status_code, 302) - # Following the redirect should give us the embargo page - response = self.client.get( - self.embargoed_page, - HTTP_X_FORWARDED_FOR='5.0.0.0', - REMOTE_ADDR='1.0.0.0', - follow=True - ) - self.assertIn(self.embargo_text, response.content) + # Accessing a regular course from a non-embargoed IP that's been blacklisted should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 200) - # Accessing a regular course from a non-embargoed IP that's been blacklisted should succeed - response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') - self.assertEqual(response.status_code, 200) + @unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms') + @mock.patch.dict(settings.FEATURES, {'EMBARGO': False}) + def test_countries_embargo_off(self): + # When the middleware is turned off, all requests should go through + # Accessing an embargoed page from a blocked IP OK + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 200) + + # Accessing a regular page from a blocked IP should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='1.0.0.0', REMOTE_ADDR='1.0.0.0') + self.assertEqual(response.status_code, 200) + + # Explicitly whitelist/blacklist some IPs + IPFilter( + whitelist='1.0.0.0', + blacklist='5.0.0.0', + changed_by=self.user, + enabled=True + ).save() + + # Accessing an embargoed course from non-embargoed IP that's been blacklisted + # should be OK + response = self.client.get(self.embargoed_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 200) + + # Accessing a regular course from a non-embargoed IP that's been blacklisted should succeed + response = self.client.get(self.regular_page, HTTP_X_FORWARDED_FOR='5.0.0.0', REMOTE_ADDR='5.0.0.0') + self.assertEqual(response.status_code, 200) diff --git a/common/test/db_cache/bok_choy_data.json b/common/test/db_cache/bok_choy_data.json index c485e0decd..e622c88927 100644 --- a/common/test/db_cache/bok_choy_data.json +++ b/common/test/db_cache/bok_choy_data.json @@ -1 +1 @@ -[{"pk": 30, "model": "contenttypes.contenttype", "fields": {"model": "anonymoususerid", "name": "anonymous user id", "app_label": "student"}}, {"pk": 50, "model": "contenttypes.contenttype", "fields": {"model": "article", "name": "article", "app_label": "wiki"}}, {"pk": 51, "model": "contenttypes.contenttype", "fields": {"model": "articleforobject", "name": "Article for object", "app_label": "wiki"}}, {"pk": 54, "model": "contenttypes.contenttype", "fields": {"model": "articleplugin", "name": "article plugin", "app_label": "wiki"}}, {"pk": 52, "model": "contenttypes.contenttype", "fields": {"model": "articlerevision", "name": "article revision", "app_label": "wiki"}}, {"pk": 59, "model": "contenttypes.contenttype", "fields": {"model": "articlesubscription", "name": "article subscription", "app_label": "wiki"}}, {"pk": 20, "model": "contenttypes.contenttype", "fields": {"model": "association", "name": "association", "app_label": "django_openid_auth"}}, {"pk": 78, "model": "contenttypes.contenttype", "fields": {"model": "certificateitem", "name": "certificate item", "app_label": "shoppingcart"}}, {"pk": 40, "model": "contenttypes.contenttype", "fields": {"model": "certificatewhitelist", "name": "certificate whitelist", "app_label": "certificates"}}, {"pk": 4, "model": "contenttypes.contenttype", "fields": {"model": "contenttype", "name": "content type", "app_label": "contenttypes"}}, {"pk": 48, "model": "contenttypes.contenttype", "fields": {"model": "courseauthorization", "name": "course authorization", "app_label": "bulk_email"}}, {"pk": 45, "model": "contenttypes.contenttype", "fields": {"model": "courseemail", "name": "course email", "app_label": "bulk_email"}}, {"pk": 47, "model": "contenttypes.contenttype", "fields": {"model": "courseemailtemplate", "name": "course email template", "app_label": "bulk_email"}}, {"pk": 37, "model": "contenttypes.contenttype", "fields": {"model": "courseenrollment", "name": "course enrollment", "app_label": "student"}}, {"pk": 38, "model": "contenttypes.contenttype", "fields": {"model": "courseenrollmentallowed", "name": "course enrollment allowed", "app_label": "student"}}, {"pk": 71, "model": "contenttypes.contenttype", "fields": {"model": "coursemode", "name": "course mode", "app_label": "course_modes"}}, {"pk": 43, "model": "contenttypes.contenttype", "fields": {"model": "coursesoftware", "name": "course software", "app_label": "licenses"}}, {"pk": 18, "model": "contenttypes.contenttype", "fields": {"model": "courseusergroup", "name": "course user group", "app_label": "course_groups"}}, {"pk": 10, "model": "contenttypes.contenttype", "fields": {"model": "crontabschedule", "name": "crontab", "app_label": "djcelery"}}, {"pk": 49, "model": "contenttypes.contenttype", "fields": {"model": "externalauthmap", "name": "external auth map", "app_label": "external_auth"}}, {"pk": 66, "model": "contenttypes.contenttype", "fields": {"model": "flag", "name": "flag", "app_label": "waffle"}}, {"pk": 41, "model": "contenttypes.contenttype", "fields": {"model": "generatedcertificate", "name": "generated certificate", "app_label": "certificates"}}, {"pk": 2, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "auth"}}, {"pk": 42, "model": "contenttypes.contenttype", "fields": {"model": "instructortask", "name": "instructor task", "app_label": "instructor_task"}}, {"pk": 9, "model": "contenttypes.contenttype", "fields": {"model": "intervalschedule", "name": "interval", "app_label": "djcelery"}}, {"pk": 73, "model": "contenttypes.contenttype", "fields": {"model": "linkedin", "name": "linked in", "app_label": "linkedin"}}, {"pk": 22, "model": "contenttypes.contenttype", "fields": {"model": "logentry", "name": "log entry", "app_label": "admin"}}, {"pk": 15, "model": "contenttypes.contenttype", "fields": {"model": "migrationhistory", "name": "migration history", "app_label": "south"}}, {"pk": 19, "model": "contenttypes.contenttype", "fields": {"model": "nonce", "name": "nonce", "app_label": "django_openid_auth"}}, {"pk": 69, "model": "contenttypes.contenttype", "fields": {"model": "note", "name": "note", "app_label": "notes"}}, {"pk": 63, "model": "contenttypes.contenttype", "fields": {"model": "notification", "name": "notification", "app_label": "django_notify"}}, {"pk": 28, "model": "contenttypes.contenttype", "fields": {"model": "offlinecomputedgrade", "name": "offline computed grade", "app_label": "courseware"}}, {"pk": 29, "model": "contenttypes.contenttype", "fields": {"model": "offlinecomputedgradelog", "name": "offline computed grade log", "app_label": "courseware"}}, {"pk": 46, "model": "contenttypes.contenttype", "fields": {"model": "optout", "name": "optout", "app_label": "bulk_email"}}, {"pk": 74, "model": "contenttypes.contenttype", "fields": {"model": "order", "name": "order", "app_label": "shoppingcart"}}, {"pk": 75, "model": "contenttypes.contenttype", "fields": {"model": "orderitem", "name": "order item", "app_label": "shoppingcart"}}, {"pk": 76, "model": "contenttypes.contenttype", "fields": {"model": "paidcourseregistration", "name": "paid course registration", "app_label": "shoppingcart"}}, {"pk": 77, "model": "contenttypes.contenttype", "fields": {"model": "paidcourseregistrationannotation", "name": "paid course registration annotation", "app_label": "shoppingcart"}}, {"pk": 36, "model": "contenttypes.contenttype", "fields": {"model": "pendingemailchange", "name": "pending email change", "app_label": "student"}}, {"pk": 35, "model": "contenttypes.contenttype", "fields": {"model": "pendingnamechange", "name": "pending name change", "app_label": "student"}}, {"pk": 12, "model": "contenttypes.contenttype", "fields": {"model": "periodictask", "name": "periodic task", "app_label": "djcelery"}}, {"pk": 11, "model": "contenttypes.contenttype", "fields": {"model": "periodictasks", "name": "periodic tasks", "app_label": "djcelery"}}, {"pk": 1, "model": "contenttypes.contenttype", "fields": {"model": "permission", "name": "permission", "app_label": "auth"}}, {"pk": 17, "model": "contenttypes.contenttype", "fields": {"model": "psychometricdata", "name": "psychometric data", "app_label": "psychometrics"}}, {"pk": 65, "model": "contenttypes.contenttype", "fields": {"model": "puzzlecomplete", "name": "puzzle complete", "app_label": "foldit"}}, {"pk": 34, "model": "contenttypes.contenttype", "fields": {"model": "registration", "name": "registration", "app_label": "student"}}, {"pk": 55, "model": "contenttypes.contenttype", "fields": {"model": "reusableplugin", "name": "reusable plugin", "app_label": "wiki"}}, {"pk": 57, "model": "contenttypes.contenttype", "fields": {"model": "revisionplugin", "name": "revision plugin", "app_label": "wiki"}}, {"pk": 58, "model": "contenttypes.contenttype", "fields": {"model": "revisionpluginrevision", "name": "revision plugin revision", "app_label": "wiki"}}, {"pk": 68, "model": "contenttypes.contenttype", "fields": {"model": "sample", "name": "sample", "app_label": "waffle"}}, {"pk": 8, "model": "contenttypes.contenttype", "fields": {"model": "tasksetmeta", "name": "saved group result", "app_label": "djcelery"}}, {"pk": 64, "model": "contenttypes.contenttype", "fields": {"model": "score", "name": "score", "app_label": "foldit"}}, {"pk": 16, "model": "contenttypes.contenttype", "fields": {"model": "servercircuit", "name": "server circuit", "app_label": "circuit"}}, {"pk": 5, "model": "contenttypes.contenttype", "fields": {"model": "session", "name": "session", "app_label": "sessions"}}, {"pk": 61, "model": "contenttypes.contenttype", "fields": {"model": "settings", "name": "settings", "app_label": "django_notify"}}, {"pk": 56, "model": "contenttypes.contenttype", "fields": {"model": "simpleplugin", "name": "simple plugin", "app_label": "wiki"}}, {"pk": 6, "model": "contenttypes.contenttype", "fields": {"model": "site", "name": "site", "app_label": "sites"}}, {"pk": 72, "model": "contenttypes.contenttype", "fields": {"model": "softwaresecurephotoverification", "name": "software secure photo verification", "app_label": "verify_student"}}, {"pk": 23, "model": "contenttypes.contenttype", "fields": {"model": "studentmodule", "name": "student module", "app_label": "courseware"}}, {"pk": 24, "model": "contenttypes.contenttype", "fields": {"model": "studentmodulehistory", "name": "student module history", "app_label": "courseware"}}, {"pk": 62, "model": "contenttypes.contenttype", "fields": {"model": "subscription", "name": "subscription", "app_label": "django_notify"}}, {"pk": 67, "model": "contenttypes.contenttype", "fields": {"model": "switch", "name": "switch", "app_label": "waffle"}}, {"pk": 14, "model": "contenttypes.contenttype", "fields": {"model": "taskstate", "name": "task", "app_label": "djcelery"}}, {"pk": 7, "model": "contenttypes.contenttype", "fields": {"model": "taskmeta", "name": "task state", "app_label": "djcelery"}}, {"pk": 39, "model": "contenttypes.contenttype", "fields": {"model": "trackinglog", "name": "tracking log", "app_label": "track"}}, {"pk": 60, "model": "contenttypes.contenttype", "fields": {"model": "notificationtype", "name": "type", "app_label": "django_notify"}}, {"pk": 53, "model": "contenttypes.contenttype", "fields": {"model": "urlpath", "name": "URL path", "app_label": "wiki"}}, {"pk": 3, "model": "contenttypes.contenttype", "fields": {"model": "user", "name": "user", "app_label": "auth"}}, {"pk": 44, "model": "contenttypes.contenttype", "fields": {"model": "userlicense", "name": "user license", "app_label": "licenses"}}, {"pk": 21, "model": "contenttypes.contenttype", "fields": {"model": "useropenid", "name": "user open id", "app_label": "django_openid_auth"}}, {"pk": 70, "model": "contenttypes.contenttype", "fields": {"model": "userpreference", "name": "user preference", "app_label": "user_api"}}, {"pk": 32, "model": "contenttypes.contenttype", "fields": {"model": "userprofile", "name": "user profile", "app_label": "student"}}, {"pk": 31, "model": "contenttypes.contenttype", "fields": {"model": "userstanding", "name": "user standing", "app_label": "student"}}, {"pk": 33, "model": "contenttypes.contenttype", "fields": {"model": "usertestgroup", "name": "user test group", "app_label": "student"}}, {"pk": 13, "model": "contenttypes.contenttype", "fields": {"model": "workerstate", "name": "worker", "app_label": "djcelery"}}, {"pk": 27, "model": "contenttypes.contenttype", "fields": {"model": "xmodulestudentinfofield", "name": "x module student info field", "app_label": "courseware"}}, {"pk": 26, "model": "contenttypes.contenttype", "fields": {"model": "xmodulestudentprefsfield", "name": "x module student prefs field", "app_label": "courseware"}}, {"pk": 25, "model": "contenttypes.contenttype", "fields": {"model": "xmoduleuserstatesummaryfield", "name": "x module user state summary field", "app_label": "courseware"}}, {"pk": 1, "model": "sites.site", "fields": {"domain": "example.com", "name": "example.com"}}, {"pk": 1, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:32Z", "app_name": "courseware", "migration": "0001_initial"}}, {"pk": 2, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:32Z", "app_name": "courseware", "migration": "0002_add_indexes"}}, {"pk": 3, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:32Z", "app_name": "courseware", "migration": "0003_done_grade_cache"}}, {"pk": 4, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:32Z", "app_name": "courseware", "migration": "0004_add_field_studentmodule_course_id"}}, {"pk": 5, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0005_auto__add_offlinecomputedgrade__add_unique_offlinecomputedgrade_user_c"}}, {"pk": 6, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0006_create_student_module_history"}}, {"pk": 7, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0007_allow_null_version_in_history"}}, {"pk": 8, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0008_add_xmodule_storage"}}, {"pk": 9, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0009_add_field_default"}}, {"pk": 10, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0010_rename_xblock_field_content_to_user_state_summary"}}, {"pk": 11, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "student", "migration": "0001_initial"}}, {"pk": 12, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "student", "migration": "0002_text_to_varchar_and_indexes"}}, {"pk": 13, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "student", "migration": "0003_auto__add_usertestgroup"}}, {"pk": 14, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0004_add_email_index"}}, {"pk": 15, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0005_name_change"}}, {"pk": 16, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0006_expand_meta_field"}}, {"pk": 17, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0007_convert_to_utf8"}}, {"pk": 18, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0008__auto__add_courseregistration"}}, {"pk": 19, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0009_auto__del_courseregistration__add_courseenrollment"}}, {"pk": 20, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0010_auto__chg_field_courseenrollment_course_id"}}, {"pk": 21, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0011_auto__chg_field_courseenrollment_user__del_unique_courseenrollment_use"}}, {"pk": 22, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0012_auto__add_field_userprofile_gender__add_field_userprofile_date_of_birt"}}, {"pk": 23, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0013_auto__chg_field_userprofile_meta"}}, {"pk": 24, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0014_auto__del_courseenrollment"}}, {"pk": 25, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0015_auto__add_courseenrollment__add_unique_courseenrollment_user_course_id"}}, {"pk": 26, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0016_auto__add_field_courseenrollment_date__chg_field_userprofile_country"}}, {"pk": 27, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0017_rename_date_to_created"}}, {"pk": 28, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0018_auto"}}, {"pk": 29, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0019_create_approved_demographic_fields_fall_2012"}}, {"pk": 30, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0020_add_test_center_user"}}, {"pk": 31, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0021_remove_askbot"}}, {"pk": 32, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0022_auto__add_courseenrollmentallowed__add_unique_courseenrollmentallowed_"}}, {"pk": 33, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0023_add_test_center_registration"}}, {"pk": 34, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0024_add_allow_certificate"}}, {"pk": 35, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0025_auto__add_field_courseenrollmentallowed_auto_enroll"}}, {"pk": 36, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0026_auto__remove_index_student_testcenterregistration_accommodation_request"}}, {"pk": 37, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0027_add_active_flag_and_mode_to_courseware_enrollment"}}, {"pk": 38, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0028_auto__add_userstanding"}}, {"pk": 39, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0029_add_lookup_table_between_user_and_anonymous_student_id"}}, {"pk": 40, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0029_remove_pearson"}}, {"pk": 41, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0030_auto__chg_field_anonymoususerid_anonymous_user_id"}}, {"pk": 42, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0031_drop_student_anonymoususerid_temp_archive"}}, {"pk": 43, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "track", "migration": "0001_initial"}}, {"pk": 44, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "track", "migration": "0002_auto__add_field_trackinglog_host__chg_field_trackinglog_event_type__ch"}}, {"pk": 45, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0001_added_generatedcertificates"}}, {"pk": 46, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0002_auto__add_field_generatedcertificate_download_url"}}, {"pk": 47, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0003_auto__add_field_generatedcertificate_enabled"}}, {"pk": 48, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0004_auto__add_field_generatedcertificate_graded_certificate_id__add_field_"}}, {"pk": 49, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0005_auto__add_field_generatedcertificate_name"}}, {"pk": 50, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0006_auto__chg_field_generatedcertificate_certificate_id"}}, {"pk": 51, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0007_auto__add_revokedcertificate"}}, {"pk": 52, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0008_auto__del_revokedcertificate__del_field_generatedcertificate_name__add"}}, {"pk": 53, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0009_auto__del_field_generatedcertificate_graded_download_url__del_field_ge"}}, {"pk": 54, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0010_auto__del_field_generatedcertificate_enabled__add_field_generatedcerti"}}, {"pk": 55, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0011_auto__del_field_generatedcertificate_certificate_id__add_field_generat"}}, {"pk": 56, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0012_auto__add_field_generatedcertificate_name__add_field_generatedcertific"}}, {"pk": 57, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0013_auto__add_field_generatedcertificate_error_reason"}}, {"pk": 58, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0014_adding_whitelist"}}, {"pk": 59, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0015_adding_mode_for_verified_certs"}}, {"pk": 60, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "instructor_task", "migration": "0001_initial"}}, {"pk": 61, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "instructor_task", "migration": "0002_add_subtask_field"}}, {"pk": 62, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "licenses", "migration": "0001_initial"}}, {"pk": 63, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0001_initial"}}, {"pk": 64, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0002_change_field_names"}}, {"pk": 65, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0003_add_optout_user"}}, {"pk": 66, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0004_migrate_optout_user"}}, {"pk": 67, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0005_remove_optout_email"}}, {"pk": 68, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0006_add_course_email_template"}}, {"pk": 69, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0007_load_course_email_template"}}, {"pk": 70, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0008_add_course_authorizations"}}, {"pk": 71, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "external_auth", "migration": "0001_initial"}}, {"pk": 72, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0001_initial"}}, {"pk": 73, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0002_auto__add_field_articleplugin_created"}}, {"pk": 74, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0003_auto__add_field_urlpath_article"}}, {"pk": 75, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0004_populate_urlpath__article"}}, {"pk": 76, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0005_auto__chg_field_urlpath_article"}}, {"pk": 77, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0006_auto__add_attachmentrevision__add_image__add_attachment"}}, {"pk": 78, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0007_auto__add_articlesubscription"}}, {"pk": 79, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0008_auto__add_simpleplugin__add_revisionpluginrevision__add_imagerevision_"}}, {"pk": 80, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0009_auto__add_field_imagerevision_width__add_field_imagerevision_height"}}, {"pk": 81, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0010_auto__chg_field_imagerevision_image"}}, {"pk": 82, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0011_auto__chg_field_imagerevision_width__chg_field_imagerevision_height"}}, {"pk": 83, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "django_notify", "migration": "0001_initial"}}, {"pk": 84, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "notifications", "migration": "0001_initial"}}, {"pk": 85, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "foldit", "migration": "0001_initial"}}, {"pk": 86, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0001_initial"}}, {"pk": 87, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0002_auto__add_sample"}}, {"pk": 88, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0003_auto__add_field_flag_note__add_field_switch_note__add_field_sample_not"}}, {"pk": 89, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0004_auto__add_field_flag_testing"}}, {"pk": 90, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0005_auto__add_field_flag_created__add_field_flag_modified"}}, {"pk": 91, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0006_auto__add_field_switch_created__add_field_switch_modified__add_field_s"}}, {"pk": 92, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0007_auto__chg_field_flag_created__chg_field_flag_modified__chg_field_switc"}}, {"pk": 93, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0008_auto__add_field_flag_languages"}}, {"pk": 94, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:41Z", "app_name": "django_comment_client", "migration": "0001_initial"}}, {"pk": 95, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:41Z", "app_name": "django_comment_common", "migration": "0001_initial"}}, {"pk": 96, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:41Z", "app_name": "notes", "migration": "0001_initial"}}, {"pk": 97, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:41Z", "app_name": "user_api", "migration": "0001_initial"}}, {"pk": 98, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0001_initial"}}, {"pk": 99, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0002_auto__add_field_coursemode_currency"}}, {"pk": 100, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0003_auto__add_unique_coursemode_course_id_currency_mode_slug"}}, {"pk": 101, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0004_auto__add_field_coursemode_expiration_date"}}, {"pk": 102, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0005_auto__add_field_coursemode_expiration_datetime"}}, {"pk": 103, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0006_expiration_date_to_datetime"}}, {"pk": 104, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "verify_student", "migration": "0001_initial"}}, {"pk": 105, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "linkedin", "migration": "0001_initial"}}, {"pk": 106, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "django_extensions", "migration": "0001_empty"}}, {"pk": 107, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "shoppingcart", "migration": "0001_initial"}}, {"pk": 108, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0002_auto__add_field_paidcourseregistration_mode"}}, {"pk": 109, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0003_auto__del_field_orderitem_line_cost"}}, {"pk": 110, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0004_auto__add_field_orderitem_fulfilled_time"}}, {"pk": 111, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0005_auto__add_paidcourseregistrationannotation__add_field_orderitem_report"}}, {"pk": 112, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0006_auto__add_field_order_refunded_time__add_field_orderitem_refund_reques"}}, {"pk": 113, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0007_auto__add_field_orderitem_service_fee"}}, {"pk": 1, "model": "bulk_email.courseemailtemplate", "fields": {"plain_template": "{course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your account settings at {account_settings_url}.\r\n", "html_template": " Update from {course_title}

edX
Connect with edX:        

{course_title}


{{message_body}}
       
Copyright \u00a9 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
"}}, {"pk": 64, "model": "auth.permission", "fields": {"codename": "add_logentry", "name": "Can add log entry", "content_type": 22}}, {"pk": 65, "model": "auth.permission", "fields": {"codename": "change_logentry", "name": "Can change log entry", "content_type": 22}}, {"pk": 66, "model": "auth.permission", "fields": {"codename": "delete_logentry", "name": "Can delete log entry", "content_type": 22}}, {"pk": 4, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 2}}, {"pk": 5, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 2}}, {"pk": 6, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 2}}, {"pk": 1, "model": "auth.permission", "fields": {"codename": "add_permission", "name": "Can add permission", "content_type": 1}}, {"pk": 2, "model": "auth.permission", "fields": {"codename": "change_permission", "name": "Can change permission", "content_type": 1}}, {"pk": 3, "model": "auth.permission", "fields": {"codename": "delete_permission", "name": "Can delete permission", "content_type": 1}}, {"pk": 7, "model": "auth.permission", "fields": {"codename": "add_user", "name": "Can add user", "content_type": 3}}, {"pk": 8, "model": "auth.permission", "fields": {"codename": "change_user", "name": "Can change user", "content_type": 3}}, {"pk": 9, "model": "auth.permission", "fields": {"codename": "delete_user", "name": "Can delete user", "content_type": 3}}, {"pk": 142, "model": "auth.permission", "fields": {"codename": "add_courseauthorization", "name": "Can add course authorization", "content_type": 48}}, {"pk": 143, "model": "auth.permission", "fields": {"codename": "change_courseauthorization", "name": "Can change course authorization", "content_type": 48}}, {"pk": 144, "model": "auth.permission", "fields": {"codename": "delete_courseauthorization", "name": "Can delete course authorization", "content_type": 48}}, {"pk": 133, "model": "auth.permission", "fields": {"codename": "add_courseemail", "name": "Can add course email", "content_type": 45}}, {"pk": 134, "model": "auth.permission", "fields": {"codename": "change_courseemail", "name": "Can change course email", "content_type": 45}}, {"pk": 135, "model": "auth.permission", "fields": {"codename": "delete_courseemail", "name": "Can delete course email", "content_type": 45}}, {"pk": 139, "model": "auth.permission", "fields": {"codename": "add_courseemailtemplate", "name": "Can add course email template", "content_type": 47}}, {"pk": 140, "model": "auth.permission", "fields": {"codename": "change_courseemailtemplate", "name": "Can change course email template", "content_type": 47}}, {"pk": 141, "model": "auth.permission", "fields": {"codename": "delete_courseemailtemplate", "name": "Can delete course email template", "content_type": 47}}, {"pk": 136, "model": "auth.permission", "fields": {"codename": "add_optout", "name": "Can add optout", "content_type": 46}}, {"pk": 137, "model": "auth.permission", "fields": {"codename": "change_optout", "name": "Can change optout", "content_type": 46}}, {"pk": 138, "model": "auth.permission", "fields": {"codename": "delete_optout", "name": "Can delete optout", "content_type": 46}}, {"pk": 118, "model": "auth.permission", "fields": {"codename": "add_certificatewhitelist", "name": "Can add certificate whitelist", "content_type": 40}}, {"pk": 119, "model": "auth.permission", "fields": {"codename": "change_certificatewhitelist", "name": "Can change certificate whitelist", "content_type": 40}}, {"pk": 120, "model": "auth.permission", "fields": {"codename": "delete_certificatewhitelist", "name": "Can delete certificate whitelist", "content_type": 40}}, {"pk": 121, "model": "auth.permission", "fields": {"codename": "add_generatedcertificate", "name": "Can add generated certificate", "content_type": 41}}, {"pk": 122, "model": "auth.permission", "fields": {"codename": "change_generatedcertificate", "name": "Can change generated certificate", "content_type": 41}}, {"pk": 123, "model": "auth.permission", "fields": {"codename": "delete_generatedcertificate", "name": "Can delete generated certificate", "content_type": 41}}, {"pk": 46, "model": "auth.permission", "fields": {"codename": "add_servercircuit", "name": "Can add server circuit", "content_type": 16}}, {"pk": 47, "model": "auth.permission", "fields": {"codename": "change_servercircuit", "name": "Can change server circuit", "content_type": 16}}, {"pk": 48, "model": "auth.permission", "fields": {"codename": "delete_servercircuit", "name": "Can delete server circuit", "content_type": 16}}, {"pk": 10, "model": "auth.permission", "fields": {"codename": "add_contenttype", "name": "Can add content type", "content_type": 4}}, {"pk": 11, "model": "auth.permission", "fields": {"codename": "change_contenttype", "name": "Can change content type", "content_type": 4}}, {"pk": 12, "model": "auth.permission", "fields": {"codename": "delete_contenttype", "name": "Can delete content type", "content_type": 4}}, {"pk": 82, "model": "auth.permission", "fields": {"codename": "add_offlinecomputedgrade", "name": "Can add offline computed grade", "content_type": 28}}, {"pk": 83, "model": "auth.permission", "fields": {"codename": "change_offlinecomputedgrade", "name": "Can change offline computed grade", "content_type": 28}}, {"pk": 84, "model": "auth.permission", "fields": {"codename": "delete_offlinecomputedgrade", "name": "Can delete offline computed grade", "content_type": 28}}, {"pk": 85, "model": "auth.permission", "fields": {"codename": "add_offlinecomputedgradelog", "name": "Can add offline computed grade log", "content_type": 29}}, {"pk": 86, "model": "auth.permission", "fields": {"codename": "change_offlinecomputedgradelog", "name": "Can change offline computed grade log", "content_type": 29}}, {"pk": 87, "model": "auth.permission", "fields": {"codename": "delete_offlinecomputedgradelog", "name": "Can delete offline computed grade log", "content_type": 29}}, {"pk": 67, "model": "auth.permission", "fields": {"codename": "add_studentmodule", "name": "Can add student module", "content_type": 23}}, {"pk": 68, "model": "auth.permission", "fields": {"codename": "change_studentmodule", "name": "Can change student module", "content_type": 23}}, {"pk": 69, "model": "auth.permission", "fields": {"codename": "delete_studentmodule", "name": "Can delete student module", "content_type": 23}}, {"pk": 70, "model": "auth.permission", "fields": {"codename": "add_studentmodulehistory", "name": "Can add student module history", "content_type": 24}}, {"pk": 71, "model": "auth.permission", "fields": {"codename": "change_studentmodulehistory", "name": "Can change student module history", "content_type": 24}}, {"pk": 72, "model": "auth.permission", "fields": {"codename": "delete_studentmodulehistory", "name": "Can delete student module history", "content_type": 24}}, {"pk": 79, "model": "auth.permission", "fields": {"codename": "add_xmodulestudentinfofield", "name": "Can add x module student info field", "content_type": 27}}, {"pk": 80, "model": "auth.permission", "fields": {"codename": "change_xmodulestudentinfofield", "name": "Can change x module student info field", "content_type": 27}}, {"pk": 81, "model": "auth.permission", "fields": {"codename": "delete_xmodulestudentinfofield", "name": "Can delete x module student info field", "content_type": 27}}, {"pk": 76, "model": "auth.permission", "fields": {"codename": "add_xmodulestudentprefsfield", "name": "Can add x module student prefs field", "content_type": 26}}, {"pk": 77, "model": "auth.permission", "fields": {"codename": "change_xmodulestudentprefsfield", "name": "Can change x module student prefs field", "content_type": 26}}, {"pk": 78, "model": "auth.permission", "fields": {"codename": "delete_xmodulestudentprefsfield", "name": "Can delete x module student prefs field", "content_type": 26}}, {"pk": 73, "model": "auth.permission", "fields": {"codename": "add_xmoduleuserstatesummaryfield", "name": "Can add x module user state summary field", "content_type": 25}}, {"pk": 74, "model": "auth.permission", "fields": {"codename": "change_xmoduleuserstatesummaryfield", "name": "Can change x module user state summary field", "content_type": 25}}, {"pk": 75, "model": "auth.permission", "fields": {"codename": "delete_xmoduleuserstatesummaryfield", "name": "Can delete x module user state summary field", "content_type": 25}}, {"pk": 52, "model": "auth.permission", "fields": {"codename": "add_courseusergroup", "name": "Can add course user group", "content_type": 18}}, {"pk": 53, "model": "auth.permission", "fields": {"codename": "change_courseusergroup", "name": "Can change course user group", "content_type": 18}}, {"pk": 54, "model": "auth.permission", "fields": {"codename": "delete_courseusergroup", "name": "Can delete course user group", "content_type": 18}}, {"pk": 214, "model": "auth.permission", "fields": {"codename": "add_coursemode", "name": "Can add course mode", "content_type": 71}}, {"pk": 215, "model": "auth.permission", "fields": {"codename": "change_coursemode", "name": "Can change course mode", "content_type": 71}}, {"pk": 216, "model": "auth.permission", "fields": {"codename": "delete_coursemode", "name": "Can delete course mode", "content_type": 71}}, {"pk": 190, "model": "auth.permission", "fields": {"codename": "add_notification", "name": "Can add notification", "content_type": 63}}, {"pk": 191, "model": "auth.permission", "fields": {"codename": "change_notification", "name": "Can change notification", "content_type": 63}}, {"pk": 192, "model": "auth.permission", "fields": {"codename": "delete_notification", "name": "Can delete notification", "content_type": 63}}, {"pk": 181, "model": "auth.permission", "fields": {"codename": "add_notificationtype", "name": "Can add type", "content_type": 60}}, {"pk": 182, "model": "auth.permission", "fields": {"codename": "change_notificationtype", "name": "Can change type", "content_type": 60}}, {"pk": 183, "model": "auth.permission", "fields": {"codename": "delete_notificationtype", "name": "Can delete type", "content_type": 60}}, {"pk": 184, "model": "auth.permission", "fields": {"codename": "add_settings", "name": "Can add settings", "content_type": 61}}, {"pk": 185, "model": "auth.permission", "fields": {"codename": "change_settings", "name": "Can change settings", "content_type": 61}}, {"pk": 186, "model": "auth.permission", "fields": {"codename": "delete_settings", "name": "Can delete settings", "content_type": 61}}, {"pk": 187, "model": "auth.permission", "fields": {"codename": "add_subscription", "name": "Can add subscription", "content_type": 62}}, {"pk": 188, "model": "auth.permission", "fields": {"codename": "change_subscription", "name": "Can change subscription", "content_type": 62}}, {"pk": 189, "model": "auth.permission", "fields": {"codename": "delete_subscription", "name": "Can delete subscription", "content_type": 62}}, {"pk": 58, "model": "auth.permission", "fields": {"codename": "add_association", "name": "Can add association", "content_type": 20}}, {"pk": 59, "model": "auth.permission", "fields": {"codename": "change_association", "name": "Can change association", "content_type": 20}}, {"pk": 60, "model": "auth.permission", "fields": {"codename": "delete_association", "name": "Can delete association", "content_type": 20}}, {"pk": 55, "model": "auth.permission", "fields": {"codename": "add_nonce", "name": "Can add nonce", "content_type": 19}}, {"pk": 56, "model": "auth.permission", "fields": {"codename": "change_nonce", "name": "Can change nonce", "content_type": 19}}, {"pk": 57, "model": "auth.permission", "fields": {"codename": "delete_nonce", "name": "Can delete nonce", "content_type": 19}}, {"pk": 61, "model": "auth.permission", "fields": {"codename": "add_useropenid", "name": "Can add user open id", "content_type": 21}}, {"pk": 62, "model": "auth.permission", "fields": {"codename": "change_useropenid", "name": "Can change user open id", "content_type": 21}}, {"pk": 63, "model": "auth.permission", "fields": {"codename": "delete_useropenid", "name": "Can delete user open id", "content_type": 21}}, {"pk": 28, "model": "auth.permission", "fields": {"codename": "add_crontabschedule", "name": "Can add crontab", "content_type": 10}}, {"pk": 29, "model": "auth.permission", "fields": {"codename": "change_crontabschedule", "name": "Can change crontab", "content_type": 10}}, {"pk": 30, "model": "auth.permission", "fields": {"codename": "delete_crontabschedule", "name": "Can delete crontab", "content_type": 10}}, {"pk": 25, "model": "auth.permission", "fields": {"codename": "add_intervalschedule", "name": "Can add interval", "content_type": 9}}, {"pk": 26, "model": "auth.permission", "fields": {"codename": "change_intervalschedule", "name": "Can change interval", "content_type": 9}}, {"pk": 27, "model": "auth.permission", "fields": {"codename": "delete_intervalschedule", "name": "Can delete interval", "content_type": 9}}, {"pk": 34, "model": "auth.permission", "fields": {"codename": "add_periodictask", "name": "Can add periodic task", "content_type": 12}}, {"pk": 35, "model": "auth.permission", "fields": {"codename": "change_periodictask", "name": "Can change periodic task", "content_type": 12}}, {"pk": 36, "model": "auth.permission", "fields": {"codename": "delete_periodictask", "name": "Can delete periodic task", "content_type": 12}}, {"pk": 31, "model": "auth.permission", "fields": {"codename": "add_periodictasks", "name": "Can add periodic tasks", "content_type": 11}}, {"pk": 32, "model": "auth.permission", "fields": {"codename": "change_periodictasks", "name": "Can change periodic tasks", "content_type": 11}}, {"pk": 33, "model": "auth.permission", "fields": {"codename": "delete_periodictasks", "name": "Can delete periodic tasks", "content_type": 11}}, {"pk": 19, "model": "auth.permission", "fields": {"codename": "add_taskmeta", "name": "Can add task state", "content_type": 7}}, {"pk": 20, "model": "auth.permission", "fields": {"codename": "change_taskmeta", "name": "Can change task state", "content_type": 7}}, {"pk": 21, "model": "auth.permission", "fields": {"codename": "delete_taskmeta", "name": "Can delete task state", "content_type": 7}}, {"pk": 22, "model": "auth.permission", "fields": {"codename": "add_tasksetmeta", "name": "Can add saved group result", "content_type": 8}}, {"pk": 23, "model": "auth.permission", "fields": {"codename": "change_tasksetmeta", "name": "Can change saved group result", "content_type": 8}}, {"pk": 24, "model": "auth.permission", "fields": {"codename": "delete_tasksetmeta", "name": "Can delete saved group result", "content_type": 8}}, {"pk": 40, "model": "auth.permission", "fields": {"codename": "add_taskstate", "name": "Can add task", "content_type": 14}}, {"pk": 41, "model": "auth.permission", "fields": {"codename": "change_taskstate", "name": "Can change task", "content_type": 14}}, {"pk": 42, "model": "auth.permission", "fields": {"codename": "delete_taskstate", "name": "Can delete task", "content_type": 14}}, {"pk": 37, "model": "auth.permission", "fields": {"codename": "add_workerstate", "name": "Can add worker", "content_type": 13}}, {"pk": 38, "model": "auth.permission", "fields": {"codename": "change_workerstate", "name": "Can change worker", "content_type": 13}}, {"pk": 39, "model": "auth.permission", "fields": {"codename": "delete_workerstate", "name": "Can delete worker", "content_type": 13}}, {"pk": 145, "model": "auth.permission", "fields": {"codename": "add_externalauthmap", "name": "Can add external auth map", "content_type": 49}}, {"pk": 146, "model": "auth.permission", "fields": {"codename": "change_externalauthmap", "name": "Can change external auth map", "content_type": 49}}, {"pk": 147, "model": "auth.permission", "fields": {"codename": "delete_externalauthmap", "name": "Can delete external auth map", "content_type": 49}}, {"pk": 196, "model": "auth.permission", "fields": {"codename": "add_puzzlecomplete", "name": "Can add puzzle complete", "content_type": 65}}, {"pk": 197, "model": "auth.permission", "fields": {"codename": "change_puzzlecomplete", "name": "Can change puzzle complete", "content_type": 65}}, {"pk": 198, "model": "auth.permission", "fields": {"codename": "delete_puzzlecomplete", "name": "Can delete puzzle complete", "content_type": 65}}, {"pk": 193, "model": "auth.permission", "fields": {"codename": "add_score", "name": "Can add score", "content_type": 64}}, {"pk": 194, "model": "auth.permission", "fields": {"codename": "change_score", "name": "Can change score", "content_type": 64}}, {"pk": 195, "model": "auth.permission", "fields": {"codename": "delete_score", "name": "Can delete score", "content_type": 64}}, {"pk": 124, "model": "auth.permission", "fields": {"codename": "add_instructortask", "name": "Can add instructor task", "content_type": 42}}, {"pk": 125, "model": "auth.permission", "fields": {"codename": "change_instructortask", "name": "Can change instructor task", "content_type": 42}}, {"pk": 126, "model": "auth.permission", "fields": {"codename": "delete_instructortask", "name": "Can delete instructor task", "content_type": 42}}, {"pk": 127, "model": "auth.permission", "fields": {"codename": "add_coursesoftware", "name": "Can add course software", "content_type": 43}}, {"pk": 128, "model": "auth.permission", "fields": {"codename": "change_coursesoftware", "name": "Can change course software", "content_type": 43}}, {"pk": 129, "model": "auth.permission", "fields": {"codename": "delete_coursesoftware", "name": "Can delete course software", "content_type": 43}}, {"pk": 130, "model": "auth.permission", "fields": {"codename": "add_userlicense", "name": "Can add user license", "content_type": 44}}, {"pk": 131, "model": "auth.permission", "fields": {"codename": "change_userlicense", "name": "Can change user license", "content_type": 44}}, {"pk": 132, "model": "auth.permission", "fields": {"codename": "delete_userlicense", "name": "Can delete user license", "content_type": 44}}, {"pk": 220, "model": "auth.permission", "fields": {"codename": "add_linkedin", "name": "Can add linked in", "content_type": 73}}, {"pk": 221, "model": "auth.permission", "fields": {"codename": "change_linkedin", "name": "Can change linked in", "content_type": 73}}, {"pk": 222, "model": "auth.permission", "fields": {"codename": "delete_linkedin", "name": "Can delete linked in", "content_type": 73}}, {"pk": 208, "model": "auth.permission", "fields": {"codename": "add_note", "name": "Can add note", "content_type": 69}}, {"pk": 209, "model": "auth.permission", "fields": {"codename": "change_note", "name": "Can change note", "content_type": 69}}, {"pk": 210, "model": "auth.permission", "fields": {"codename": "delete_note", "name": "Can delete note", "content_type": 69}}, {"pk": 49, "model": "auth.permission", "fields": {"codename": "add_psychometricdata", "name": "Can add psychometric data", "content_type": 17}}, {"pk": 50, "model": "auth.permission", "fields": {"codename": "change_psychometricdata", "name": "Can change psychometric data", "content_type": 17}}, {"pk": 51, "model": "auth.permission", "fields": {"codename": "delete_psychometricdata", "name": "Can delete psychometric data", "content_type": 17}}, {"pk": 13, "model": "auth.permission", "fields": {"codename": "add_session", "name": "Can add session", "content_type": 5}}, {"pk": 14, "model": "auth.permission", "fields": {"codename": "change_session", "name": "Can change session", "content_type": 5}}, {"pk": 15, "model": "auth.permission", "fields": {"codename": "delete_session", "name": "Can delete session", "content_type": 5}}, {"pk": 235, "model": "auth.permission", "fields": {"codename": "add_certificateitem", "name": "Can add certificate item", "content_type": 78}}, {"pk": 236, "model": "auth.permission", "fields": {"codename": "change_certificateitem", "name": "Can change certificate item", "content_type": 78}}, {"pk": 237, "model": "auth.permission", "fields": {"codename": "delete_certificateitem", "name": "Can delete certificate item", "content_type": 78}}, {"pk": 223, "model": "auth.permission", "fields": {"codename": "add_order", "name": "Can add order", "content_type": 74}}, {"pk": 224, "model": "auth.permission", "fields": {"codename": "change_order", "name": "Can change order", "content_type": 74}}, {"pk": 225, "model": "auth.permission", "fields": {"codename": "delete_order", "name": "Can delete order", "content_type": 74}}, {"pk": 226, "model": "auth.permission", "fields": {"codename": "add_orderitem", "name": "Can add order item", "content_type": 75}}, {"pk": 227, "model": "auth.permission", "fields": {"codename": "change_orderitem", "name": "Can change order item", "content_type": 75}}, {"pk": 228, "model": "auth.permission", "fields": {"codename": "delete_orderitem", "name": "Can delete order item", "content_type": 75}}, {"pk": 229, "model": "auth.permission", "fields": {"codename": "add_paidcourseregistration", "name": "Can add paid course registration", "content_type": 76}}, {"pk": 230, "model": "auth.permission", "fields": {"codename": "change_paidcourseregistration", "name": "Can change paid course registration", "content_type": 76}}, {"pk": 231, "model": "auth.permission", "fields": {"codename": "delete_paidcourseregistration", "name": "Can delete paid course registration", "content_type": 76}}, {"pk": 232, "model": "auth.permission", "fields": {"codename": "add_paidcourseregistrationannotation", "name": "Can add paid course registration annotation", "content_type": 77}}, {"pk": 233, "model": "auth.permission", "fields": {"codename": "change_paidcourseregistrationannotation", "name": "Can change paid course registration annotation", "content_type": 77}}, {"pk": 234, "model": "auth.permission", "fields": {"codename": "delete_paidcourseregistrationannotation", "name": "Can delete paid course registration annotation", "content_type": 77}}, {"pk": 16, "model": "auth.permission", "fields": {"codename": "add_site", "name": "Can add site", "content_type": 6}}, {"pk": 17, "model": "auth.permission", "fields": {"codename": "change_site", "name": "Can change site", "content_type": 6}}, {"pk": 18, "model": "auth.permission", "fields": {"codename": "delete_site", "name": "Can delete site", "content_type": 6}}, {"pk": 43, "model": "auth.permission", "fields": {"codename": "add_migrationhistory", "name": "Can add migration history", "content_type": 15}}, {"pk": 44, "model": "auth.permission", "fields": {"codename": "change_migrationhistory", "name": "Can change migration history", "content_type": 15}}, {"pk": 45, "model": "auth.permission", "fields": {"codename": "delete_migrationhistory", "name": "Can delete migration history", "content_type": 15}}, {"pk": 88, "model": "auth.permission", "fields": {"codename": "add_anonymoususerid", "name": "Can add anonymous user id", "content_type": 30}}, {"pk": 89, "model": "auth.permission", "fields": {"codename": "change_anonymoususerid", "name": "Can change anonymous user id", "content_type": 30}}, {"pk": 90, "model": "auth.permission", "fields": {"codename": "delete_anonymoususerid", "name": "Can delete anonymous user id", "content_type": 30}}, {"pk": 109, "model": "auth.permission", "fields": {"codename": "add_courseenrollment", "name": "Can add course enrollment", "content_type": 37}}, {"pk": 110, "model": "auth.permission", "fields": {"codename": "change_courseenrollment", "name": "Can change course enrollment", "content_type": 37}}, {"pk": 111, "model": "auth.permission", "fields": {"codename": "delete_courseenrollment", "name": "Can delete course enrollment", "content_type": 37}}, {"pk": 112, "model": "auth.permission", "fields": {"codename": "add_courseenrollmentallowed", "name": "Can add course enrollment allowed", "content_type": 38}}, {"pk": 113, "model": "auth.permission", "fields": {"codename": "change_courseenrollmentallowed", "name": "Can change course enrollment allowed", "content_type": 38}}, {"pk": 114, "model": "auth.permission", "fields": {"codename": "delete_courseenrollmentallowed", "name": "Can delete course enrollment allowed", "content_type": 38}}, {"pk": 106, "model": "auth.permission", "fields": {"codename": "add_pendingemailchange", "name": "Can add pending email change", "content_type": 36}}, {"pk": 107, "model": "auth.permission", "fields": {"codename": "change_pendingemailchange", "name": "Can change pending email change", "content_type": 36}}, {"pk": 108, "model": "auth.permission", "fields": {"codename": "delete_pendingemailchange", "name": "Can delete pending email change", "content_type": 36}}, {"pk": 103, "model": "auth.permission", "fields": {"codename": "add_pendingnamechange", "name": "Can add pending name change", "content_type": 35}}, {"pk": 104, "model": "auth.permission", "fields": {"codename": "change_pendingnamechange", "name": "Can change pending name change", "content_type": 35}}, {"pk": 105, "model": "auth.permission", "fields": {"codename": "delete_pendingnamechange", "name": "Can delete pending name change", "content_type": 35}}, {"pk": 100, "model": "auth.permission", "fields": {"codename": "add_registration", "name": "Can add registration", "content_type": 34}}, {"pk": 101, "model": "auth.permission", "fields": {"codename": "change_registration", "name": "Can change registration", "content_type": 34}}, {"pk": 102, "model": "auth.permission", "fields": {"codename": "delete_registration", "name": "Can delete registration", "content_type": 34}}, {"pk": 94, "model": "auth.permission", "fields": {"codename": "add_userprofile", "name": "Can add user profile", "content_type": 32}}, {"pk": 95, "model": "auth.permission", "fields": {"codename": "change_userprofile", "name": "Can change user profile", "content_type": 32}}, {"pk": 96, "model": "auth.permission", "fields": {"codename": "delete_userprofile", "name": "Can delete user profile", "content_type": 32}}, {"pk": 91, "model": "auth.permission", "fields": {"codename": "add_userstanding", "name": "Can add user standing", "content_type": 31}}, {"pk": 92, "model": "auth.permission", "fields": {"codename": "change_userstanding", "name": "Can change user standing", "content_type": 31}}, {"pk": 93, "model": "auth.permission", "fields": {"codename": "delete_userstanding", "name": "Can delete user standing", "content_type": 31}}, {"pk": 97, "model": "auth.permission", "fields": {"codename": "add_usertestgroup", "name": "Can add user test group", "content_type": 33}}, {"pk": 98, "model": "auth.permission", "fields": {"codename": "change_usertestgroup", "name": "Can change user test group", "content_type": 33}}, {"pk": 99, "model": "auth.permission", "fields": {"codename": "delete_usertestgroup", "name": "Can delete user test group", "content_type": 33}}, {"pk": 115, "model": "auth.permission", "fields": {"codename": "add_trackinglog", "name": "Can add tracking log", "content_type": 39}}, {"pk": 116, "model": "auth.permission", "fields": {"codename": "change_trackinglog", "name": "Can change tracking log", "content_type": 39}}, {"pk": 117, "model": "auth.permission", "fields": {"codename": "delete_trackinglog", "name": "Can delete tracking log", "content_type": 39}}, {"pk": 211, "model": "auth.permission", "fields": {"codename": "add_userpreference", "name": "Can add user preference", "content_type": 70}}, {"pk": 212, "model": "auth.permission", "fields": {"codename": "change_userpreference", "name": "Can change user preference", "content_type": 70}}, {"pk": 213, "model": "auth.permission", "fields": {"codename": "delete_userpreference", "name": "Can delete user preference", "content_type": 70}}, {"pk": 217, "model": "auth.permission", "fields": {"codename": "add_softwaresecurephotoverification", "name": "Can add software secure photo verification", "content_type": 72}}, {"pk": 218, "model": "auth.permission", "fields": {"codename": "change_softwaresecurephotoverification", "name": "Can change software secure photo verification", "content_type": 72}}, {"pk": 219, "model": "auth.permission", "fields": {"codename": "delete_softwaresecurephotoverification", "name": "Can delete software secure photo verification", "content_type": 72}}, {"pk": 199, "model": "auth.permission", "fields": {"codename": "add_flag", "name": "Can add flag", "content_type": 66}}, {"pk": 200, "model": "auth.permission", "fields": {"codename": "change_flag", "name": "Can change flag", "content_type": 66}}, {"pk": 201, "model": "auth.permission", "fields": {"codename": "delete_flag", "name": "Can delete flag", "content_type": 66}}, {"pk": 205, "model": "auth.permission", "fields": {"codename": "add_sample", "name": "Can add sample", "content_type": 68}}, {"pk": 206, "model": "auth.permission", "fields": {"codename": "change_sample", "name": "Can change sample", "content_type": 68}}, {"pk": 207, "model": "auth.permission", "fields": {"codename": "delete_sample", "name": "Can delete sample", "content_type": 68}}, {"pk": 202, "model": "auth.permission", "fields": {"codename": "add_switch", "name": "Can add switch", "content_type": 67}}, {"pk": 203, "model": "auth.permission", "fields": {"codename": "change_switch", "name": "Can change switch", "content_type": 67}}, {"pk": 204, "model": "auth.permission", "fields": {"codename": "delete_switch", "name": "Can delete switch", "content_type": 67}}, {"pk": 148, "model": "auth.permission", "fields": {"codename": "add_article", "name": "Can add article", "content_type": 50}}, {"pk": 152, "model": "auth.permission", "fields": {"codename": "assign", "name": "Can change ownership of any article", "content_type": 50}}, {"pk": 149, "model": "auth.permission", "fields": {"codename": "change_article", "name": "Can change article", "content_type": 50}}, {"pk": 150, "model": "auth.permission", "fields": {"codename": "delete_article", "name": "Can delete article", "content_type": 50}}, {"pk": 153, "model": "auth.permission", "fields": {"codename": "grant", "name": "Can assign permissions to other users", "content_type": 50}}, {"pk": 151, "model": "auth.permission", "fields": {"codename": "moderate", "name": "Can edit all articles and lock/unlock/restore", "content_type": 50}}, {"pk": 154, "model": "auth.permission", "fields": {"codename": "add_articleforobject", "name": "Can add Article for object", "content_type": 51}}, {"pk": 155, "model": "auth.permission", "fields": {"codename": "change_articleforobject", "name": "Can change Article for object", "content_type": 51}}, {"pk": 156, "model": "auth.permission", "fields": {"codename": "delete_articleforobject", "name": "Can delete Article for object", "content_type": 51}}, {"pk": 163, "model": "auth.permission", "fields": {"codename": "add_articleplugin", "name": "Can add article plugin", "content_type": 54}}, {"pk": 164, "model": "auth.permission", "fields": {"codename": "change_articleplugin", "name": "Can change article plugin", "content_type": 54}}, {"pk": 165, "model": "auth.permission", "fields": {"codename": "delete_articleplugin", "name": "Can delete article plugin", "content_type": 54}}, {"pk": 157, "model": "auth.permission", "fields": {"codename": "add_articlerevision", "name": "Can add article revision", "content_type": 52}}, {"pk": 158, "model": "auth.permission", "fields": {"codename": "change_articlerevision", "name": "Can change article revision", "content_type": 52}}, {"pk": 159, "model": "auth.permission", "fields": {"codename": "delete_articlerevision", "name": "Can delete article revision", "content_type": 52}}, {"pk": 178, "model": "auth.permission", "fields": {"codename": "add_articlesubscription", "name": "Can add article subscription", "content_type": 59}}, {"pk": 179, "model": "auth.permission", "fields": {"codename": "change_articlesubscription", "name": "Can change article subscription", "content_type": 59}}, {"pk": 180, "model": "auth.permission", "fields": {"codename": "delete_articlesubscription", "name": "Can delete article subscription", "content_type": 59}}, {"pk": 166, "model": "auth.permission", "fields": {"codename": "add_reusableplugin", "name": "Can add reusable plugin", "content_type": 55}}, {"pk": 167, "model": "auth.permission", "fields": {"codename": "change_reusableplugin", "name": "Can change reusable plugin", "content_type": 55}}, {"pk": 168, "model": "auth.permission", "fields": {"codename": "delete_reusableplugin", "name": "Can delete reusable plugin", "content_type": 55}}, {"pk": 172, "model": "auth.permission", "fields": {"codename": "add_revisionplugin", "name": "Can add revision plugin", "content_type": 57}}, {"pk": 173, "model": "auth.permission", "fields": {"codename": "change_revisionplugin", "name": "Can change revision plugin", "content_type": 57}}, {"pk": 174, "model": "auth.permission", "fields": {"codename": "delete_revisionplugin", "name": "Can delete revision plugin", "content_type": 57}}, {"pk": 175, "model": "auth.permission", "fields": {"codename": "add_revisionpluginrevision", "name": "Can add revision plugin revision", "content_type": 58}}, {"pk": 176, "model": "auth.permission", "fields": {"codename": "change_revisionpluginrevision", "name": "Can change revision plugin revision", "content_type": 58}}, {"pk": 177, "model": "auth.permission", "fields": {"codename": "delete_revisionpluginrevision", "name": "Can delete revision plugin revision", "content_type": 58}}, {"pk": 169, "model": "auth.permission", "fields": {"codename": "add_simpleplugin", "name": "Can add simple plugin", "content_type": 56}}, {"pk": 170, "model": "auth.permission", "fields": {"codename": "change_simpleplugin", "name": "Can change simple plugin", "content_type": 56}}, {"pk": 171, "model": "auth.permission", "fields": {"codename": "delete_simpleplugin", "name": "Can delete simple plugin", "content_type": 56}}, {"pk": 160, "model": "auth.permission", "fields": {"codename": "add_urlpath", "name": "Can add URL path", "content_type": 53}}, {"pk": 161, "model": "auth.permission", "fields": {"codename": "change_urlpath", "name": "Can change URL path", "content_type": 53}}, {"pk": 162, "model": "auth.permission", "fields": {"codename": "delete_urlpath", "name": "Can delete URL path", "content_type": 53}}] \ No newline at end of file +[{"pk": 30, "model": "contenttypes.contenttype", "fields": {"model": "anonymoususerid", "name": "anonymous user id", "app_label": "student"}}, {"pk": 51, "model": "contenttypes.contenttype", "fields": {"model": "article", "name": "article", "app_label": "wiki"}}, {"pk": 52, "model": "contenttypes.contenttype", "fields": {"model": "articleforobject", "name": "Article for object", "app_label": "wiki"}}, {"pk": 55, "model": "contenttypes.contenttype", "fields": {"model": "articleplugin", "name": "article plugin", "app_label": "wiki"}}, {"pk": 53, "model": "contenttypes.contenttype", "fields": {"model": "articlerevision", "name": "article revision", "app_label": "wiki"}}, {"pk": 60, "model": "contenttypes.contenttype", "fields": {"model": "articlesubscription", "name": "article subscription", "app_label": "wiki"}}, {"pk": 20, "model": "contenttypes.contenttype", "fields": {"model": "association", "name": "association", "app_label": "django_openid_auth"}}, {"pk": 85, "model": "contenttypes.contenttype", "fields": {"model": "certificateitem", "name": "certificate item", "app_label": "shoppingcart"}}, {"pk": 41, "model": "contenttypes.contenttype", "fields": {"model": "certificatewhitelist", "name": "certificate whitelist", "app_label": "certificates"}}, {"pk": 4, "model": "contenttypes.contenttype", "fields": {"model": "contenttype", "name": "content type", "app_label": "contenttypes"}}, {"pk": 49, "model": "contenttypes.contenttype", "fields": {"model": "courseauthorization", "name": "course authorization", "app_label": "bulk_email"}}, {"pk": 46, "model": "contenttypes.contenttype", "fields": {"model": "courseemail", "name": "course email", "app_label": "bulk_email"}}, {"pk": 48, "model": "contenttypes.contenttype", "fields": {"model": "courseemailtemplate", "name": "course email template", "app_label": "bulk_email"}}, {"pk": 38, "model": "contenttypes.contenttype", "fields": {"model": "courseenrollment", "name": "course enrollment", "app_label": "student"}}, {"pk": 39, "model": "contenttypes.contenttype", "fields": {"model": "courseenrollmentallowed", "name": "course enrollment allowed", "app_label": "student"}}, {"pk": 73, "model": "contenttypes.contenttype", "fields": {"model": "coursemode", "name": "course mode", "app_label": "course_modes"}}, {"pk": 44, "model": "contenttypes.contenttype", "fields": {"model": "coursesoftware", "name": "course software", "app_label": "licenses"}}, {"pk": 18, "model": "contenttypes.contenttype", "fields": {"model": "courseusergroup", "name": "course user group", "app_label": "course_groups"}}, {"pk": 10, "model": "contenttypes.contenttype", "fields": {"model": "crontabschedule", "name": "crontab", "app_label": "djcelery"}}, {"pk": 75, "model": "contenttypes.contenttype", "fields": {"model": "darklangconfig", "name": "dark lang config", "app_label": "dark_lang"}}, {"pk": 77, "model": "contenttypes.contenttype", "fields": {"model": "embargoedcourse", "name": "embargoed course", "app_label": "embargo"}}, {"pk": 78, "model": "contenttypes.contenttype", "fields": {"model": "embargoedstate", "name": "embargoed state", "app_label": "embargo"}}, {"pk": 50, "model": "contenttypes.contenttype", "fields": {"model": "externalauthmap", "name": "external auth map", "app_label": "external_auth"}}, {"pk": 67, "model": "contenttypes.contenttype", "fields": {"model": "flag", "name": "flag", "app_label": "waffle"}}, {"pk": 42, "model": "contenttypes.contenttype", "fields": {"model": "generatedcertificate", "name": "generated certificate", "app_label": "certificates"}}, {"pk": 2, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "auth"}}, {"pk": 43, "model": "contenttypes.contenttype", "fields": {"model": "instructortask", "name": "instructor task", "app_label": "instructor_task"}}, {"pk": 9, "model": "contenttypes.contenttype", "fields": {"model": "intervalschedule", "name": "interval", "app_label": "djcelery"}}, {"pk": 79, "model": "contenttypes.contenttype", "fields": {"model": "ipfilter", "name": "ip filter", "app_label": "embargo"}}, {"pk": 80, "model": "contenttypes.contenttype", "fields": {"model": "linkedin", "name": "linked in", "app_label": "linkedin"}}, {"pk": 22, "model": "contenttypes.contenttype", "fields": {"model": "logentry", "name": "log entry", "app_label": "admin"}}, {"pk": 37, "model": "contenttypes.contenttype", "fields": {"model": "loginfailures", "name": "login failures", "app_label": "student"}}, {"pk": 76, "model": "contenttypes.contenttype", "fields": {"model": "midcoursereverificationwindow", "name": "midcourse reverification window", "app_label": "reverification"}}, {"pk": 15, "model": "contenttypes.contenttype", "fields": {"model": "migrationhistory", "name": "migration history", "app_label": "south"}}, {"pk": 19, "model": "contenttypes.contenttype", "fields": {"model": "nonce", "name": "nonce", "app_label": "django_openid_auth"}}, {"pk": 70, "model": "contenttypes.contenttype", "fields": {"model": "note", "name": "note", "app_label": "notes"}}, {"pk": 64, "model": "contenttypes.contenttype", "fields": {"model": "notification", "name": "notification", "app_label": "django_notify"}}, {"pk": 28, "model": "contenttypes.contenttype", "fields": {"model": "offlinecomputedgrade", "name": "offline computed grade", "app_label": "courseware"}}, {"pk": 29, "model": "contenttypes.contenttype", "fields": {"model": "offlinecomputedgradelog", "name": "offline computed grade log", "app_label": "courseware"}}, {"pk": 47, "model": "contenttypes.contenttype", "fields": {"model": "optout", "name": "optout", "app_label": "bulk_email"}}, {"pk": 81, "model": "contenttypes.contenttype", "fields": {"model": "order", "name": "order", "app_label": "shoppingcart"}}, {"pk": 82, "model": "contenttypes.contenttype", "fields": {"model": "orderitem", "name": "order item", "app_label": "shoppingcart"}}, {"pk": 83, "model": "contenttypes.contenttype", "fields": {"model": "paidcourseregistration", "name": "paid course registration", "app_label": "shoppingcart"}}, {"pk": 84, "model": "contenttypes.contenttype", "fields": {"model": "paidcourseregistrationannotation", "name": "paid course registration annotation", "app_label": "shoppingcart"}}, {"pk": 36, "model": "contenttypes.contenttype", "fields": {"model": "pendingemailchange", "name": "pending email change", "app_label": "student"}}, {"pk": 35, "model": "contenttypes.contenttype", "fields": {"model": "pendingnamechange", "name": "pending name change", "app_label": "student"}}, {"pk": 12, "model": "contenttypes.contenttype", "fields": {"model": "periodictask", "name": "periodic task", "app_label": "djcelery"}}, {"pk": 11, "model": "contenttypes.contenttype", "fields": {"model": "periodictasks", "name": "periodic tasks", "app_label": "djcelery"}}, {"pk": 1, "model": "contenttypes.contenttype", "fields": {"model": "permission", "name": "permission", "app_label": "auth"}}, {"pk": 17, "model": "contenttypes.contenttype", "fields": {"model": "psychometricdata", "name": "psychometric data", "app_label": "psychometrics"}}, {"pk": 66, "model": "contenttypes.contenttype", "fields": {"model": "puzzlecomplete", "name": "puzzle complete", "app_label": "foldit"}}, {"pk": 34, "model": "contenttypes.contenttype", "fields": {"model": "registration", "name": "registration", "app_label": "student"}}, {"pk": 56, "model": "contenttypes.contenttype", "fields": {"model": "reusableplugin", "name": "reusable plugin", "app_label": "wiki"}}, {"pk": 58, "model": "contenttypes.contenttype", "fields": {"model": "revisionplugin", "name": "revision plugin", "app_label": "wiki"}}, {"pk": 59, "model": "contenttypes.contenttype", "fields": {"model": "revisionpluginrevision", "name": "revision plugin revision", "app_label": "wiki"}}, {"pk": 69, "model": "contenttypes.contenttype", "fields": {"model": "sample", "name": "sample", "app_label": "waffle"}}, {"pk": 8, "model": "contenttypes.contenttype", "fields": {"model": "tasksetmeta", "name": "saved group result", "app_label": "djcelery"}}, {"pk": 65, "model": "contenttypes.contenttype", "fields": {"model": "score", "name": "score", "app_label": "foldit"}}, {"pk": 16, "model": "contenttypes.contenttype", "fields": {"model": "servercircuit", "name": "server circuit", "app_label": "circuit"}}, {"pk": 5, "model": "contenttypes.contenttype", "fields": {"model": "session", "name": "session", "app_label": "sessions"}}, {"pk": 62, "model": "contenttypes.contenttype", "fields": {"model": "settings", "name": "settings", "app_label": "django_notify"}}, {"pk": 57, "model": "contenttypes.contenttype", "fields": {"model": "simpleplugin", "name": "simple plugin", "app_label": "wiki"}}, {"pk": 6, "model": "contenttypes.contenttype", "fields": {"model": "site", "name": "site", "app_label": "sites"}}, {"pk": 74, "model": "contenttypes.contenttype", "fields": {"model": "softwaresecurephotoverification", "name": "software secure photo verification", "app_label": "verify_student"}}, {"pk": 71, "model": "contenttypes.contenttype", "fields": {"model": "splashconfig", "name": "splash config", "app_label": "splash"}}, {"pk": 23, "model": "contenttypes.contenttype", "fields": {"model": "studentmodule", "name": "student module", "app_label": "courseware"}}, {"pk": 24, "model": "contenttypes.contenttype", "fields": {"model": "studentmodulehistory", "name": "student module history", "app_label": "courseware"}}, {"pk": 63, "model": "contenttypes.contenttype", "fields": {"model": "subscription", "name": "subscription", "app_label": "django_notify"}}, {"pk": 68, "model": "contenttypes.contenttype", "fields": {"model": "switch", "name": "switch", "app_label": "waffle"}}, {"pk": 14, "model": "contenttypes.contenttype", "fields": {"model": "taskstate", "name": "task", "app_label": "djcelery"}}, {"pk": 7, "model": "contenttypes.contenttype", "fields": {"model": "taskmeta", "name": "task state", "app_label": "djcelery"}}, {"pk": 40, "model": "contenttypes.contenttype", "fields": {"model": "trackinglog", "name": "tracking log", "app_label": "track"}}, {"pk": 61, "model": "contenttypes.contenttype", "fields": {"model": "notificationtype", "name": "type", "app_label": "django_notify"}}, {"pk": 54, "model": "contenttypes.contenttype", "fields": {"model": "urlpath", "name": "URL path", "app_label": "wiki"}}, {"pk": 3, "model": "contenttypes.contenttype", "fields": {"model": "user", "name": "user", "app_label": "auth"}}, {"pk": 45, "model": "contenttypes.contenttype", "fields": {"model": "userlicense", "name": "user license", "app_label": "licenses"}}, {"pk": 21, "model": "contenttypes.contenttype", "fields": {"model": "useropenid", "name": "user open id", "app_label": "django_openid_auth"}}, {"pk": 72, "model": "contenttypes.contenttype", "fields": {"model": "userpreference", "name": "user preference", "app_label": "user_api"}}, {"pk": 32, "model": "contenttypes.contenttype", "fields": {"model": "userprofile", "name": "user profile", "app_label": "student"}}, {"pk": 31, "model": "contenttypes.contenttype", "fields": {"model": "userstanding", "name": "user standing", "app_label": "student"}}, {"pk": 33, "model": "contenttypes.contenttype", "fields": {"model": "usertestgroup", "name": "user test group", "app_label": "student"}}, {"pk": 13, "model": "contenttypes.contenttype", "fields": {"model": "workerstate", "name": "worker", "app_label": "djcelery"}}, {"pk": 27, "model": "contenttypes.contenttype", "fields": {"model": "xmodulestudentinfofield", "name": "x module student info field", "app_label": "courseware"}}, {"pk": 26, "model": "contenttypes.contenttype", "fields": {"model": "xmodulestudentprefsfield", "name": "x module student prefs field", "app_label": "courseware"}}, {"pk": 25, "model": "contenttypes.contenttype", "fields": {"model": "xmoduleuserstatesummaryfield", "name": "x module user state summary field", "app_label": "courseware"}}, {"pk": 1, "model": "sites.site", "fields": {"domain": "example.com", "name": "example.com"}}, {"pk": 1, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:03Z", "app_name": "courseware", "migration": "0001_initial"}}, {"pk": 2, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:03Z", "app_name": "courseware", "migration": "0002_add_indexes"}}, {"pk": 3, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:03Z", "app_name": "courseware", "migration": "0003_done_grade_cache"}}, {"pk": 4, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:03Z", "app_name": "courseware", "migration": "0004_add_field_studentmodule_course_id"}}, {"pk": 5, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:03Z", "app_name": "courseware", "migration": "0005_auto__add_offlinecomputedgrade__add_unique_offlinecomputedgrade_user_c"}}, {"pk": 6, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:03Z", "app_name": "courseware", "migration": "0006_create_student_module_history"}}, {"pk": 7, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:03Z", "app_name": "courseware", "migration": "0007_allow_null_version_in_history"}}, {"pk": 8, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:04Z", "app_name": "courseware", "migration": "0008_add_xmodule_storage"}}, {"pk": 9, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:04Z", "app_name": "courseware", "migration": "0009_add_field_default"}}, {"pk": 10, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:04Z", "app_name": "courseware", "migration": "0010_rename_xblock_field_content_to_user_state_summary"}}, {"pk": 11, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:04Z", "app_name": "student", "migration": "0001_initial"}}, {"pk": 12, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:04Z", "app_name": "student", "migration": "0002_text_to_varchar_and_indexes"}}, {"pk": 13, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:04Z", "app_name": "student", "migration": "0003_auto__add_usertestgroup"}}, {"pk": 14, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:04Z", "app_name": "student", "migration": "0004_add_email_index"}}, {"pk": 15, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0005_name_change"}}, {"pk": 16, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0006_expand_meta_field"}}, {"pk": 17, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0007_convert_to_utf8"}}, {"pk": 18, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0008__auto__add_courseregistration"}}, {"pk": 19, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0009_auto__del_courseregistration__add_courseenrollment"}}, {"pk": 20, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0010_auto__chg_field_courseenrollment_course_id"}}, {"pk": 21, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0011_auto__chg_field_courseenrollment_user__del_unique_courseenrollment_use"}}, {"pk": 22, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0012_auto__add_field_userprofile_gender__add_field_userprofile_date_of_birt"}}, {"pk": 23, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0013_auto__chg_field_userprofile_meta"}}, {"pk": 24, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0014_auto__del_courseenrollment"}}, {"pk": 25, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0015_auto__add_courseenrollment__add_unique_courseenrollment_user_course_id"}}, {"pk": 26, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0016_auto__add_field_courseenrollment_date__chg_field_userprofile_country"}}, {"pk": 27, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0017_rename_date_to_created"}}, {"pk": 28, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0018_auto"}}, {"pk": 29, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:05Z", "app_name": "student", "migration": "0019_create_approved_demographic_fields_fall_2012"}}, {"pk": 30, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0020_add_test_center_user"}}, {"pk": 31, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0021_remove_askbot"}}, {"pk": 32, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0022_auto__add_courseenrollmentallowed__add_unique_courseenrollmentallowed_"}}, {"pk": 33, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0023_add_test_center_registration"}}, {"pk": 34, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0024_add_allow_certificate"}}, {"pk": 35, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0025_auto__add_field_courseenrollmentallowed_auto_enroll"}}, {"pk": 36, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0026_auto__remove_index_student_testcenterregistration_accommodation_request"}}, {"pk": 37, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0027_add_active_flag_and_mode_to_courseware_enrollment"}}, {"pk": 38, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0028_auto__add_userstanding"}}, {"pk": 39, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:06Z", "app_name": "student", "migration": "0029_add_lookup_table_between_user_and_anonymous_student_id"}}, {"pk": 40, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "student", "migration": "0029_remove_pearson"}}, {"pk": 41, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "student", "migration": "0030_auto__chg_field_anonymoususerid_anonymous_user_id"}}, {"pk": 42, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "student", "migration": "0031_drop_student_anonymoususerid_temp_archive"}}, {"pk": 43, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "student", "migration": "0032_add_field_UserProfile_country_add_field_UserProfile_city"}}, {"pk": 44, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "student", "migration": "0032_auto__add_loginfailures"}}, {"pk": 45, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "track", "migration": "0001_initial"}}, {"pk": 46, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "track", "migration": "0002_auto__add_field_trackinglog_host__chg_field_trackinglog_event_type__ch"}}, {"pk": 47, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "certificates", "migration": "0001_added_generatedcertificates"}}, {"pk": 48, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "certificates", "migration": "0002_auto__add_field_generatedcertificate_download_url"}}, {"pk": 49, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "certificates", "migration": "0003_auto__add_field_generatedcertificate_enabled"}}, {"pk": 50, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "certificates", "migration": "0004_auto__add_field_generatedcertificate_graded_certificate_id__add_field_"}}, {"pk": 51, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "certificates", "migration": "0005_auto__add_field_generatedcertificate_name"}}, {"pk": 52, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "certificates", "migration": "0006_auto__chg_field_generatedcertificate_certificate_id"}}, {"pk": 53, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:07Z", "app_name": "certificates", "migration": "0007_auto__add_revokedcertificate"}}, {"pk": 54, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "certificates", "migration": "0008_auto__del_revokedcertificate__del_field_generatedcertificate_name__add"}}, {"pk": 55, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "certificates", "migration": "0009_auto__del_field_generatedcertificate_graded_download_url__del_field_ge"}}, {"pk": 56, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "certificates", "migration": "0010_auto__del_field_generatedcertificate_enabled__add_field_generatedcerti"}}, {"pk": 57, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "certificates", "migration": "0011_auto__del_field_generatedcertificate_certificate_id__add_field_generat"}}, {"pk": 58, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "certificates", "migration": "0012_auto__add_field_generatedcertificate_name__add_field_generatedcertific"}}, {"pk": 59, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "certificates", "migration": "0013_auto__add_field_generatedcertificate_error_reason"}}, {"pk": 60, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "certificates", "migration": "0014_adding_whitelist"}}, {"pk": 61, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "certificates", "migration": "0015_adding_mode_for_verified_certs"}}, {"pk": 62, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "instructor_task", "migration": "0001_initial"}}, {"pk": 63, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "instructor_task", "migration": "0002_add_subtask_field"}}, {"pk": 64, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:08Z", "app_name": "licenses", "migration": "0001_initial"}}, {"pk": 65, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0001_initial"}}, {"pk": 66, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0002_change_field_names"}}, {"pk": 67, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0003_add_optout_user"}}, {"pk": 68, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0004_migrate_optout_user"}}, {"pk": 69, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0005_remove_optout_email"}}, {"pk": 70, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0006_add_course_email_template"}}, {"pk": 71, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0007_load_course_email_template"}}, {"pk": 72, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0008_add_course_authorizations"}}, {"pk": 73, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "bulk_email", "migration": "0009_force_unique_course_ids"}}, {"pk": 74, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:09Z", "app_name": "external_auth", "migration": "0001_initial"}}, {"pk": 75, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:10Z", "app_name": "wiki", "migration": "0001_initial"}}, {"pk": 76, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:10Z", "app_name": "wiki", "migration": "0002_auto__add_field_articleplugin_created"}}, {"pk": 77, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:10Z", "app_name": "wiki", "migration": "0003_auto__add_field_urlpath_article"}}, {"pk": 78, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:10Z", "app_name": "wiki", "migration": "0004_populate_urlpath__article"}}, {"pk": 79, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:10Z", "app_name": "wiki", "migration": "0005_auto__chg_field_urlpath_article"}}, {"pk": 80, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:11Z", "app_name": "wiki", "migration": "0006_auto__add_attachmentrevision__add_image__add_attachment"}}, {"pk": 81, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:11Z", "app_name": "wiki", "migration": "0007_auto__add_articlesubscription"}}, {"pk": 82, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:11Z", "app_name": "wiki", "migration": "0008_auto__add_simpleplugin__add_revisionpluginrevision__add_imagerevision_"}}, {"pk": 83, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:11Z", "app_name": "wiki", "migration": "0009_auto__add_field_imagerevision_width__add_field_imagerevision_height"}}, {"pk": 84, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:11Z", "app_name": "wiki", "migration": "0010_auto__chg_field_imagerevision_image"}}, {"pk": 85, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:11Z", "app_name": "wiki", "migration": "0011_auto__chg_field_imagerevision_width__chg_field_imagerevision_height"}}, {"pk": 86, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:12Z", "app_name": "django_notify", "migration": "0001_initial"}}, {"pk": 87, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:12Z", "app_name": "notifications", "migration": "0001_initial"}}, {"pk": 88, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:12Z", "app_name": "foldit", "migration": "0001_initial"}}, {"pk": 89, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "waffle", "migration": "0001_initial"}}, {"pk": 90, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "waffle", "migration": "0002_auto__add_sample"}}, {"pk": 91, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "waffle", "migration": "0003_auto__add_field_flag_note__add_field_switch_note__add_field_sample_not"}}, {"pk": 92, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "waffle", "migration": "0004_auto__add_field_flag_testing"}}, {"pk": 93, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "waffle", "migration": "0005_auto__add_field_flag_created__add_field_flag_modified"}}, {"pk": 94, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "waffle", "migration": "0006_auto__add_field_switch_created__add_field_switch_modified__add_field_s"}}, {"pk": 95, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "waffle", "migration": "0007_auto__chg_field_flag_created__chg_field_flag_modified__chg_field_switc"}}, {"pk": 96, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "waffle", "migration": "0008_auto__add_field_flag_languages"}}, {"pk": 97, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "django_comment_client", "migration": "0001_initial"}}, {"pk": 98, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:13Z", "app_name": "django_comment_common", "migration": "0001_initial"}}, {"pk": 99, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:14Z", "app_name": "notes", "migration": "0001_initial"}}, {"pk": 100, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:14Z", "app_name": "splash", "migration": "0001_initial"}}, {"pk": 101, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:14Z", "app_name": "splash", "migration": "0002_auto__add_field_splashconfig_unaffected_url_paths"}}, {"pk": 102, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:14Z", "app_name": "user_api", "migration": "0001_initial"}}, {"pk": 103, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:14Z", "app_name": "course_modes", "migration": "0001_initial"}}, {"pk": 104, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:14Z", "app_name": "course_modes", "migration": "0002_auto__add_field_coursemode_currency"}}, {"pk": 105, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "course_modes", "migration": "0003_auto__add_unique_coursemode_course_id_currency_mode_slug"}}, {"pk": 106, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "course_modes", "migration": "0004_auto__add_field_coursemode_expiration_date"}}, {"pk": 107, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "course_modes", "migration": "0005_auto__add_field_coursemode_expiration_datetime"}}, {"pk": 108, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "course_modes", "migration": "0006_expiration_date_to_datetime"}}, {"pk": 109, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "verify_student", "migration": "0001_initial"}}, {"pk": 110, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "verify_student", "migration": "0002_auto__add_field_softwaresecurephotoverification_window"}}, {"pk": 111, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "verify_student", "migration": "0003_auto__add_field_softwaresecurephotoverification_display"}}, {"pk": 112, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "dark_lang", "migration": "0001_initial"}}, {"pk": 113, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:15Z", "app_name": "dark_lang", "migration": "0002_enable_on_install"}}, {"pk": 114, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:16Z", "app_name": "reverification", "migration": "0001_initial"}}, {"pk": 115, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:16Z", "app_name": "embargo", "migration": "0001_initial"}}, {"pk": 116, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:16Z", "app_name": "linkedin", "migration": "0001_initial"}}, {"pk": 117, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:16Z", "app_name": "django_extensions", "migration": "0001_empty"}}, {"pk": 118, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:16Z", "app_name": "shoppingcart", "migration": "0001_initial"}}, {"pk": 119, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:17Z", "app_name": "shoppingcart", "migration": "0002_auto__add_field_paidcourseregistration_mode"}}, {"pk": 120, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:17Z", "app_name": "shoppingcart", "migration": "0003_auto__del_field_orderitem_line_cost"}}, {"pk": 121, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:17Z", "app_name": "shoppingcart", "migration": "0004_auto__add_field_orderitem_fulfilled_time"}}, {"pk": 122, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:17Z", "app_name": "shoppingcart", "migration": "0005_auto__add_paidcourseregistrationannotation__add_field_orderitem_report"}}, {"pk": 123, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:17Z", "app_name": "shoppingcart", "migration": "0006_auto__add_field_order_refunded_time__add_field_orderitem_refund_reques"}}, {"pk": 124, "model": "south.migrationhistory", "fields": {"applied": "2014-02-26T16:03:17Z", "app_name": "shoppingcart", "migration": "0007_auto__add_field_orderitem_service_fee"}}, {"pk": 1, "model": "bulk_email.courseemailtemplate", "fields": {"plain_template": "{course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your account settings at {account_settings_url}.\r\n", "html_template": " Update from {course_title}

edX
Connect with edX:        

{course_title}


{{message_body}}
       
Copyright \u00a9 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
"}}, {"pk": 64, "model": "auth.permission", "fields": {"codename": "add_logentry", "name": "Can add log entry", "content_type": 22}}, {"pk": 65, "model": "auth.permission", "fields": {"codename": "change_logentry", "name": "Can change log entry", "content_type": 22}}, {"pk": 66, "model": "auth.permission", "fields": {"codename": "delete_logentry", "name": "Can delete log entry", "content_type": 22}}, {"pk": 4, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 2}}, {"pk": 5, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 2}}, {"pk": 6, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 2}}, {"pk": 1, "model": "auth.permission", "fields": {"codename": "add_permission", "name": "Can add permission", "content_type": 1}}, {"pk": 2, "model": "auth.permission", "fields": {"codename": "change_permission", "name": "Can change permission", "content_type": 1}}, {"pk": 3, "model": "auth.permission", "fields": {"codename": "delete_permission", "name": "Can delete permission", "content_type": 1}}, {"pk": 7, "model": "auth.permission", "fields": {"codename": "add_user", "name": "Can add user", "content_type": 3}}, {"pk": 8, "model": "auth.permission", "fields": {"codename": "change_user", "name": "Can change user", "content_type": 3}}, {"pk": 9, "model": "auth.permission", "fields": {"codename": "delete_user", "name": "Can delete user", "content_type": 3}}, {"pk": 145, "model": "auth.permission", "fields": {"codename": "add_courseauthorization", "name": "Can add course authorization", "content_type": 49}}, {"pk": 146, "model": "auth.permission", "fields": {"codename": "change_courseauthorization", "name": "Can change course authorization", "content_type": 49}}, {"pk": 147, "model": "auth.permission", "fields": {"codename": "delete_courseauthorization", "name": "Can delete course authorization", "content_type": 49}}, {"pk": 136, "model": "auth.permission", "fields": {"codename": "add_courseemail", "name": "Can add course email", "content_type": 46}}, {"pk": 137, "model": "auth.permission", "fields": {"codename": "change_courseemail", "name": "Can change course email", "content_type": 46}}, {"pk": 138, "model": "auth.permission", "fields": {"codename": "delete_courseemail", "name": "Can delete course email", "content_type": 46}}, {"pk": 142, "model": "auth.permission", "fields": {"codename": "add_courseemailtemplate", "name": "Can add course email template", "content_type": 48}}, {"pk": 143, "model": "auth.permission", "fields": {"codename": "change_courseemailtemplate", "name": "Can change course email template", "content_type": 48}}, {"pk": 144, "model": "auth.permission", "fields": {"codename": "delete_courseemailtemplate", "name": "Can delete course email template", "content_type": 48}}, {"pk": 139, "model": "auth.permission", "fields": {"codename": "add_optout", "name": "Can add optout", "content_type": 47}}, {"pk": 140, "model": "auth.permission", "fields": {"codename": "change_optout", "name": "Can change optout", "content_type": 47}}, {"pk": 141, "model": "auth.permission", "fields": {"codename": "delete_optout", "name": "Can delete optout", "content_type": 47}}, {"pk": 121, "model": "auth.permission", "fields": {"codename": "add_certificatewhitelist", "name": "Can add certificate whitelist", "content_type": 41}}, {"pk": 122, "model": "auth.permission", "fields": {"codename": "change_certificatewhitelist", "name": "Can change certificate whitelist", "content_type": 41}}, {"pk": 123, "model": "auth.permission", "fields": {"codename": "delete_certificatewhitelist", "name": "Can delete certificate whitelist", "content_type": 41}}, {"pk": 124, "model": "auth.permission", "fields": {"codename": "add_generatedcertificate", "name": "Can add generated certificate", "content_type": 42}}, {"pk": 125, "model": "auth.permission", "fields": {"codename": "change_generatedcertificate", "name": "Can change generated certificate", "content_type": 42}}, {"pk": 126, "model": "auth.permission", "fields": {"codename": "delete_generatedcertificate", "name": "Can delete generated certificate", "content_type": 42}}, {"pk": 46, "model": "auth.permission", "fields": {"codename": "add_servercircuit", "name": "Can add server circuit", "content_type": 16}}, {"pk": 47, "model": "auth.permission", "fields": {"codename": "change_servercircuit", "name": "Can change server circuit", "content_type": 16}}, {"pk": 48, "model": "auth.permission", "fields": {"codename": "delete_servercircuit", "name": "Can delete server circuit", "content_type": 16}}, {"pk": 10, "model": "auth.permission", "fields": {"codename": "add_contenttype", "name": "Can add content type", "content_type": 4}}, {"pk": 11, "model": "auth.permission", "fields": {"codename": "change_contenttype", "name": "Can change content type", "content_type": 4}}, {"pk": 12, "model": "auth.permission", "fields": {"codename": "delete_contenttype", "name": "Can delete content type", "content_type": 4}}, {"pk": 82, "model": "auth.permission", "fields": {"codename": "add_offlinecomputedgrade", "name": "Can add offline computed grade", "content_type": 28}}, {"pk": 83, "model": "auth.permission", "fields": {"codename": "change_offlinecomputedgrade", "name": "Can change offline computed grade", "content_type": 28}}, {"pk": 84, "model": "auth.permission", "fields": {"codename": "delete_offlinecomputedgrade", "name": "Can delete offline computed grade", "content_type": 28}}, {"pk": 85, "model": "auth.permission", "fields": {"codename": "add_offlinecomputedgradelog", "name": "Can add offline computed grade log", "content_type": 29}}, {"pk": 86, "model": "auth.permission", "fields": {"codename": "change_offlinecomputedgradelog", "name": "Can change offline computed grade log", "content_type": 29}}, {"pk": 87, "model": "auth.permission", "fields": {"codename": "delete_offlinecomputedgradelog", "name": "Can delete offline computed grade log", "content_type": 29}}, {"pk": 67, "model": "auth.permission", "fields": {"codename": "add_studentmodule", "name": "Can add student module", "content_type": 23}}, {"pk": 68, "model": "auth.permission", "fields": {"codename": "change_studentmodule", "name": "Can change student module", "content_type": 23}}, {"pk": 69, "model": "auth.permission", "fields": {"codename": "delete_studentmodule", "name": "Can delete student module", "content_type": 23}}, {"pk": 70, "model": "auth.permission", "fields": {"codename": "add_studentmodulehistory", "name": "Can add student module history", "content_type": 24}}, {"pk": 71, "model": "auth.permission", "fields": {"codename": "change_studentmodulehistory", "name": "Can change student module history", "content_type": 24}}, {"pk": 72, "model": "auth.permission", "fields": {"codename": "delete_studentmodulehistory", "name": "Can delete student module history", "content_type": 24}}, {"pk": 79, "model": "auth.permission", "fields": {"codename": "add_xmodulestudentinfofield", "name": "Can add x module student info field", "content_type": 27}}, {"pk": 80, "model": "auth.permission", "fields": {"codename": "change_xmodulestudentinfofield", "name": "Can change x module student info field", "content_type": 27}}, {"pk": 81, "model": "auth.permission", "fields": {"codename": "delete_xmodulestudentinfofield", "name": "Can delete x module student info field", "content_type": 27}}, {"pk": 76, "model": "auth.permission", "fields": {"codename": "add_xmodulestudentprefsfield", "name": "Can add x module student prefs field", "content_type": 26}}, {"pk": 77, "model": "auth.permission", "fields": {"codename": "change_xmodulestudentprefsfield", "name": "Can change x module student prefs field", "content_type": 26}}, {"pk": 78, "model": "auth.permission", "fields": {"codename": "delete_xmodulestudentprefsfield", "name": "Can delete x module student prefs field", "content_type": 26}}, {"pk": 73, "model": "auth.permission", "fields": {"codename": "add_xmoduleuserstatesummaryfield", "name": "Can add x module user state summary field", "content_type": 25}}, {"pk": 74, "model": "auth.permission", "fields": {"codename": "change_xmoduleuserstatesummaryfield", "name": "Can change x module user state summary field", "content_type": 25}}, {"pk": 75, "model": "auth.permission", "fields": {"codename": "delete_xmoduleuserstatesummaryfield", "name": "Can delete x module user state summary field", "content_type": 25}}, {"pk": 52, "model": "auth.permission", "fields": {"codename": "add_courseusergroup", "name": "Can add course user group", "content_type": 18}}, {"pk": 53, "model": "auth.permission", "fields": {"codename": "change_courseusergroup", "name": "Can change course user group", "content_type": 18}}, {"pk": 54, "model": "auth.permission", "fields": {"codename": "delete_courseusergroup", "name": "Can delete course user group", "content_type": 18}}, {"pk": 220, "model": "auth.permission", "fields": {"codename": "add_coursemode", "name": "Can add course mode", "content_type": 73}}, {"pk": 221, "model": "auth.permission", "fields": {"codename": "change_coursemode", "name": "Can change course mode", "content_type": 73}}, {"pk": 222, "model": "auth.permission", "fields": {"codename": "delete_coursemode", "name": "Can delete course mode", "content_type": 73}}, {"pk": 226, "model": "auth.permission", "fields": {"codename": "add_darklangconfig", "name": "Can add dark lang config", "content_type": 75}}, {"pk": 227, "model": "auth.permission", "fields": {"codename": "change_darklangconfig", "name": "Can change dark lang config", "content_type": 75}}, {"pk": 228, "model": "auth.permission", "fields": {"codename": "delete_darklangconfig", "name": "Can delete dark lang config", "content_type": 75}}, {"pk": 193, "model": "auth.permission", "fields": {"codename": "add_notification", "name": "Can add notification", "content_type": 64}}, {"pk": 194, "model": "auth.permission", "fields": {"codename": "change_notification", "name": "Can change notification", "content_type": 64}}, {"pk": 195, "model": "auth.permission", "fields": {"codename": "delete_notification", "name": "Can delete notification", "content_type": 64}}, {"pk": 184, "model": "auth.permission", "fields": {"codename": "add_notificationtype", "name": "Can add type", "content_type": 61}}, {"pk": 185, "model": "auth.permission", "fields": {"codename": "change_notificationtype", "name": "Can change type", "content_type": 61}}, {"pk": 186, "model": "auth.permission", "fields": {"codename": "delete_notificationtype", "name": "Can delete type", "content_type": 61}}, {"pk": 187, "model": "auth.permission", "fields": {"codename": "add_settings", "name": "Can add settings", "content_type": 62}}, {"pk": 188, "model": "auth.permission", "fields": {"codename": "change_settings", "name": "Can change settings", "content_type": 62}}, {"pk": 189, "model": "auth.permission", "fields": {"codename": "delete_settings", "name": "Can delete settings", "content_type": 62}}, {"pk": 190, "model": "auth.permission", "fields": {"codename": "add_subscription", "name": "Can add subscription", "content_type": 63}}, {"pk": 191, "model": "auth.permission", "fields": {"codename": "change_subscription", "name": "Can change subscription", "content_type": 63}}, {"pk": 192, "model": "auth.permission", "fields": {"codename": "delete_subscription", "name": "Can delete subscription", "content_type": 63}}, {"pk": 58, "model": "auth.permission", "fields": {"codename": "add_association", "name": "Can add association", "content_type": 20}}, {"pk": 59, "model": "auth.permission", "fields": {"codename": "change_association", "name": "Can change association", "content_type": 20}}, {"pk": 60, "model": "auth.permission", "fields": {"codename": "delete_association", "name": "Can delete association", "content_type": 20}}, {"pk": 55, "model": "auth.permission", "fields": {"codename": "add_nonce", "name": "Can add nonce", "content_type": 19}}, {"pk": 56, "model": "auth.permission", "fields": {"codename": "change_nonce", "name": "Can change nonce", "content_type": 19}}, {"pk": 57, "model": "auth.permission", "fields": {"codename": "delete_nonce", "name": "Can delete nonce", "content_type": 19}}, {"pk": 61, "model": "auth.permission", "fields": {"codename": "add_useropenid", "name": "Can add user open id", "content_type": 21}}, {"pk": 62, "model": "auth.permission", "fields": {"codename": "change_useropenid", "name": "Can change user open id", "content_type": 21}}, {"pk": 63, "model": "auth.permission", "fields": {"codename": "delete_useropenid", "name": "Can delete user open id", "content_type": 21}}, {"pk": 28, "model": "auth.permission", "fields": {"codename": "add_crontabschedule", "name": "Can add crontab", "content_type": 10}}, {"pk": 29, "model": "auth.permission", "fields": {"codename": "change_crontabschedule", "name": "Can change crontab", "content_type": 10}}, {"pk": 30, "model": "auth.permission", "fields": {"codename": "delete_crontabschedule", "name": "Can delete crontab", "content_type": 10}}, {"pk": 25, "model": "auth.permission", "fields": {"codename": "add_intervalschedule", "name": "Can add interval", "content_type": 9}}, {"pk": 26, "model": "auth.permission", "fields": {"codename": "change_intervalschedule", "name": "Can change interval", "content_type": 9}}, {"pk": 27, "model": "auth.permission", "fields": {"codename": "delete_intervalschedule", "name": "Can delete interval", "content_type": 9}}, {"pk": 34, "model": "auth.permission", "fields": {"codename": "add_periodictask", "name": "Can add periodic task", "content_type": 12}}, {"pk": 35, "model": "auth.permission", "fields": {"codename": "change_periodictask", "name": "Can change periodic task", "content_type": 12}}, {"pk": 36, "model": "auth.permission", "fields": {"codename": "delete_periodictask", "name": "Can delete periodic task", "content_type": 12}}, {"pk": 31, "model": "auth.permission", "fields": {"codename": "add_periodictasks", "name": "Can add periodic tasks", "content_type": 11}}, {"pk": 32, "model": "auth.permission", "fields": {"codename": "change_periodictasks", "name": "Can change periodic tasks", "content_type": 11}}, {"pk": 33, "model": "auth.permission", "fields": {"codename": "delete_periodictasks", "name": "Can delete periodic tasks", "content_type": 11}}, {"pk": 19, "model": "auth.permission", "fields": {"codename": "add_taskmeta", "name": "Can add task state", "content_type": 7}}, {"pk": 20, "model": "auth.permission", "fields": {"codename": "change_taskmeta", "name": "Can change task state", "content_type": 7}}, {"pk": 21, "model": "auth.permission", "fields": {"codename": "delete_taskmeta", "name": "Can delete task state", "content_type": 7}}, {"pk": 22, "model": "auth.permission", "fields": {"codename": "add_tasksetmeta", "name": "Can add saved group result", "content_type": 8}}, {"pk": 23, "model": "auth.permission", "fields": {"codename": "change_tasksetmeta", "name": "Can change saved group result", "content_type": 8}}, {"pk": 24, "model": "auth.permission", "fields": {"codename": "delete_tasksetmeta", "name": "Can delete saved group result", "content_type": 8}}, {"pk": 40, "model": "auth.permission", "fields": {"codename": "add_taskstate", "name": "Can add task", "content_type": 14}}, {"pk": 41, "model": "auth.permission", "fields": {"codename": "change_taskstate", "name": "Can change task", "content_type": 14}}, {"pk": 42, "model": "auth.permission", "fields": {"codename": "delete_taskstate", "name": "Can delete task", "content_type": 14}}, {"pk": 37, "model": "auth.permission", "fields": {"codename": "add_workerstate", "name": "Can add worker", "content_type": 13}}, {"pk": 38, "model": "auth.permission", "fields": {"codename": "change_workerstate", "name": "Can change worker", "content_type": 13}}, {"pk": 39, "model": "auth.permission", "fields": {"codename": "delete_workerstate", "name": "Can delete worker", "content_type": 13}}, {"pk": 232, "model": "auth.permission", "fields": {"codename": "add_embargoedcourse", "name": "Can add embargoed course", "content_type": 77}}, {"pk": 233, "model": "auth.permission", "fields": {"codename": "change_embargoedcourse", "name": "Can change embargoed course", "content_type": 77}}, {"pk": 234, "model": "auth.permission", "fields": {"codename": "delete_embargoedcourse", "name": "Can delete embargoed course", "content_type": 77}}, {"pk": 235, "model": "auth.permission", "fields": {"codename": "add_embargoedstate", "name": "Can add embargoed state", "content_type": 78}}, {"pk": 236, "model": "auth.permission", "fields": {"codename": "change_embargoedstate", "name": "Can change embargoed state", "content_type": 78}}, {"pk": 237, "model": "auth.permission", "fields": {"codename": "delete_embargoedstate", "name": "Can delete embargoed state", "content_type": 78}}, {"pk": 238, "model": "auth.permission", "fields": {"codename": "add_ipfilter", "name": "Can add ip filter", "content_type": 79}}, {"pk": 239, "model": "auth.permission", "fields": {"codename": "change_ipfilter", "name": "Can change ip filter", "content_type": 79}}, {"pk": 240, "model": "auth.permission", "fields": {"codename": "delete_ipfilter", "name": "Can delete ip filter", "content_type": 79}}, {"pk": 148, "model": "auth.permission", "fields": {"codename": "add_externalauthmap", "name": "Can add external auth map", "content_type": 50}}, {"pk": 149, "model": "auth.permission", "fields": {"codename": "change_externalauthmap", "name": "Can change external auth map", "content_type": 50}}, {"pk": 150, "model": "auth.permission", "fields": {"codename": "delete_externalauthmap", "name": "Can delete external auth map", "content_type": 50}}, {"pk": 199, "model": "auth.permission", "fields": {"codename": "add_puzzlecomplete", "name": "Can add puzzle complete", "content_type": 66}}, {"pk": 200, "model": "auth.permission", "fields": {"codename": "change_puzzlecomplete", "name": "Can change puzzle complete", "content_type": 66}}, {"pk": 201, "model": "auth.permission", "fields": {"codename": "delete_puzzlecomplete", "name": "Can delete puzzle complete", "content_type": 66}}, {"pk": 196, "model": "auth.permission", "fields": {"codename": "add_score", "name": "Can add score", "content_type": 65}}, {"pk": 197, "model": "auth.permission", "fields": {"codename": "change_score", "name": "Can change score", "content_type": 65}}, {"pk": 198, "model": "auth.permission", "fields": {"codename": "delete_score", "name": "Can delete score", "content_type": 65}}, {"pk": 127, "model": "auth.permission", "fields": {"codename": "add_instructortask", "name": "Can add instructor task", "content_type": 43}}, {"pk": 128, "model": "auth.permission", "fields": {"codename": "change_instructortask", "name": "Can change instructor task", "content_type": 43}}, {"pk": 129, "model": "auth.permission", "fields": {"codename": "delete_instructortask", "name": "Can delete instructor task", "content_type": 43}}, {"pk": 130, "model": "auth.permission", "fields": {"codename": "add_coursesoftware", "name": "Can add course software", "content_type": 44}}, {"pk": 131, "model": "auth.permission", "fields": {"codename": "change_coursesoftware", "name": "Can change course software", "content_type": 44}}, {"pk": 132, "model": "auth.permission", "fields": {"codename": "delete_coursesoftware", "name": "Can delete course software", "content_type": 44}}, {"pk": 133, "model": "auth.permission", "fields": {"codename": "add_userlicense", "name": "Can add user license", "content_type": 45}}, {"pk": 134, "model": "auth.permission", "fields": {"codename": "change_userlicense", "name": "Can change user license", "content_type": 45}}, {"pk": 135, "model": "auth.permission", "fields": {"codename": "delete_userlicense", "name": "Can delete user license", "content_type": 45}}, {"pk": 241, "model": "auth.permission", "fields": {"codename": "add_linkedin", "name": "Can add linked in", "content_type": 80}}, {"pk": 242, "model": "auth.permission", "fields": {"codename": "change_linkedin", "name": "Can change linked in", "content_type": 80}}, {"pk": 243, "model": "auth.permission", "fields": {"codename": "delete_linkedin", "name": "Can delete linked in", "content_type": 80}}, {"pk": 211, "model": "auth.permission", "fields": {"codename": "add_note", "name": "Can add note", "content_type": 70}}, {"pk": 212, "model": "auth.permission", "fields": {"codename": "change_note", "name": "Can change note", "content_type": 70}}, {"pk": 213, "model": "auth.permission", "fields": {"codename": "delete_note", "name": "Can delete note", "content_type": 70}}, {"pk": 49, "model": "auth.permission", "fields": {"codename": "add_psychometricdata", "name": "Can add psychometric data", "content_type": 17}}, {"pk": 50, "model": "auth.permission", "fields": {"codename": "change_psychometricdata", "name": "Can change psychometric data", "content_type": 17}}, {"pk": 51, "model": "auth.permission", "fields": {"codename": "delete_psychometricdata", "name": "Can delete psychometric data", "content_type": 17}}, {"pk": 229, "model": "auth.permission", "fields": {"codename": "add_midcoursereverificationwindow", "name": "Can add midcourse reverification window", "content_type": 76}}, {"pk": 230, "model": "auth.permission", "fields": {"codename": "change_midcoursereverificationwindow", "name": "Can change midcourse reverification window", "content_type": 76}}, {"pk": 231, "model": "auth.permission", "fields": {"codename": "delete_midcoursereverificationwindow", "name": "Can delete midcourse reverification window", "content_type": 76}}, {"pk": 13, "model": "auth.permission", "fields": {"codename": "add_session", "name": "Can add session", "content_type": 5}}, {"pk": 14, "model": "auth.permission", "fields": {"codename": "change_session", "name": "Can change session", "content_type": 5}}, {"pk": 15, "model": "auth.permission", "fields": {"codename": "delete_session", "name": "Can delete session", "content_type": 5}}, {"pk": 256, "model": "auth.permission", "fields": {"codename": "add_certificateitem", "name": "Can add certificate item", "content_type": 85}}, {"pk": 257, "model": "auth.permission", "fields": {"codename": "change_certificateitem", "name": "Can change certificate item", "content_type": 85}}, {"pk": 258, "model": "auth.permission", "fields": {"codename": "delete_certificateitem", "name": "Can delete certificate item", "content_type": 85}}, {"pk": 244, "model": "auth.permission", "fields": {"codename": "add_order", "name": "Can add order", "content_type": 81}}, {"pk": 245, "model": "auth.permission", "fields": {"codename": "change_order", "name": "Can change order", "content_type": 81}}, {"pk": 246, "model": "auth.permission", "fields": {"codename": "delete_order", "name": "Can delete order", "content_type": 81}}, {"pk": 247, "model": "auth.permission", "fields": {"codename": "add_orderitem", "name": "Can add order item", "content_type": 82}}, {"pk": 248, "model": "auth.permission", "fields": {"codename": "change_orderitem", "name": "Can change order item", "content_type": 82}}, {"pk": 249, "model": "auth.permission", "fields": {"codename": "delete_orderitem", "name": "Can delete order item", "content_type": 82}}, {"pk": 250, "model": "auth.permission", "fields": {"codename": "add_paidcourseregistration", "name": "Can add paid course registration", "content_type": 83}}, {"pk": 251, "model": "auth.permission", "fields": {"codename": "change_paidcourseregistration", "name": "Can change paid course registration", "content_type": 83}}, {"pk": 252, "model": "auth.permission", "fields": {"codename": "delete_paidcourseregistration", "name": "Can delete paid course registration", "content_type": 83}}, {"pk": 253, "model": "auth.permission", "fields": {"codename": "add_paidcourseregistrationannotation", "name": "Can add paid course registration annotation", "content_type": 84}}, {"pk": 254, "model": "auth.permission", "fields": {"codename": "change_paidcourseregistrationannotation", "name": "Can change paid course registration annotation", "content_type": 84}}, {"pk": 255, "model": "auth.permission", "fields": {"codename": "delete_paidcourseregistrationannotation", "name": "Can delete paid course registration annotation", "content_type": 84}}, {"pk": 16, "model": "auth.permission", "fields": {"codename": "add_site", "name": "Can add site", "content_type": 6}}, {"pk": 17, "model": "auth.permission", "fields": {"codename": "change_site", "name": "Can change site", "content_type": 6}}, {"pk": 18, "model": "auth.permission", "fields": {"codename": "delete_site", "name": "Can delete site", "content_type": 6}}, {"pk": 43, "model": "auth.permission", "fields": {"codename": "add_migrationhistory", "name": "Can add migration history", "content_type": 15}}, {"pk": 44, "model": "auth.permission", "fields": {"codename": "change_migrationhistory", "name": "Can change migration history", "content_type": 15}}, {"pk": 45, "model": "auth.permission", "fields": {"codename": "delete_migrationhistory", "name": "Can delete migration history", "content_type": 15}}, {"pk": 214, "model": "auth.permission", "fields": {"codename": "add_splashconfig", "name": "Can add splash config", "content_type": 71}}, {"pk": 215, "model": "auth.permission", "fields": {"codename": "change_splashconfig", "name": "Can change splash config", "content_type": 71}}, {"pk": 216, "model": "auth.permission", "fields": {"codename": "delete_splashconfig", "name": "Can delete splash config", "content_type": 71}}, {"pk": 88, "model": "auth.permission", "fields": {"codename": "add_anonymoususerid", "name": "Can add anonymous user id", "content_type": 30}}, {"pk": 89, "model": "auth.permission", "fields": {"codename": "change_anonymoususerid", "name": "Can change anonymous user id", "content_type": 30}}, {"pk": 90, "model": "auth.permission", "fields": {"codename": "delete_anonymoususerid", "name": "Can delete anonymous user id", "content_type": 30}}, {"pk": 112, "model": "auth.permission", "fields": {"codename": "add_courseenrollment", "name": "Can add course enrollment", "content_type": 38}}, {"pk": 113, "model": "auth.permission", "fields": {"codename": "change_courseenrollment", "name": "Can change course enrollment", "content_type": 38}}, {"pk": 114, "model": "auth.permission", "fields": {"codename": "delete_courseenrollment", "name": "Can delete course enrollment", "content_type": 38}}, {"pk": 115, "model": "auth.permission", "fields": {"codename": "add_courseenrollmentallowed", "name": "Can add course enrollment allowed", "content_type": 39}}, {"pk": 116, "model": "auth.permission", "fields": {"codename": "change_courseenrollmentallowed", "name": "Can change course enrollment allowed", "content_type": 39}}, {"pk": 117, "model": "auth.permission", "fields": {"codename": "delete_courseenrollmentallowed", "name": "Can delete course enrollment allowed", "content_type": 39}}, {"pk": 109, "model": "auth.permission", "fields": {"codename": "add_loginfailures", "name": "Can add login failures", "content_type": 37}}, {"pk": 110, "model": "auth.permission", "fields": {"codename": "change_loginfailures", "name": "Can change login failures", "content_type": 37}}, {"pk": 111, "model": "auth.permission", "fields": {"codename": "delete_loginfailures", "name": "Can delete login failures", "content_type": 37}}, {"pk": 106, "model": "auth.permission", "fields": {"codename": "add_pendingemailchange", "name": "Can add pending email change", "content_type": 36}}, {"pk": 107, "model": "auth.permission", "fields": {"codename": "change_pendingemailchange", "name": "Can change pending email change", "content_type": 36}}, {"pk": 108, "model": "auth.permission", "fields": {"codename": "delete_pendingemailchange", "name": "Can delete pending email change", "content_type": 36}}, {"pk": 103, "model": "auth.permission", "fields": {"codename": "add_pendingnamechange", "name": "Can add pending name change", "content_type": 35}}, {"pk": 104, "model": "auth.permission", "fields": {"codename": "change_pendingnamechange", "name": "Can change pending name change", "content_type": 35}}, {"pk": 105, "model": "auth.permission", "fields": {"codename": "delete_pendingnamechange", "name": "Can delete pending name change", "content_type": 35}}, {"pk": 100, "model": "auth.permission", "fields": {"codename": "add_registration", "name": "Can add registration", "content_type": 34}}, {"pk": 101, "model": "auth.permission", "fields": {"codename": "change_registration", "name": "Can change registration", "content_type": 34}}, {"pk": 102, "model": "auth.permission", "fields": {"codename": "delete_registration", "name": "Can delete registration", "content_type": 34}}, {"pk": 94, "model": "auth.permission", "fields": {"codename": "add_userprofile", "name": "Can add user profile", "content_type": 32}}, {"pk": 95, "model": "auth.permission", "fields": {"codename": "change_userprofile", "name": "Can change user profile", "content_type": 32}}, {"pk": 96, "model": "auth.permission", "fields": {"codename": "delete_userprofile", "name": "Can delete user profile", "content_type": 32}}, {"pk": 91, "model": "auth.permission", "fields": {"codename": "add_userstanding", "name": "Can add user standing", "content_type": 31}}, {"pk": 92, "model": "auth.permission", "fields": {"codename": "change_userstanding", "name": "Can change user standing", "content_type": 31}}, {"pk": 93, "model": "auth.permission", "fields": {"codename": "delete_userstanding", "name": "Can delete user standing", "content_type": 31}}, {"pk": 97, "model": "auth.permission", "fields": {"codename": "add_usertestgroup", "name": "Can add user test group", "content_type": 33}}, {"pk": 98, "model": "auth.permission", "fields": {"codename": "change_usertestgroup", "name": "Can change user test group", "content_type": 33}}, {"pk": 99, "model": "auth.permission", "fields": {"codename": "delete_usertestgroup", "name": "Can delete user test group", "content_type": 33}}, {"pk": 118, "model": "auth.permission", "fields": {"codename": "add_trackinglog", "name": "Can add tracking log", "content_type": 40}}, {"pk": 119, "model": "auth.permission", "fields": {"codename": "change_trackinglog", "name": "Can change tracking log", "content_type": 40}}, {"pk": 120, "model": "auth.permission", "fields": {"codename": "delete_trackinglog", "name": "Can delete tracking log", "content_type": 40}}, {"pk": 217, "model": "auth.permission", "fields": {"codename": "add_userpreference", "name": "Can add user preference", "content_type": 72}}, {"pk": 218, "model": "auth.permission", "fields": {"codename": "change_userpreference", "name": "Can change user preference", "content_type": 72}}, {"pk": 219, "model": "auth.permission", "fields": {"codename": "delete_userpreference", "name": "Can delete user preference", "content_type": 72}}, {"pk": 223, "model": "auth.permission", "fields": {"codename": "add_softwaresecurephotoverification", "name": "Can add software secure photo verification", "content_type": 74}}, {"pk": 224, "model": "auth.permission", "fields": {"codename": "change_softwaresecurephotoverification", "name": "Can change software secure photo verification", "content_type": 74}}, {"pk": 225, "model": "auth.permission", "fields": {"codename": "delete_softwaresecurephotoverification", "name": "Can delete software secure photo verification", "content_type": 74}}, {"pk": 202, "model": "auth.permission", "fields": {"codename": "add_flag", "name": "Can add flag", "content_type": 67}}, {"pk": 203, "model": "auth.permission", "fields": {"codename": "change_flag", "name": "Can change flag", "content_type": 67}}, {"pk": 204, "model": "auth.permission", "fields": {"codename": "delete_flag", "name": "Can delete flag", "content_type": 67}}, {"pk": 208, "model": "auth.permission", "fields": {"codename": "add_sample", "name": "Can add sample", "content_type": 69}}, {"pk": 209, "model": "auth.permission", "fields": {"codename": "change_sample", "name": "Can change sample", "content_type": 69}}, {"pk": 210, "model": "auth.permission", "fields": {"codename": "delete_sample", "name": "Can delete sample", "content_type": 69}}, {"pk": 205, "model": "auth.permission", "fields": {"codename": "add_switch", "name": "Can add switch", "content_type": 68}}, {"pk": 206, "model": "auth.permission", "fields": {"codename": "change_switch", "name": "Can change switch", "content_type": 68}}, {"pk": 207, "model": "auth.permission", "fields": {"codename": "delete_switch", "name": "Can delete switch", "content_type": 68}}, {"pk": 151, "model": "auth.permission", "fields": {"codename": "add_article", "name": "Can add article", "content_type": 51}}, {"pk": 155, "model": "auth.permission", "fields": {"codename": "assign", "name": "Can change ownership of any article", "content_type": 51}}, {"pk": 152, "model": "auth.permission", "fields": {"codename": "change_article", "name": "Can change article", "content_type": 51}}, {"pk": 153, "model": "auth.permission", "fields": {"codename": "delete_article", "name": "Can delete article", "content_type": 51}}, {"pk": 156, "model": "auth.permission", "fields": {"codename": "grant", "name": "Can assign permissions to other users", "content_type": 51}}, {"pk": 154, "model": "auth.permission", "fields": {"codename": "moderate", "name": "Can edit all articles and lock/unlock/restore", "content_type": 51}}, {"pk": 157, "model": "auth.permission", "fields": {"codename": "add_articleforobject", "name": "Can add Article for object", "content_type": 52}}, {"pk": 158, "model": "auth.permission", "fields": {"codename": "change_articleforobject", "name": "Can change Article for object", "content_type": 52}}, {"pk": 159, "model": "auth.permission", "fields": {"codename": "delete_articleforobject", "name": "Can delete Article for object", "content_type": 52}}, {"pk": 166, "model": "auth.permission", "fields": {"codename": "add_articleplugin", "name": "Can add article plugin", "content_type": 55}}, {"pk": 167, "model": "auth.permission", "fields": {"codename": "change_articleplugin", "name": "Can change article plugin", "content_type": 55}}, {"pk": 168, "model": "auth.permission", "fields": {"codename": "delete_articleplugin", "name": "Can delete article plugin", "content_type": 55}}, {"pk": 160, "model": "auth.permission", "fields": {"codename": "add_articlerevision", "name": "Can add article revision", "content_type": 53}}, {"pk": 161, "model": "auth.permission", "fields": {"codename": "change_articlerevision", "name": "Can change article revision", "content_type": 53}}, {"pk": 162, "model": "auth.permission", "fields": {"codename": "delete_articlerevision", "name": "Can delete article revision", "content_type": 53}}, {"pk": 181, "model": "auth.permission", "fields": {"codename": "add_articlesubscription", "name": "Can add article subscription", "content_type": 60}}, {"pk": 182, "model": "auth.permission", "fields": {"codename": "change_articlesubscription", "name": "Can change article subscription", "content_type": 60}}, {"pk": 183, "model": "auth.permission", "fields": {"codename": "delete_articlesubscription", "name": "Can delete article subscription", "content_type": 60}}, {"pk": 169, "model": "auth.permission", "fields": {"codename": "add_reusableplugin", "name": "Can add reusable plugin", "content_type": 56}}, {"pk": 170, "model": "auth.permission", "fields": {"codename": "change_reusableplugin", "name": "Can change reusable plugin", "content_type": 56}}, {"pk": 171, "model": "auth.permission", "fields": {"codename": "delete_reusableplugin", "name": "Can delete reusable plugin", "content_type": 56}}, {"pk": 175, "model": "auth.permission", "fields": {"codename": "add_revisionplugin", "name": "Can add revision plugin", "content_type": 58}}, {"pk": 176, "model": "auth.permission", "fields": {"codename": "change_revisionplugin", "name": "Can change revision plugin", "content_type": 58}}, {"pk": 177, "model": "auth.permission", "fields": {"codename": "delete_revisionplugin", "name": "Can delete revision plugin", "content_type": 58}}, {"pk": 178, "model": "auth.permission", "fields": {"codename": "add_revisionpluginrevision", "name": "Can add revision plugin revision", "content_type": 59}}, {"pk": 179, "model": "auth.permission", "fields": {"codename": "change_revisionpluginrevision", "name": "Can change revision plugin revision", "content_type": 59}}, {"pk": 180, "model": "auth.permission", "fields": {"codename": "delete_revisionpluginrevision", "name": "Can delete revision plugin revision", "content_type": 59}}, {"pk": 172, "model": "auth.permission", "fields": {"codename": "add_simpleplugin", "name": "Can add simple plugin", "content_type": 57}}, {"pk": 173, "model": "auth.permission", "fields": {"codename": "change_simpleplugin", "name": "Can change simple plugin", "content_type": 57}}, {"pk": 174, "model": "auth.permission", "fields": {"codename": "delete_simpleplugin", "name": "Can delete simple plugin", "content_type": 57}}, {"pk": 163, "model": "auth.permission", "fields": {"codename": "add_urlpath", "name": "Can add URL path", "content_type": 54}}, {"pk": 164, "model": "auth.permission", "fields": {"codename": "change_urlpath", "name": "Can change URL path", "content_type": 54}}, {"pk": 165, "model": "auth.permission", "fields": {"codename": "delete_urlpath", "name": "Can delete URL path", "content_type": 54}}, {"pk": 1, "model": "dark_lang.darklangconfig", "fields": {"change_date": "2014-02-26T16:03:15Z", "changed_by": null, "enabled": true, "released_languages": ""}}] \ No newline at end of file diff --git a/common/test/db_cache/bok_choy_schema.sql b/common/test/db_cache/bok_choy_schema.sql index 276ebdf778..47ccd20578 100644 --- a/common/test/db_cache/bok_choy_schema.sql +++ b/common/test/db_cache/bok_choy_schema.sql @@ -46,7 +46,7 @@ CREATE TABLE `auth_permission` ( UNIQUE KEY `content_type_id` (`content_type_id`,`codename`), KEY `auth_permission_e4470c6e` (`content_type_id`), CONSTRAINT `content_type_id_refs_id_728de91f` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=238 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=259 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `auth_registration`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -122,12 +122,14 @@ CREATE TABLE `auth_userprofile` ( `location` varchar(255) NOT NULL, `meta` longtext NOT NULL, `courseware` varchar(255) NOT NULL, - `gender` varchar(6) DEFAULT NULL, + `gender` varchar(6), `mailing_address` longtext, - `year_of_birth` int(11) DEFAULT NULL, - `level_of_education` varchar(6) DEFAULT NULL, + `year_of_birth` int(11), + `level_of_education` varchar(6), `goals` longtext, `allow_certificate` tinyint(1) NOT NULL, + `country` varchar(2), + `city` longtext, PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`), KEY `auth_userprofile_52094d6e` (`name`), @@ -147,6 +149,7 @@ CREATE TABLE `bulk_email_courseauthorization` ( `course_id` varchar(255) NOT NULL, `email_enabled` tinyint(1) NOT NULL, PRIMARY KEY (`id`), + UNIQUE KEY `bulk_email_courseauthorization_course_id_4f6cee675bf93275_uniq` (`course_id`), KEY `bulk_email_courseauthorization_ff48d8e5` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -187,7 +190,7 @@ DROP TABLE IF EXISTS `bulk_email_optout`; CREATE TABLE `bulk_email_optout` ( `id` int(11) NOT NULL AUTO_INCREMENT, `course_id` varchar(255) NOT NULL, - `user_id` int(11) DEFAULT NULL, + `user_id` int(11), PRIMARY KEY (`id`), UNIQUE KEY `bulk_email_optout_course_id_368f7519b2997e1a_uniq` (`course_id`,`user_id`), KEY `bulk_email_optout_ff48d8e5` (`course_id`), @@ -366,7 +369,7 @@ CREATE TABLE `courseware_studentmodule` ( `grade` double DEFAULT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, - `max_grade` double DEFAULT NULL, + `max_grade` double, `done` varchar(8) NOT NULL, `course_id` varchar(255) NOT NULL, PRIMARY KEY (`id`), @@ -388,7 +391,7 @@ DROP TABLE IF EXISTS `courseware_studentmodulehistory`; CREATE TABLE `courseware_studentmodulehistory` ( `id` int(11) NOT NULL AUTO_INCREMENT, `student_module_id` int(11) NOT NULL, - `version` varchar(255) DEFAULT NULL, + `version` varchar(255), `created` datetime NOT NULL, `state` longtext, `grade` double DEFAULT NULL, @@ -458,6 +461,20 @@ CREATE TABLE `courseware_xmoduleuserstatesummaryfield` ( KEY `courseware_xmodulecontentfield_5436e97a` (`modified`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `dark_lang_darklangconfig`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `dark_lang_darklangconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `enabled` tinyint(1) NOT NULL, + `released_languages` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `dark_lang_darklangconfig_16905482` (`changed_by_id`), + CONSTRAINT `changed_by_id_refs_id_3fb19c355c5fe834` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `django_admin_log`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; @@ -536,7 +553,7 @@ CREATE TABLE `django_content_type` ( `model` varchar(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `app_label` (`app_label`,`model`) -) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=86 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `django_openid_auth_association`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -644,8 +661,8 @@ CREATE TABLE `djcelery_periodictask` ( UNIQUE KEY `name` (`name`), KEY `djcelery_periodictask_17d2d99d` (`interval_id`), KEY `djcelery_periodictask_7aa5fda` (`crontab_id`), - CONSTRAINT `interval_id_refs_id_f2054349` FOREIGN KEY (`interval_id`) REFERENCES `djcelery_intervalschedule` (`id`), - CONSTRAINT `crontab_id_refs_id_ebff5e74` FOREIGN KEY (`crontab_id`) REFERENCES `djcelery_crontabschedule` (`id`) + CONSTRAINT `crontab_id_refs_id_ebff5e74` FOREIGN KEY (`crontab_id`) REFERENCES `djcelery_crontabschedule` (`id`), + CONSTRAINT `interval_id_refs_id_f2054349` FOREIGN KEY (`interval_id`) REFERENCES `djcelery_intervalschedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `djcelery_periodictasks`; @@ -698,6 +715,46 @@ CREATE TABLE `djcelery_workerstate` ( KEY `djcelery_workerstate_eb8ac7e4` (`last_heartbeat`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `embargo_embargoedcourse`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `embargo_embargoedcourse` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `embargoed` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_id` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `embargo_embargoedstate`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `embargo_embargoedstate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `enabled` tinyint(1) NOT NULL, + `embargoed_countries` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `embargo_embargoedstate_16905482` (`changed_by_id`), + CONSTRAINT `changed_by_id_refs_id_3c8b83add0205d39` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `embargo_ipfilter`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `embargo_ipfilter` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `enabled` tinyint(1) NOT NULL, + `whitelist` longtext NOT NULL, + `blacklist` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `embargo_ipfilter_16905482` (`changed_by_id`), + CONSTRAINT `changed_by_id_refs_id_3babbf0a22c1f5d3` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `external_auth_externalauthmap`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; @@ -933,6 +990,18 @@ CREATE TABLE `psychometrics_psychometricdata` ( UNIQUE KEY `studentmodule_id` (`studentmodule_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `reverification_midcoursereverificationwindow`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `reverification_midcoursereverificationwindow` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `start_date` datetime DEFAULT NULL, + `end_date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `reverification_midcoursereverificationwindow_ff48d8e5` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shoppingcart_certificateitem`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; @@ -969,7 +1038,7 @@ CREATE TABLE `shoppingcart_order` ( `bill_to_ccnum` varchar(8) NOT NULL, `bill_to_cardtype` varchar(32) NOT NULL, `processor_reply_dump` longtext NOT NULL, - `refunded_time` datetime DEFAULT NULL, + `refunded_time` datetime, PRIMARY KEY (`id`), KEY `shoppingcart_order_fbfc09f1` (`user_id`), CONSTRAINT `user_id_refs_id_a4b0342e1195673` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) @@ -987,9 +1056,9 @@ CREATE TABLE `shoppingcart_orderitem` ( `unit_cost` decimal(30,2) NOT NULL, `line_desc` varchar(1024) NOT NULL, `currency` varchar(8) NOT NULL, - `fulfilled_time` datetime DEFAULT NULL, + `fulfilled_time` datetime, `report_comments` longtext NOT NULL, - `refund_requested_time` datetime DEFAULT NULL, + `refund_requested_time` datetime, `service_fee` decimal(30,2) NOT NULL, PRIMARY KEY (`id`), KEY `shoppingcart_orderitem_8337030b` (`order_id`), @@ -1034,7 +1103,25 @@ CREATE TABLE `south_migrationhistory` ( `migration` varchar(255) NOT NULL, `applied` datetime NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=125 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `splash_splashconfig`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `splash_splashconfig` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `change_date` datetime NOT NULL, + `changed_by_id` int(11) DEFAULT NULL, + `enabled` tinyint(1) NOT NULL, + `cookie_name` longtext NOT NULL, + `cookie_allowed_values` longtext NOT NULL, + `unaffected_usernames` longtext NOT NULL, + `redirect_url` varchar(200) NOT NULL, + `unaffected_url_paths` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `splash_splashconfig_16905482` (`changed_by_id`), + CONSTRAINT `changed_by_id_refs_id_6024c0b79125b21c` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `student_anonymoususerid`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -1085,6 +1172,19 @@ CREATE TABLE `student_courseenrollmentallowed` ( KEY `student_courseenrollmentallowed_3216ff68` (`created`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_loginfailures`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_loginfailures` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `failure_count` int(11) NOT NULL, + `lockout_until` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `student_loginfailures_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_50dcb1c1e6a71045` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `student_pendingemailchange`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; @@ -1167,7 +1267,7 @@ CREATE TABLE `track_trackinglog` ( `event_type` varchar(512) NOT NULL, `event` longtext NOT NULL, `agent` varchar(256) NOT NULL, - `page` varchar(512) DEFAULT NULL, + `page` varchar(512), `time` datetime NOT NULL, `host` varchar(64) NOT NULL, PRIMARY KEY (`id`) @@ -1208,6 +1308,8 @@ CREATE TABLE `verify_student_softwaresecurephotoverification` ( `error_msg` longtext NOT NULL, `error_code` varchar(50) NOT NULL, `photo_id_key` longtext NOT NULL, + `window_id` int(11), + `display` tinyint(1) NOT NULL, PRIMARY KEY (`id`), KEY `verify_student_softwaresecurephotoverification_fbfc09f1` (`user_id`), KEY `verify_student_softwaresecurephotoverification_8713c555` (`receipt_id`), @@ -1215,8 +1317,11 @@ CREATE TABLE `verify_student_softwaresecurephotoverification` ( KEY `verify_student_softwaresecurephotoverification_f84f7de6` (`updated_at`), KEY `verify_student_softwaresecurephotoverification_4452d192` (`submitted_at`), KEY `verify_student_softwaresecurephotoverification_b2c165b4` (`reviewing_user_id`), + KEY `verify_student_softwaresecurephotoverification_7343ffda` (`window_id`), + KEY `verify_student_softwaresecurephotoverification_35eebcb6` (`display`), CONSTRAINT `reviewing_user_id_refs_id_5b90d52ad6ea4207` FOREIGN KEY (`reviewing_user_id`) REFERENCES `auth_user` (`id`), - CONSTRAINT `user_id_refs_id_5b90d52ad6ea4207` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) + CONSTRAINT `user_id_refs_id_5b90d52ad6ea4207` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `window_id_refs_id_30f70c30fce8f38a` FOREIGN KEY (`window_id`) REFERENCES `reverification_midcoursereverificationwindow` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `waffle_flag`; @@ -1448,9 +1553,9 @@ DROP TABLE IF EXISTS `wiki_imagerevision`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `wiki_imagerevision` ( `revisionpluginrevision_ptr_id` int(11) NOT NULL, - `image` varchar(2000) DEFAULT NULL, - `width` smallint(6) DEFAULT NULL, - `height` smallint(6) DEFAULT NULL, + `image` varchar(2000), + `width` smallint(6), + `height` smallint(6), PRIMARY KEY (`revisionpluginrevision_ptr_id`), CONSTRAINT `revisionpluginrevision_ptr_id_refs_id_5da3ee545b9fc791` FOREIGN KEY (`revisionpluginrevision_ptr_id`) REFERENCES `wiki_revisionpluginrevision` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1484,7 +1589,7 @@ DROP TABLE IF EXISTS `wiki_revisionplugin`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `wiki_revisionplugin` ( `articleplugin_ptr_id` int(11) NOT NULL, - `current_revision_id` int(11) DEFAULT NULL, + `current_revision_id` int(11), PRIMARY KEY (`articleplugin_ptr_id`), UNIQUE KEY `current_revision_id` (`current_revision_id`), CONSTRAINT `current_revision_id_refs_id_2732d4b244938e26` FOREIGN KEY (`current_revision_id`) REFERENCES `wiki_revisionpluginrevision` (`id`), diff --git a/lms/envs/common.py b/lms/envs/common.py index e374c5a401..ed2fd43147 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -218,6 +218,9 @@ FEATURES = { # Turn off account locking if failed login attempts exceeds a limit 'ENABLE_MAX_FAILED_LOGIN_ATTEMPTS': False, + + # Toggle embargo functionality + 'EMBARGO': False, } # Used for A/B testing diff --git a/lms/envs/test.py b/lms/envs/test.py index c48fe12c8e..fafa1244ee 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -40,6 +40,9 @@ FEATURES['ENABLE_SHOPPING_CART'] = True FEATURES['ENABLE_S3_GRADE_DOWNLOADS'] = True FEATURES['ALLOW_COURSE_STAFF_GRADE_DOWNLOADS'] = True +# Toggles embargo on for testing +FEATURES['EMBARGO'] = True + # Need wiki for courseware views to work. TODO (vshnayder): shouldn't need it. WIKI_ENABLED = True From 4db78853369f0acedef8643ff4f33e4bbbe7b4ea Mon Sep 17 00:00:00 2001 From: Waheed Ahmed Date: Thu, 27 Feb 2014 18:34:26 +0500 Subject: [PATCH 5/7] Students not receiving credit for peer assessment. ORA-330 --- .../xmodule/xmodule/peer_grading_module.py | 5 +- .../xmodule/tests/test_peer_grading.py | 59 +++++++++++++++++-- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/common/lib/xmodule/xmodule/peer_grading_module.py b/common/lib/xmodule/xmodule/peer_grading_module.py index b16ca81656..11c063e545 100644 --- a/common/lib/xmodule/xmodule/peer_grading_module.py +++ b/common/lib/xmodule/xmodule/peer_grading_module.py @@ -255,7 +255,7 @@ class PeerGradingModule(PeerGradingFields, XModule): count_graded = self.student_data_for_location['count_graded'] count_required = self.student_data_for_location['count_required'] except: - success, response = self.query_data_for_location(self.location) + success, response = self.query_data_for_location(self.link_to_location) if not success: log.exception( "No instance data found and could not get data from controller for loc {0} student {1}".format( @@ -706,6 +706,7 @@ class PeerGradingDescriptor(PeerGradingFields, RawDescriptor): closed = module_attr('closed') get_instance_state = module_attr('get_instance_state') get_next_submission = module_attr('get_next_submission') + graded = module_attr('graded') is_student_calibrated = module_attr('is_student_calibrated') peer_grading = module_attr('peer_grading') peer_grading_closed = module_attr('peer_grading_closed') @@ -715,4 +716,6 @@ class PeerGradingDescriptor(PeerGradingFields, RawDescriptor): save_calibration_essay = module_attr('save_calibration_essay') save_grade = module_attr('save_grade') show_calibration_essay = module_attr('show_calibration_essay') + use_for_single_location_local = module_attr('use_for_single_location_local') _find_corresponding_module_for_location = module_attr('_find_corresponding_module_for_location') + diff --git a/common/lib/xmodule/xmodule/tests/test_peer_grading.py b/common/lib/xmodule/xmodule/tests/test_peer_grading.py index ebfeaa0693..8445527aea 100644 --- a/common/lib/xmodule/xmodule/tests/test_peer_grading.py +++ b/common/lib/xmodule/xmodule/tests/test_peer_grading.py @@ -1,7 +1,7 @@ import unittest import json import logging -from mock import Mock +from mock import Mock, patch from webob.multidict import MultiDict from xblock.field_data import DictFieldData @@ -78,12 +78,13 @@ class PeerGradingModuleTest(unittest.TestCase, DummyModulestore): success, _data = self.peer_grading.query_data_for_location(self.problem_location.url()) self.assertTrue(success) - def test_get_score(self): + def test_get_score_none(self): """ - Test getting the score - @return: + Test getting the score. """ score = self.peer_grading.get_score() + + # Score should be None. self.assertIsNone(score['score']) def test_get_max_score(self): @@ -179,6 +180,56 @@ class PeerGradingModuleTest(unittest.TestCase, DummyModulestore): ) ) + def test_get_score_success_fails(self): + """ + Test if query_data_for_location not succeed, their score is None. + """ + score_dict = self.get_score(False, 0, 0) + + # Score dict should be None. + self.assertIsNone(score_dict) + + def test_get_score(self): + """ + Test if the student has graded equal to required submissions, + their score is 1.0. + """ + + score_dict = self.get_score(True, 3, 3) + + # Score should be 1.0. + self.assertEqual(score_dict["score"], 1.0) + + # Testing score after data is stored in student_data_for_location in xmodule. + _score_dict = self.peer_grading.get_score() + + # Score should be 1.0. + self.assertEqual(_score_dict["score"], 1.0) + + def test_get_score_zero(self): + """ + Test if the student has graded not equal to required submissions, + their score is 0.0. + """ + score_dict = self.get_score(True, 2, 3) + + # Score should be 0.0. + self.assertEqual(score_dict["score"], 0.0) + + def get_score(self, success, count_graded, count_required): + self.peer_grading.use_for_single_location_local = True + self.peer_grading.graded = True + + # Patch for external grading service. + with patch('xmodule.peer_grading_module.PeerGradingModule.query_data_for_location') as mock_query_data_for_location: + mock_query_data_for_location.return_value = ( + success, + {"count_graded": count_graded, "count_required": count_required} + ) + + # Returning score dict. + return self.peer_grading.get_score() + class MockPeerGradingServiceProblemList(MockPeerGradingService): def get_problem_list(self, course_id, grader_id): From 287d84ba95a525ad86c908290f53e8f7029969af Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 27 Feb 2014 14:18:43 -0500 Subject: [PATCH 6/7] Fix youtube captions that disappeared with multi-language caption support [BLD-889] --- .../xmodule/video_module/video_module.py | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/common/lib/xmodule/xmodule/video_module/video_module.py b/common/lib/xmodule/xmodule/video_module/video_module.py index e75b7b4c46..0864ce18ac 100644 --- a/common/lib/xmodule/xmodule/video_module/video_module.py +++ b/common/lib/xmodule/xmodule/video_module/video_module.py @@ -245,21 +245,23 @@ class VideoModule(VideoFields, XModule): elif self.sub: track_url = self.runtime.handler_url(self, 'transcript').rstrip('/?') + '/download' - if self.transcript_language in self.transcripts: - transcript_language = self.transcript_language - elif self.sub: + if not self.transcripts: transcript_language = 'en' - elif self.transcripts: - transcript_language = self.transcripts.keys()[0] + languages = {'en': 'English'} else: - # this for the case, when for currently selected video, - # there are no translations and English subtitles are not set by instructor. - transcript_language = 'null' + if self.transcript_language in self.transcripts: + transcript_language = self.transcript_language + else: + transcript_language = self.transcripts.keys()[0] - all_languages = {i[0]: i[1] for i in settings.ALL_LANGUAGES} - languages = {lang: all_languages[lang] for lang in self.transcripts} - if self.sub: - languages.update({'en': 'English'}) + languages = { + lang: display + for lang, display in settings.ALL_LANGUAGES + if lang in self.transcripts + } + + if self.sub: + languages['en'] = 'English' # OrderedDict for easy testing of rendered context in tests transcript_languages = OrderedDict(sorted(languages.items(), key=itemgetter(1))) From 9d850eec2d116e8708de0d4d80ebda8d457f994c Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 27 Feb 2014 15:36:42 -0500 Subject: [PATCH 7/7] Fix case where both old and new transcripts are uploaded, but transcript language isn't one of the new transcripts. --- common/lib/xmodule/xmodule/video_module/video_module.py | 8 +++++--- lms/djangoapps/courseware/tests/test_video_mongo.py | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/common/lib/xmodule/xmodule/video_module/video_module.py b/common/lib/xmodule/xmodule/video_module/video_module.py index 0864ce18ac..172ab8cc33 100644 --- a/common/lib/xmodule/xmodule/video_module/video_module.py +++ b/common/lib/xmodule/xmodule/video_module/video_module.py @@ -251,8 +251,10 @@ class VideoModule(VideoFields, XModule): else: if self.transcript_language in self.transcripts: transcript_language = self.transcript_language + elif self.sub: + transcript_language = 'en' else: - transcript_language = self.transcripts.keys()[0] + transcript_language = sorted(self.transcripts.keys())[0] languages = { lang: display @@ -264,7 +266,7 @@ class VideoModule(VideoFields, XModule): languages['en'] = 'English' # OrderedDict for easy testing of rendered context in tests - transcript_languages = OrderedDict(sorted(languages.items(), key=itemgetter(1))) + sorted_languages = OrderedDict(sorted(languages.items(), key=itemgetter(1))) return self.system.render_template('video.html', { 'ajax_url': self.system.ajax_url + '/save_user_state', @@ -289,7 +291,7 @@ class VideoModule(VideoFields, XModule): 'yt_test_timeout': 1500, 'yt_test_url': settings.YOUTUBE_TEST_URL, 'transcript_language': transcript_language, - 'transcript_languages': json.dumps(transcript_languages), + 'transcript_languages': json.dumps(sorted_languages), 'transcript_translation_url': self.runtime.handler_url(self, 'transcript').rstrip('/?') + '/translation', 'transcript_available_translations_url': self.runtime.handler_url(self, 'transcript').rstrip('/?') + '/available_translations', }) diff --git a/lms/djangoapps/courseware/tests/test_video_mongo.py b/lms/djangoapps/courseware/tests/test_video_mongo.py index 80849286ea..5b74762b4a 100644 --- a/lms/djangoapps/courseware/tests/test_video_mongo.py +++ b/lms/djangoapps/courseware/tests/test_video_mongo.py @@ -208,8 +208,8 @@ class TestGetHtmlMethod(BaseTestXmodule): context = self.item_descriptor.render('student_view').content expected_context.update({ - 'transcript_languages': '{"en": "English"}' if self.item_descriptor.sub else '{}', - 'transcript_language': 'en' if self.item_descriptor.sub else json.dumps(None), + 'transcript_languages': '{"en": "English"}', + 'transcript_language': 'en', 'transcript_translation_url': self.item_descriptor.xmodule_runtime.handler_url( self.item_descriptor, 'transcript' ).rstrip('/?') + '/translation',