From 94d2332481aef1203a44ae1960df36812bfaa869 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mat=C3=ADas=20Aguirre?= Date: Mon, 9 Jul 2012 02:48:03 -0300 Subject: [PATCH] Small docs and code improves. Refs #384 --- README.rst | 11 +++++++++++ doc/configuration.rst | 17 +++++++++++------ social_auth/context_processors.py | 28 +++++++++++++++------------- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/README.rst b/README.rst index 1dc3282..5759950 100644 --- a/README.rst +++ b/README.rst @@ -234,6 +234,7 @@ Configuration 'social_auth.context_processors.social_auth_by_name_backends', 'social_auth.context_processors.social_auth_backends', 'social_auth.context_processors.social_auth_by_type_backends', + 'social_auth.context_processors.social_auth_login_redirect' ) * ``social_auth_by_name_backends``: @@ -253,6 +254,16 @@ Configuration Simiar to ``social_auth_backends`` but each value is grouped by backend type ``openid``, ``oauth2`` and ``oauth``. + * ``social_auth_login_redirect``: + For man in the middle redirects (ie authenticating via a login + required decorator), a convenince query string can be added to your context + for templates. On your login options page:: + + ... + + allows for a continuous login. Useful if multiple login options are + presented. + Check ``social_auth.context_processors`` for details. **Note**: diff --git a/doc/configuration.rst b/doc/configuration.rst index 71347e2..2aec520 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -116,6 +116,7 @@ Configuration 'social_auth.context_processors.social_auth_by_name_backends', 'social_auth.context_processors.social_auth_backends', 'social_auth.context_processors.social_auth_by_type_backends', + 'social_auth.context_processors.social_auth_login_redirect', ) * ``social_auth_by_name_backends``: @@ -134,18 +135,22 @@ Configuration Simiar to ``social_auth_backends`` but each value is grouped by backend type ``openid``, ``oauth2`` and ``oauth``. + * ``social_auth_login_redirect``: + For man in the middle redirects (ie authenticating via a login + required decorator), a convenince query string can be added to your context + for templates. On your login options page:: + + ... + + allows for a continuous login. Useful if multiple login options are + presented. + Check ``social_auth.context_processors`` for details. **Note**: ``social_auth_backends`` and ``social_auth_by_type_backends`` don't play nice together. - **Also:** For man in the middle redirects (ie authenticating via a login required decorator), a convenince query string can be added to your context for templates. On your login options page: ```` allows for a continuous login. Useful if multiple login options are presented. - - To enable, add the following Context Processor:: - - 'social_auth.context_processors.social_auth_login_redirect', - - Sync database to create needed models:: ./manage.py syncdb diff --git a/social_auth/context_processors.py b/social_auth/context_processors.py index 6a44423..f22ae96 100644 --- a/social_auth/context_processors.py +++ b/social_auth/context_processors.py @@ -2,12 +2,13 @@ from social_auth.models import UserSocialAuth from social_auth.backends import get_backends from social_auth.utils import group_backend_by_type -from django.contrib.auth import REDIRECT_FIELD_NAME as auth_redirect +from django.contrib.auth import REDIRECT_FIELD_NAME from django.conf import settings # Note: social_auth_backends, social_auth_by_type_backends and # social_auth_by_name_backends don't play nice together. + def social_auth_backends(request): """Load Social Auth current user data to context. Will add a output from backends_data to context under social_auth key. @@ -73,17 +74,18 @@ def backends_data(user): values['associated'] = associated values['not_associated'] = not_associated return values - + + def social_auth_login_redirect(request): - """Load current redirect to context - Provides access to the redirect variable as named in the settings file - Assumes that the redirect field name is set in the settings file - """ - redirect_name = getattr(settings, 'REDIRECT_FIELD_NAME', auth_redirect) - redirect_value = request.REQUEST.get(redirect_name, '') - context = { - 'REDIRECT_FIELD_NAME' : redirect_name, - 'REDIRECT_FIELD_VALUE' : redirect_value, - 'redirect_querystring' : redirect_name + '=' + redirect_value + """Load current redirect to context.""" + redirect_value = request.REQUEST.get(REDIRECT_FIELD_NAME) + if redirect_value: + redirect_querystring = REDIRECT_FIELD_NAME + '=' + redirect_value + else: + redirect_querystring = '' + + return { + 'REDIRECT_FIELD_NAME': REDIRECT_FIELD_NAME, + 'REDIRECT_FIELD_VALUE': redirect_value, + 'redirect_querystring': redirect_querystring } - return context -- 2.39.5