]> git.parisson.com Git - django-social-auth.git/commitdiff
Add last login backend name to session on login. Closes gh-76
authorMatías Aguirre <matiasaguirre@gmail.com>
Fri, 27 May 2011 15:16:27 +0000 (12:16 -0300)
committerMatías Aguirre <matiasaguirre@gmail.com>
Fri, 27 May 2011 15:16:27 +0000 (12:16 -0300)
example/app/views.py
example/templates/done.html
social_auth/views.py

index a17a0cf54b7913b194acb9793bcf77081d8b0131..ecc9825f515ae2c020a622b4481478e095a5b3a4 100644 (file)
@@ -22,6 +22,7 @@ def done(request):
     names = request.user.social_auth.values_list('provider', flat=True)
     ctx = dict((name.lower().replace('-', '_'), True) for name in names)
     ctx['version'] = version
+    ctx['last_login'] = request.session.get('social_auth_last_login_backend')
     return render_to_response('done.html', ctx, RequestContext(request))
 
 def error(request):
index 2b67f3df5488dd58e2487f4071a523fdc2e5199a..f5abc9b625610dd43c5c0839b6bbcf60ffe8e923 100644 (file)
@@ -11,6 +11,7 @@
     <tr class="odd"><th>Email:</th> <td>{{ user.email|default:"Not provided" }}</td></tr>
     <tr class="even"><th>First name:</th> <td>{{ user.first_name|default:"Not provided" }}</td></tr>
     <tr class="odd"><th>Last name:</th> <td>{{ user.last_name|default:"Not provided" }}</td></tr>
+    <tr class="even"><th>Last login backend:</th> <td>{{ last_login }}</td></tr>
   </table>
 </div>
 
index 5e943755fbb6946326b617704fbd1d1c5b5d3ecf..026be13c4e228c436b27f81fdee20679abd66924 100644 (file)
@@ -13,6 +13,8 @@ from social_auth.utils import sanitize_redirect
 
 DEFAULT_REDIRECT = getattr(settings, 'SOCIAL_AUTH_LOGIN_REDIRECT_URL', '') or \
                    getattr(settings, 'LOGIN_REDIRECT_URL', '')
+SOCIAL_AUTH_LAST_LOGIN = getattr(settings, 'SOCIAL_AUTH_LAST_LOGIN',
+                                 'social_auth_last_login_backend')
 
 
 def auth(request, backend):
@@ -56,6 +58,9 @@ def complete_process(request, backend):
             if social_user.expiration_delta():
                 request.session.set_expiry(social_user.expiration_delta())
         url = request.session.pop(REDIRECT_FIELD_NAME, '') or DEFAULT_REDIRECT
+
+        # store last login backend name in session
+        request.session[SOCIAL_AUTH_LAST_LOGIN] = social_user.provider
     else:
         url = getattr(settings, 'LOGIN_ERROR_URL', settings.LOGIN_URL)
     return HttpResponseRedirect(url)