avoid local imports

This commit is contained in:
Tobias Bengfort
2021-06-23 08:26:35 +02:00
parent 6b132683a7
commit 0945561136
7 changed files with 26 additions and 34 deletions

View File

@@ -1,6 +1,15 @@
from django.contrib.auth import get_user_model
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.views.decorators.cache import never_cache
from django.template.context_processors import csrf
from django.utils import timezone
try:
from django.core.urlresolvers import reverse
except:
from django.urls import reverse
import datetime, random
from random import randint
from .models import *
@@ -11,8 +20,6 @@ from .Common import send
def sendEmail(request, username, secret):
"""Send Email to the user after rendering `mfa_email_token_template`"""
from django.contrib.auth import get_user_model
User = get_user_model()
key = getattr(User, "USERNAME_FIELD", "username")
kwargs = {key: username}
@@ -36,12 +43,6 @@ def start(request):
uk.key_type = "Email"
uk.enabled = 1
uk.save()
from django.http import HttpResponseRedirect
try:
from django.core.urlresolvers import reverse
except:
from django.urls import reverse
return HttpResponseRedirect(
reverse(
getattr(settings, "MFA_REDIRECT_AFTER_REGISTRATION", "mfa_home")
@@ -78,8 +79,6 @@ def auth(request):
)
request.session["mfa"] = mfa
from django.utils import timezone
uk.last_used = timezone.now()
uk.save()
return login(request)

View File

@@ -1,3 +1,5 @@
import random
import time
import traceback
from fido2.client import ClientData
@@ -154,15 +156,11 @@ def authenticate_complete(request):
)
if request.session.get("mfa_recheck", False):
import time
request.session["mfa"]["rechecked_at"] = time.time()
return HttpResponse(
simplejson.dumps({"status": "OK"}), content_type="application/json"
)
else:
import random
keys = User_Keys.objects.filter(
username=username, key_type="FIDO2", enabled=1
)

View File

@@ -1,5 +1,6 @@
import string
import random
from datetime import datetime, timedelta
from django.shortcuts import render
from django.http import HttpResponse
from django.template.context import RequestContext
@@ -7,6 +8,9 @@ from django.template.context_processors import csrf
from .models import *
import user_agents
from django.utils import timezone
from jose import jwt
from .Common import send
def id_generator(size=6, chars=string.ascii_uppercase + string.digits):
@@ -55,7 +59,6 @@ def getCookie(request):
if tk.properties["status"] == "trusted":
context = {"added": True}
response = render(request, "TrustedDevices/Done.html", context)
from datetime import datetime, timedelta
expires = datetime.now() + timedelta(days=180)
tk.expires = expires
@@ -124,8 +127,6 @@ def start(request):
def send_email(request):
body = render(request, "TrustedDevices/email.html", {}).content
from .Common import send
e = request.user.email
if e == "":
e = request.session.get("user", {}).get("email", "")
@@ -140,8 +141,6 @@ def send_email(request):
def verify(request):
if request.COOKIES.get("deviceid", None):
from jose import jwt
json = jwt.decode(request.COOKIES.get("deviceid"), settings.SECRET_KEY)
if json["username"].lower() == request.session["base_username"].lower():
try:

View File

@@ -1,3 +1,7 @@
import datetime, random
import hashlib
import time
from u2flib_server.u2f import (
begin_registration,
begin_authentication,
@@ -32,8 +36,6 @@ def recheck(request):
def process_recheck(request):
x = validate(request, request.user.username)
if x == True:
import time
request.session["mfa"]["rechecked_at"] = time.time()
return HttpResponse(
simplejson.dumps({"recheck": True}), content_type="application/json"
@@ -53,8 +55,6 @@ def check_errors(request, data):
def validate(request, username):
import datetime, random
data = simplejson.loads(request.POST["response"])
res = check_errors(request, data)
@@ -105,8 +105,6 @@ def start(request):
def bind(request):
import hashlib
enroll = request.session["_u2f_enroll_"]
data = simplejson.loads(request.POST["response"])
device, cert = complete_registration(enroll, data, [settings.U2F_APPID])

View File

@@ -1,3 +1,5 @@
import time
from django.shortcuts import render
from django.views.decorators.cache import never_cache
from django.http import HttpResponse
@@ -28,8 +30,6 @@ def recheck(request):
context["mode"] = "recheck"
if request.method == "POST":
if verify_login(request, request.user.username, token=request.POST["otp"]):
import time
request.session["mfa"]["rechecked_at"] = time.time()
return HttpResponse(
simplejson.dumps({"recheck": True}), content_type="application/json"

View File

@@ -1,3 +1,7 @@
import importlib
from django.conf import settings
from django.contrib import auth
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from .models import *
@@ -60,9 +64,6 @@ def reset_cookie(request):
def login(request):
from django.contrib import auth
from django.conf import settings
callable_func = __get_callable_function__(settings.MFA_LOGIN_CALLBACK)
return callable_func(request, username=request.session["base_username"])
@@ -78,8 +79,6 @@ def delKey(request):
def __get_callable_function__(func_path):
import importlib
if not "." in func_path:
raise Exception("class Name should include modulename.classname")