Skip to content

Commit cafee2e

Browse files
Update models.py
1 parent 9a74c0c commit cafee2e

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

app/models.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,13 @@ class User(UserMixin, db.Model):
3030

3131
def __init__(self, **kwargs):
3232
super(User, self).__init__(**kwargs)
33-
# Generate encryption key for this user
33+
# Generate encryption key for this user if not provided
3434
if not self.encryption_key:
35-
self.encryption_key = Fernet.generate_key().decode()
35+
self.generate_encryption_key()
36+
37+
def generate_encryption_key(self):
38+
"""Generate a new encryption key"""
39+
self.encryption_key = Fernet.generate_key().decode()
3640

3741
def set_password(self, password):
3842
self.password_hash = generate_password_hash(password)
@@ -42,9 +46,16 @@ def check_password(self, password):
4246

4347
def set_da_password(self, password):
4448
"""Encrypt and store DirectAdmin password"""
49+
if not self.encryption_key:
50+
self.generate_encryption_key()
51+
4552
if password:
46-
f = Fernet(self.encryption_key.encode())
47-
self.da_password_encrypted = f.encrypt(password.encode()).decode()
53+
try:
54+
f = Fernet(self.encryption_key.encode())
55+
self.da_password_encrypted = f.encrypt(password.encode()).decode()
56+
except Exception as e:
57+
print(f"Error encrypting password: {e}")
58+
raise
4859
else:
4960
self.da_password_encrypted = None
5061

@@ -54,7 +65,8 @@ def get_da_password(self):
5465
try:
5566
f = Fernet(self.encryption_key.encode())
5667
return f.decrypt(self.da_password_encrypted.encode()).decode()
57-
except:
68+
except Exception as e:
69+
print(f"Error decrypting password: {e}")
5870
return None
5971
return None
6072

0 commit comments

Comments
 (0)