Sync community auth plugin to be the latest-and-greatest
authorMagnus Hagander <magnus@hagander.net>
Wed, 26 Feb 2020 16:53:02 +0000 (17:53 +0100)
committerMagnus Hagander <magnus@hagander.net>
Wed, 26 Feb 2020 17:04:40 +0000 (18:04 +0100)
Combine changes from downstream projects (which were not that many
anymore)

tools/communityauth/sample/django/auth.py

index 79dac96cbe9d22513ee69d5bf4e2d8508ba42631..4ae553b2f78f5080e6ca577c57fb9e95f87f8fbf 100644 (file)
@@ -133,13 +133,25 @@ def auth_receive(request):
 a different username than %s.
 
 This is almost certainly caused by some legacy data in our database.
-Please send an email to webmaster@postgresql.eu, indicating the username
+Please send an email to webmaster@postgresql.org, indicating the username
 and email address from above, and we'll manually merge the two accounts
 for you.
 
 We apologize for the inconvenience.
 """ % (data['e'][0], data['u'][0]), content_type='text/plain')
 
+        if getattr(settings, 'PGAUTH_CREATEUSER_CALLBACK', None):
+            res = getattr(settings, 'PGAUTH_CREATEUSER_CALLBACK')(
+                data['u'][0],
+                data['e'][0],
+                ['f'][0],
+                data['l'][0],
+            )
+            # If anything is returned, we'll return that as our result.
+            # If None is returned, it means go ahead and create the user.
+            if res:
+                return res
+
         user = User(username=data['u'][0],
                     first_name=data['f'][0],
                     last_name=data['l'][0],