expephalon-demomodule/smsotp/models.py

26 lines
868 B
Python
Raw Normal View History

from django.db.models import Model, CharField, ForeignKey, CASCADE, DateTimeField
from django.contrib.auth import get_user_model
from dbsettings.functions import getValue
from smsotp.helpers import generate_token
from core.modules.sms import get_default_sms_provider
# Create your models here.
class OTPToken(Model):
token = CharField(max_length=32, default=generate_token)
user = ForeignKey(get_user_model(), CASCADE)
creation = DateTimeField(auto_now_add=True)
def send_sms(self, text=getValue("smsotp.text", "Your authentication token is:"), number=None):
if "_TOKEN_" in text:
text = text.replace("_TOKEN_", self.token)
else:
text = f"{text} {self.token}"
number = number or self.user.profile.mobile
provider = get_default_sms_provider()
provider.sendSMS(number, text)