|
24 | 24 | # directory that's processed before the default django.contrib.admin) |
25 | 25 | # |
26 | 26 |
|
27 | | -from django.http import HttpResponse, HttpResponseRedirect |
28 | | -from django.views.decorators.csrf import csrf_exempt |
29 | | -from django.contrib.auth.models import User |
30 | | -from django.contrib.auth.backends import ModelBackend |
| 27 | +from django.conf import settings |
31 | 28 | from django.contrib.auth import login as django_login |
32 | 29 | from django.contrib.auth import logout as django_logout |
33 | | -from django.dispatch import Signal |
| 30 | +from django.contrib.auth.backends import ModelBackend |
| 31 | +from django.contrib.auth.models import User |
34 | 32 | from django.db import transaction |
35 | | -from django.conf import settings |
| 33 | +from django.dispatch import Signal |
| 34 | +from django.http import HttpResponse, HttpResponseRedirect |
| 35 | +from django.views.decorators.csrf import csrf_exempt |
36 | 36 |
|
37 | 37 | import base64 |
| 38 | +import hmac |
38 | 39 | import json |
39 | 40 | import socket |
40 | | -import hmac |
41 | | -from urllib.parse import urlencode, parse_qs |
| 41 | +import time |
| 42 | +from urllib.parse import parse_qs, urlencode |
| 43 | + |
42 | 44 | import requests |
| 45 | +from Cryptodome import Random |
43 | 46 | from Cryptodome.Cipher import AES |
44 | 47 | from Cryptodome.Hash import SHA |
45 | | -from Cryptodome import Random |
46 | | -import time |
47 | | - |
48 | 48 |
|
49 | 49 | # This signal fires when a user is created based on data from upstream. |
50 | 50 | auth_user_created_from_upstream = Signal() |
|
0 commit comments