I think I must be doing something fundamentally wrong since this seems
like an easy problem...

I'm building a site, I want all ips not in INTERNAL_IPS to get an
"under construction" page and my internal ips to get the real site.
What I'm trying to do is call the application urlconf via the resolve
function.

The redirect to the construction page works fine.

The resolve seems to work since the /admin/ pages work but
django_authopenid do not, I get strange errors like "Reverse for
'user_sendpw' with arguments '()' and keyword arguments '{}' not
found."

If I change settings.py:ROOT_URLCONF to be "myapp.urls" then
authopenid works.

settings.py:
ROOT_URLCONF = 'redirector.urls'

redirector/urls.py:
urlpatterns = patterns('',
    (r'^', 'redirector.views.redirect' ),
)

redirector/views.py:
def redirect(request, *args, **kwargs):
    remote_addr = request.META['REMOTE_ADDR']
    is_internal = remote_addr in settings.INTERNAL_IPS

    if not is_internal:
        return render_to_response( 'construction.html' )

    uri = request.META.get('REQUEST_URI', '/' )

    # if we're an internal ip address then find the application
urlconf
    app = settings.SETTINGS_MODULE.split( "." )[0]
    app_urls = app + ".urls"

    # FANCY BIT IS RIGHT HERE
    view, args, kwargs = resolve( urlparse(uri)[2], app_urls )

    return view(request, *args, **kwargs)


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to