Add user email verification

This commit is contained in:
Khanh Ngo
2019-12-21 21:43:03 +07:00
parent 49908b9039
commit 7739bf7cfc
18 changed files with 495 additions and 20 deletions

View File

@ -25,6 +25,7 @@ class Setting(db.Model):
'allow_user_create_domain': False,
'bg_domain_updates': False,
'site_name': 'PowerDNS-Admin',
'site_url': 'http://localhost:9191',
'session_timeout': 10,
'warn_session_timeout': True,
'pdns_api_url': '',
@ -33,6 +34,7 @@ class Setting(db.Model):
'pdns_version': '4.1.1',
'local_db_enabled': True,
'signup_enabled': True,
'verify_user_email': False,
'ldap_enabled': False,
'ldap_type': 'ldap',
'ldap_uri': '',

View File

@ -26,6 +26,7 @@ class User(db.Model):
lastname = db.Column(db.String(64))
email = db.Column(db.String(128))
otp_secret = db.Column(db.String(16))
confirmed = db.Column(db.Boolean, default=False)
role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
def __init__(self,
@ -38,6 +39,7 @@ class User(db.Model):
role_id=None,
email=None,
otp_secret=None,
confirmed=False,
reload_info=True):
self.id = id
self.username = username
@ -48,6 +50,7 @@ class User(db.Model):
self.role_id = role_id
self.email = email
self.otp_secret = otp_secret
self.confirmed = confirmed
if reload_info:
user_info = self.get_user_info_by_id(
@ -61,6 +64,7 @@ class User(db.Model):
self.email = user_info.email
self.role_id = user_info.role_id
self.otp_secret = user_info.otp_secret
self.confirmed = user_info.confirmed
def is_authenticated(self):
return True
@ -524,6 +528,13 @@ class User(db.Model):
db.session.rollback()
return False
def update_confirmed(self, confirmed):
"""
Update user email confirmation status
"""
self.confirmed = confirmed
db.session.commit()
def get_domains(self):
"""
Get list of domains which the user is granted to have