Files
django-mfa2/mfa/models.py
Mohamed El-Kalioby 800f60ff53 Initial Import
2019-01-18 10:18:10 +03:00

22 lines
1.1 KiB
Python

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)
JSONField.register_lookup(shasLookup)
class User_Keys(models.Model):
username=models.CharField(max_length = 50)
properties=JSONField(null = True)
added_on=models.DateTimeField(auto_now_add = True)
key_type=models.CharField(max_length = 25,default = "TOTP")
enabled=models.BooleanField(default=True)
expires=models.DateTimeField(null=True,default=None,blank=True)
last_used=models.DateTimeField(null=True,default=None,blank=True)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
if self.key_type == "Trusted Device" and self.properties.get("signature","") == "":
self.properties["signature"]= jwt.encode({"username": self.username, "key": self.properties["key"]}, settings.SECRET_KEY)
super(User_Keys, self).save(force_insert=force_insert, force_update=force_update, using=using, update_fields=update_fields)