]> git.parisson.com Git - django-social-auth.git/commitdiff
Redirect user to an error url if configured
authorMatías Aguirre <matiasaguirre@gmail.com>
Mon, 15 Nov 2010 21:55:58 +0000 (19:55 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Mon, 15 Nov 2010 21:55:58 +0000 (19:55 -0200)
README.rst
example/app/views.py
example/local_settings.py.template
example/urls.py
social_auth/views.py

index 33f40b9efcf8798935e43833d1df145f98364e44..5b765e5ea5fa8a2882ec325efcb2196143672f75 100644 (file)
@@ -55,6 +55,7 @@ Installation
 
     LOGIN_URL          = '/login-form/'
     LOGIN_REDIRECT_URL = '/logged-in/'
+    LOGIN_ERROR_URL    = '/login-error/'
 
   Check Django documentation at `Login url`_ and `Login redirect url`_
 
index 535be2ad67afd4ec19303a548208db58d03656bf..125227f981e2a74dc102da6574586cae6aeb5126 100644 (file)
@@ -66,6 +66,23 @@ def done(request):
     """).render(Context({'user':user})),
     content_type='text/html;charset=UTF-8')
 
+
+def error(request):
+    return HttpResponse(Template(
+    """
+    <html>
+      <head>
+        <title>Error</title>
+      </head>
+      <body>
+        <h1>Error!</h1>
+        <p>Sorry but some error made you impossible to login</p>
+        <a href="/">Homepage</a>
+      </body>
+    </html>
+    """).render(Context()),
+    content_type='text/html;charset=UTF-8')
+
 def logout(request):
     auth_logout(request)
     return HttpResponseRedirect('/')
index 6d4acc901d18d689dc9716aef15b55d596dc0480..8a478bfb882ef2d18dd69fdd8e11411994372580 100644 (file)
@@ -6,3 +6,4 @@ SOCIAL_AUTH_CREATE_USERS          = True
 SOCIAL_AUTH_FORCE_RANDOM_USERNAME = False
 SOCIAL_AUTH_DEFAULT_USERNAME      = 'socialauth_user'
 SOCIAL_AUTH_COMPLETE_URL_NAME     = 'social:complete'
+LOGIN_ERROR_URL                   = '/login/error/'
index 150a67665a4d0b4d4fe2ca8de977f500834dbf39..35c5382bf5c823bef9d684f1a00380c27c6a25b4 100644 (file)
@@ -1,7 +1,7 @@
 from django.conf.urls.defaults import *
 from django.contrib import admin
 
-from app.views import home, done, logout
+from app.views import home, done, logout, error
 
 
 admin.autodiscover()
@@ -9,6 +9,7 @@ admin.autodiscover()
 urlpatterns = patterns('',
     url(r'^$', home, name='home'), 
     url(r'^done/$', done, name='done'), 
+    url(r'^error/$', error, name='error'),
     url(r'^logout/$', logout, name='logout'), 
     url(r'', include('social_auth.urls', namespace='social')),
     url(r'^admin/', include(admin.site.urls)),
index 786463858dbf14339da4073d06fd5da02acb64e9..f76b98f8ae1261d94b523f4ee99161d6a2cb2d82 100644 (file)
@@ -43,5 +43,8 @@ def complete(request, backend):
     user = backend.auth_complete()
     if user and user.is_active:
         login(request, user)
-    return HttpResponseRedirect(request.session.pop(REDIRECT_FIELD_NAME,
-                                                    settings.LOGIN_REDIRECT_URL))
+        url = request.session.pop(REDIRECT_FIELD_NAME,
+                                  settings.LOGIN_REDIRECT_URL)
+    else:
+        url = getattr(settings, 'LOGIN_ERROR_URL', settings.LOGIN_URL)
+    return HttpResponseRedirect(url)