summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2020-02-26 17:21:52 +0000
committerMagnus Hagander2020-02-26 17:21:52 +0000
commitea3f964cf69b79b6fd7bf85673b1eaac8747c4dc (patch)
tree3267dfc9aa1a07a77552c5b4fb9dcbcb66013215
parent88ba279a01e50b5cd1261ebc8e8ee73ee9f43cce (diff)
Sync up community auth plugin to latest-and-greatest
-rw-r--r--pgcommitfest/auth.py25
1 files changed, 19 insertions, 6 deletions
diff --git a/pgcommitfest/auth.py b/pgcommitfest/auth.py
index 34cbd9a..4ae553b 100644
--- a/pgcommitfest/auth.py
+++ b/pgcommitfest/auth.py
@@ -30,9 +30,9 @@ import json
import socket
from urllib.parse import urlparse, urlencode, parse_qs
import requests
-from Crypto.Cipher import AES
-from Crypto.Hash import SHA
-from Crypto import Random
+from Cryptodome.Cipher import AES
+from Cryptodome.Hash import SHA
+from Cryptodome import Random
import time
@@ -58,7 +58,7 @@ def login(request):
r = Random.new()
iv = r.read(16)
encryptor = AES.new(SHA.new(settings.SECRET_KEY.encode('ascii')).digest()[:16], AES.MODE_CBC, iv)
- cipher = encryptor.encrypt(s + ' ' * (16 - (len(s) % 16))) # pad to 16 bytes
+ cipher = encryptor.encrypt(s.encode('ascii') + b' ' * (16 - (len(s) % 16))) # pad to 16 bytes
return HttpResponseRedirect("%s?d=%s$%s" % (
settings.PGAUTH_REDIRECT,
@@ -140,6 +140,18 @@ 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],
@@ -191,8 +203,9 @@ def user_search(searchterm=None, userid=None):
else:
q = {'s': searchterm}
- r = requests.get('{0}search/'.format(settings.PGAUTH_REDIRECT),
- params=q,
+ r = requests.get(
+ '{0}search/'.format(settings.PGAUTH_REDIRECT),
+ params=q,
)
if r.status_code != 200:
return []