Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
django-branding / branding / middleware.py
Size: Mime:
from branding.models import Brand, Policy
import logging


logger = logging.getLogger(__name__)


class BrandMiddleware(object):
    def __init__(self, get_response=None):
        self.get_response = get_response

    def __call__(self, request):
        self.process_request(request)
        if self.get_response:
            return self.get_response(request)

    # noinspection PyMethodMayBeStatic
    def process_request(self, request):
        client_brand_param = request.GET.get('override_brand', '').lower()
        client_brand_header = request.META.get('HTTP_BRAND', '').lower()
        client_os_header = request.META.get('HTTP_OS', '').lower()
        client_version_header = request.META.get('HTTP_APPVERSION', '').lower()

        brand_name = client_brand_param or client_brand_header
        brand = None
        if brand_name:
            try:
                brand = Brand.objects.get(name__iexact=brand_name)
            except Brand.DoesNotExist:
                logger.warning('Invalid brand sent by a client: %s', brand_name)

        request.brand = brand
        request.client_os = client_os_header
        request.client_version = client_version_header


class PolicyMiddleware(object):
    def __init__(self, get_response=None):
        self.get_response = get_response

    def __call__(self, request):
        self.process_request(request)
        if self.get_response:
            return self.get_response(request)

    # noinspection PyMethodMayBeStatic
    def process_request(self, request):
        request.policy = None

        try:
            policy_number = int(request.META.get('HTTP_POLICY'))
        except (TypeError, ValueError):
            return

        try:
            request.policy = Policy.objects.get(number=policy_number)
        except Policy.DoesNotExist:
            return