from django.http import HttpResponse,  HttpResponseRedirect
from django.contrib.sites.models import Site

def prefered_domain(fn):
    """
    Allows for a preferred domain name to be enforced on a per_view basis
    if no domain is found, it fails silently.
    """
    def _prefered_domain(request, site_id=1):
        try:
            site = Site.objects.get(id=site_id)
            if request.META['HTTP_HOST'] not in site.domain:
                return HttpResponseRedirect('http://%s%s' % (site.domain, request.META['PATH_INFO']) )
        except Site.DoesNotExist:
            pass
        return fn(request)
    return _prefered_domain