""" This file implements the Middleware support for the Open edX platform. A microsite enables the following features: 1) Mapping of sub-domain name to a 'brand', e.g. foo-university.edx.org 2) Present a landing page with a listing of courses that are specific to the 'brand' 3) Ability to swap out some branding elements in the website """ from microsite_configuration import microsite class MicrositeMiddleware(object): """ Middleware class which will bind configuration information regarding 'microsites' on a per request basis. The actual configuration information is taken from Django settings information """ def process_request(self, request): """ Middleware entry point on every request processing. This will associate a request's domain name with a 'University' and any corresponding microsite configuration information """ microsite.clear() domain = request.META.get('HTTP_HOST', None) microsite.set_by_domain(domain) return None def process_response(self, request, response): """ Middleware entry point for request completion. """ microsite.clear() return response