From 4d4d647d35ebfdb044d78c3638c41edab9baf2ff Mon Sep 17 00:00:00 2001 From: Mohamed ElKalioby Date: Thu, 25 Jan 2024 14:06:49 +0300 Subject: [PATCH] Some Fixes for pylint --- mfa/Common.py | 2 +- mfa/Email.py | 1 - mfa/FIDO2.py | 4 +--- mfa/TrustedDevice.py | 15 +++++++-------- mfa/U2F.py | 6 ++---- mfa/helpers.py | 5 ++--- mfa/middleware.py | 6 ++++-- mfa/models.py | 6 +----- mfa/recovery.py | 4 ++-- mfa/urls.py | 4 +++- mfa/views.py | 9 ++++----- 11 files changed, 27 insertions(+), 35 deletions(-) diff --git a/mfa/Common.py b/mfa/Common.py index 9137ea9..2263ba9 100644 --- a/mfa/Common.py +++ b/mfa/Common.py @@ -3,7 +3,7 @@ from django.core.mail import EmailMessage try: from django.urls import reverse -except: +except ImportError: from django.core.urlresolver import reverse # pyre-ignore[21] diff --git a/mfa/Email.py b/mfa/Email.py index 570a41f..ae165c4 100644 --- a/mfa/Email.py +++ b/mfa/Email.py @@ -5,7 +5,6 @@ import datetime, random from random import randint from .models import * -# from django.template.context import RequestContext from .views import login from .Common import send diff --git a/mfa/FIDO2.py b/mfa/FIDO2.py index 691ab0a..ec1cba4 100644 --- a/mfa/FIDO2.py +++ b/mfa/FIDO2.py @@ -1,16 +1,14 @@ -from fido2.client import Fido2Client from fido2.server import Fido2Server, PublicKeyCredentialRpEntity from fido2.webauthn import AttestationObject, AuthenticatorData, CollectedClientData from django.template.context_processors import csrf from django.views.decorators.csrf import csrf_exempt from django.shortcuts import render -# from django.template.context import RequestContext import simplejson from fido2 import cbor from django.http import HttpResponse from django.conf import settings -from .models import * +from .models import User_Keys from fido2.utils import websafe_decode, websafe_encode from fido2.webauthn import AttestedCredentialData from .views import login, reset_cookie diff --git a/mfa/TrustedDevice.py b/mfa/TrustedDevice.py index 9b10740..44c61dc 100644 --- a/mfa/TrustedDevice.py +++ b/mfa/TrustedDevice.py @@ -2,31 +2,30 @@ import string import random from django.shortcuts import render from django.http import HttpResponse -from django.template.context import RequestContext from django.template.context_processors import csrf -from .models import * import user_agents from django.utils import timezone from django.urls import reverse +from .models import User_Keys + def id_generator(size=6, chars=string.ascii_uppercase + string.digits): x = "".join(random.choice(chars) for _ in range(size)) if not User_Keys.objects.filter(properties__icontains='"key": "%s"' % x).exists(): return x - else: - return id_generator(size, chars) + return id_generator(size, chars) def getUserAgent(request): - id = id = request.session.get("td_id", None) - if id: - tk = User_Keys.objects.get(id=id) + device_id = request.session.get("td_id", None) + if device_id: + tk = User_Keys.objects.get(id=device_id) if tk.properties.get("user_agent", "") != "": ua = user_agents.parse(tk.properties["user_agent"]) res = render(None, "TrustedDevices/user-agent.html", context={"ua": ua}) return HttpResponse(res) - return HttpResponse("") + return HttpResponse("No Device provide", status=401) def trust_device(request): diff --git a/mfa/U2F.py b/mfa/U2F.py index 6e878da..2bed454 100644 --- a/mfa/U2F.py +++ b/mfa/U2F.py @@ -10,14 +10,12 @@ from cryptography.hazmat.primitives.serialization import Encoding from django.shortcuts import render import simplejson -# from django.template.context import RequestContext from django.template.context_processors import csrf -from django.conf import settings from django.http import HttpResponse -from .models import * +from django.conf import settings +from .models import User_Keys from .views import login from .Common import get_redirect_url -import datetime from django.utils import timezone diff --git a/mfa/helpers.py b/mfa/helpers.py index e22e573..9f9492b 100644 --- a/mfa/helpers.py +++ b/mfa/helpers.py @@ -1,9 +1,8 @@ -import pyotp -from .models import * +from .models import User_Keys from . import TrustedDevice, U2F, FIDO2, totp import simplejson from django.shortcuts import HttpResponse -from mfa.views import verify, goto +from mfa.views import verify def has_mfa(request, username): diff --git a/mfa/middleware.py b/mfa/middleware.py index 304edf2..416cc48 100644 --- a/mfa/middleware.py +++ b/mfa/middleware.py @@ -2,9 +2,11 @@ import time from django.http import HttpResponseRedirect try: - from django.core.urlresolvers import reverse # pyre-ignore[21] -except: from django.urls import reverse +except ImportError: + from django.core.urlresolvers import reverse # pyre-ignore[21] + + from django.conf import settings diff --git a/mfa/models.py b/mfa/models.py index a7a07f0..9e9d9aa 100644 --- a/mfa/models.py +++ b/mfa/models.py @@ -5,7 +5,7 @@ try: except ModuleNotFoundError: try: from jsonfield import JSONField # pyre-ignore[21] - except ModuleNotFoundError: + except ModuleNotFoundError as exc: raise ModuleNotFoundError( "Can't find a JSONField implementation, please install jsonfield if django < 4.0" ) @@ -13,10 +13,6 @@ except ModuleNotFoundError: from jose import jwt from django.conf import settings -# from jsonLookup import shasLookup, hasLookup -# JSONField.register_lookup(shasLookup) -# JSONField.register_lookup(hasLookup) - class User_Keys(models.Model): username = models.CharField(max_length=50) diff --git a/mfa/recovery.py b/mfa/recovery.py index d9dac91..dc24b15 100644 --- a/mfa/recovery.py +++ b/mfa/recovery.py @@ -3,12 +3,12 @@ from django.views.decorators.cache import never_cache from django.template.context_processors import csrf from django.contrib.auth.hashers import make_password, PBKDF2PasswordHasher from django.http import HttpResponse +from django.conf import settings from .Common import get_redirect_url -from .models import * +from .models import User_Keys import simplejson import random import string -import datetime from django.utils import timezone USER_FRIENDLY_NAME = "Recovery Codes" diff --git a/mfa/urls.py b/mfa/urls.py index 5d9c413..d0d738c 100644 --- a/mfa/urls.py +++ b/mfa/urls.py @@ -4,8 +4,10 @@ from . import views, totp, U2F, TrustedDevice, helpers, FIDO2, Email, recovery try: from django.urls import re_path as url -except: +except ImportError: from django.conf.urls import url # pyre-ignore[21] + + urlpatterns = [ url(r"totp/start/", totp.start, name="start_new_otop"), url(r"totp/getToken", totp.getToken, name="get_new_otop"), diff --git a/mfa/views.py b/mfa/views.py index 667d6f1..a472035 100644 --- a/mfa/views.py +++ b/mfa/views.py @@ -2,18 +2,17 @@ import importlib from django.shortcuts import render from django.http import HttpResponse, HttpResponseRedirect -from .models import * + try: from django.urls import reverse except: from django.core.urlresolvers import reverse # pyre-ignore[21] -from django.template.context_processors import csrf -from django.template.context import RequestContext -from django.conf import settings -from . import TrustedDevice from django.contrib.auth.decorators import login_required from user_agents import parse +from django.conf import settings +from . import TrustedDevice +from .models import User_Keys @login_required