Skip to content

Instantly share code, notes, and snippets.

@roadsideseb
Created September 2, 2014 07:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roadsideseb/af1a849c28e783aeacd7 to your computer and use it in GitHub Desktop.
Save roadsideseb/af1a849c28e783aeacd7 to your computer and use it in GitHub Desktop.
Example for enforcing login required globally using Django's internal URL patterns and resolver
# haiku/urls.py
urlpattnerns = [
# all the private ones
]
public_urlpatterns = [
url(....)
]
urlpattnerns += public_urlpattners
# middleware
from django.conf.urls import url, RegexURLResolver
from haiku.url import public_urlpatterns
PUBLIC_RESOLVER = RegexURLResolver(r'^/', public_urlpatterns)
class LoginMiddleware(object):
def process_request(self, request):
if request user.is_authenticated():
return
try:
PUBLIC_RESOLVER.resolve(request.path_info)
except Resolver404:
return HttpResponseRedirect(self.login_url())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment