]> git.parisson.com Git - django-social-auth.git/commitdiff
Issue warnings for deprecated settings. Refs gh-90
authorMatías Aguirre <matiasaguirre@gmail.com>
Mon, 17 Oct 2011 07:11:25 +0000 (05:11 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Mon, 17 Oct 2011 07:11:25 +0000 (05:11 -0200)
social_auth/backends/pipeline/__init__.py
social_auth/backends/pipeline/associate.py
social_auth/backends/pipeline/social.py
social_auth/backends/pipeline/user.py

index 360545b6b9a8781e0190a567c4beae3b27b7d429..6af8113e062b3670e5d662bc3a720f9569e71551 100644 (file)
@@ -5,8 +5,19 @@ to next pipeline item. Pipelines must take **kwargs parameters to avoid
 failure. At some point a pipeline entry must create a UserSocialAuth instance
 and load it to the output if the user logged in correctly.
 """
+import warnings
+
+from django.conf import settings
+
 from social_auth.models import User
 
 
 USERNAME = 'username'
 USERNAME_MAX_LENGTH = User._meta.get_field(USERNAME).max_length
+
+
+def warn_setting(name, func_name):
+    """Warn about deprecated settings."""
+    if hasattr(settings, name):
+        msg = '%s is deprecated, disable or override "%s" pipeline instead'
+        warnings.warn(msg % (name, func_name))
index c605ddabac7e630726bc2587a354ef2ce5b935cb..1e260fd199f78add2fd74abf18a462f343e6ccfc 100644 (file)
@@ -2,12 +2,15 @@ from django.conf import settings
 from django.core.exceptions import MultipleObjectsReturned
 
 from social_auth.models import User
+from social_auth.backends.pipeline import warn_setting
 
 
 def associate_by_email(details, *args, **kwargs):
     """Return user entry with same email address as one returned on details."""
     email = details.get('email')
 
+    warn_setting('SOCIAL_AUTH_ASSOCIATE_BY_MAIL', 'associate_by_email')
+
     if email and getattr(settings, 'SOCIAL_AUTH_ASSOCIATE_BY_MAIL', False):
         # try to associate accounts registered with the same email address,
         # only if it's a single object. ValueError is raised if multiple
index d7bb6f17d13c94009bc486288bfae13fc282b045..b1ad80ce087a1c615235202fd461b876f1f28775 100644 (file)
@@ -2,6 +2,7 @@ from django.conf import settings
 from django.db.utils import IntegrityError
 
 from social_auth.models import User, UserSocialAuth
+from social_auth.backends.pipeline import warn_setting
 
 
 def social_auth_user(backend, uid, user=None, *args, **kwargs):
@@ -45,6 +46,8 @@ def load_extra_data(backend, details, response, social_user, uid, user,
     """Load extra data from provider and store it on current UserSocialAuth
     extra_data field.
     """
+    warn_setting('SOCIAL_AUTH_EXTRA_DATA', 'load_extra_data')
+
     if getattr(settings, 'SOCIAL_AUTH_EXTRA_DATA', True):
         extra_data = backend.extra_data(user, uid, response, details)
         if extra_data and social_user.extra_data != extra_data:
index a7c52985855067bfd5e4bd2f7c372112c104408d..c011ec2d34d94eac892519bbc573ae1597afc7b9 100644 (file)
@@ -3,7 +3,7 @@ from uuid import uuid4
 from django.conf import settings
 
 from social_auth.models import User
-from social_auth.backends.pipeline import USERNAME, USERNAME_MAX_LENGTH
+from social_auth.backends.pipeline import USERNAME, USERNAME_MAX_LENGTH, warn_setting
 from social_auth.signals import socialauth_not_registered, \
                                 socialauth_registered, \
                                 pre_update
@@ -16,10 +16,12 @@ def get_username(details, user=None, *args, **kwargs):
     if user:
         return {'username': user.username}
 
-    FORCE_RANDOM_USERNAME = getattr(settings,
-                                    'SOCIAL_AUTH_FORCE_RANDOM_USERNAME',
-                                    False)
-    if FORCE_RANDOM_USERNAME:
+    warn_setting('SOCIAL_AUTH_FORCE_RANDOM_USERNAME', 'get_username')
+    warn_setting('SOCIAL_AUTH_DEFAULT_USERNAME', 'get_username')
+    warn_setting('SOCIAL_AUTH_UUID_LENGTH', 'get_username')
+    warn_setting('SOCIAL_AUTH_USERNAME_FIXER', 'get_username')
+
+    if getattr(settings, 'SOCIAL_AUTH_FORCE_RANDOM_USERNAME', False):
         username = uuid4().get_hex()
     elif details.get(USERNAME):
         username = details[USERNAME]
@@ -53,13 +55,16 @@ def get_username(details, user=None, *args, **kwargs):
     return {'username': final_username}
 
 
-def create_user(backend, details, response, uid, username, user=None, *args, **kwargs):
+def create_user(backend, details, response, uid, username, user=None, *args,
+                **kwargs):
     """Create user. Depends on get_username pipeline."""
     if user:
         return {'user': user}
     if not username:
         return None
 
+    warn_setting('SOCIAL_AUTH_CREATE_USERS', 'create_user')
+
     if not getattr(settings, 'SOCIAL_AUTH_CREATE_USERS', True):
         # Send signal for cases where tracking failed registering is useful.
         socialauth_not_registered.send(sender=backend.__class__,
@@ -79,6 +84,8 @@ def update_user_details(backend, details, response, user, is_new=False, *args, *
     """Update user details using data from provider."""
     changed = False  # flag to track changes
 
+    warn_setting('SOCIAL_AUTH_CHANGE_SIGNAL_ONLY', 'update_user_details')
+
     # check if values update should be left to signals handlers only
     if not getattr(settings, 'SOCIAL_AUTH_CHANGE_SIGNAL_ONLY', False):
         for name, value in details.iteritems():