@@ -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