Python3 Support

This commit is contained in:
Mohamed ElKalioby
2019-01-23 10:42:50 +03:00
parent b199c86993
commit 6efd643022
11 changed files with 27 additions and 23 deletions

8
mfa/Common.py Normal file
View File

@@ -0,0 +1,8 @@
from django.conf import settings
from django.core.mail import EmailMessage
def send(to,subject,body):
From = "%s <%s>" % (settings.EMAIL_FROM, settings.EMAIL_HOST_USER)
email = EmailMessage(subject,body,From,to)
email.content_subtype = "html"
return email.send(False)

View File

@@ -5,19 +5,13 @@ from random import randint
from .models import *
from django.template.context import RequestContext
from .views import login
from .Common import send
def sendEmail(request,username,secret):
from django.contrib.auth import get_user_model
User = get_user_model()
user=User.objects.get(username=username)
print secret
res=render_to_response("mfa_email_token_template.html",{"request":request,"user":user,'otp':secret})
from django.conf import settings
from django.core.mail import EmailMessage
From = "%s <%s>" % (settings.EMAIL_FROM, settings.EMAIL_HOST_USER)
email = EmailMessage("OTP",res.content,From,[user.email] )
email.content_subtype = "html"
return email.send(False)
return send([user.email],"OTP", res.content)
def start(request):
context = csrf(request)

View File

@@ -105,8 +105,8 @@ def start(request):
def send_email(request):
body=render(request,"TrustedDevices/email.html",{}).content
from Registry_app.Common import send
if send(request.user.email,"Add Trusted Device Link",body,delay=False):
from .Common import send
if send([request.user.email],"Add Trusted Device Link",body):
res="Sent Successfully"
else:
res="Error occured, please try again later."

View File

@@ -41,14 +41,14 @@ def validate(request,username):
import datetime, random
data = simplejson.loads(request.POST["response"])
print "Checking Errors"
res= check_errors(request,data)
if res!=True:
return res
print "Checking Challenge"
challenge = request.session.pop('_u2f_challenge_')
device, c, t = complete_authentication(challenge, data, [settings.U2F_APPID])
print device
key=User_Keys.objects.get(username=username,properties__shas="$.device.publicKey=%s"%device["publicKey"])
key.last_used=timezone.now()
key.save()

View File

@@ -1 +1 @@
import urls
from . import urls

View File

@@ -1,8 +1,6 @@
import pyotp
from .models import *
import TrustedDevice
import U2F, FIDO2
import totp
from . import TrustedDevice, U2F, FIDO2, totp
import simplejson
from django.shortcuts import HttpResponse
from mfa.views import verify,goto

View File

@@ -2,8 +2,7 @@ from django.db import models
from jsonfield import JSONField
from jose import jwt
from django.conf import settings
from jsonLookup import hasLookup,shasLookup
JSONField.register_lookup(hasLookup)
from jsonLookup import shasLookup
JSONField.register_lookup(shasLookup)
class User_Keys(models.Model):

View File

@@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse
from django.template.context_processors import csrf
from django.template.context import RequestContext
from django.conf import settings
import TrustedDevice
from . import TrustedDevice
from user_agents import parse
def index(request):
keys=[]
@@ -24,7 +24,7 @@ def verify(request,username):
#request.session["base_password"] = password
keys=User_Keys.objects.filter(username=username,enabled=1)
methods=list(set([k.key_type for k in keys]))
print methods
if "Trusted Device" in methods and not request.session.get("checked_trusted_device",False):
if TrustedDevice.verify(request):
return login(request)