Skip to content

Commit 9a74c0c

Browse files
Update settings.py
1 parent 0b95982 commit 9a74c0c

File tree

1 file changed

+35
-22
lines changed

1 file changed

+35
-22
lines changed

app/settings.py

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from flask_login import login_required, current_user
33
from app.models import db
44
from app.directadmin_api import DirectAdminAPI
5+
import traceback
56

67
settings_bp = Blueprint('settings', __name__, url_prefix='/settings')
78

@@ -23,34 +24,45 @@ def get_da_config():
2324
@settings_bp.route('/api/da-config', methods=['POST'])
2425
@login_required
2526
def update_da_config():
26-
data = request.json
27+
try:
28+
data = request.json
29+
print(f"Received settings update: {data}") # Debug log
30+
31+
# Validate required fields
32+
required_fields = ['da_server', 'da_username', 'da_domain']
33+
for field in required_fields:
34+
if not data.get(field):
35+
return jsonify({'error': f'{field} is required'}), 400
2736

28-
# Validate required fields
29-
required_fields = ['da_server', 'da_username', 'da_domain']
30-
for field in required_fields:
31-
if not data.get(field):
32-
return jsonify({'error': f'{field} is required'}), 400
37+
# Update DirectAdmin settings
38+
current_user.da_server = data['da_server'].rstrip('/')
39+
current_user.da_username = data['da_username']
40+
current_user.da_domain = data['da_domain']
3341

34-
# Update DirectAdmin settings
35-
current_user.da_server = data['da_server'].rstrip('/')
36-
current_user.da_username = data['da_username']
37-
current_user.da_domain = data['da_domain']
42+
# Only update password if provided
43+
if data.get('da_password'):
44+
print("Setting new DA password") # Debug log
45+
current_user.set_da_password(data['da_password'])
3846

39-
# Only update password if provided
40-
if data.get('da_password'):
41-
current_user.set_da_password(data['da_password'])
47+
db.session.commit()
48+
print("Settings saved successfully") # Debug log
4249

43-
db.session.commit()
50+
return jsonify({'success': True, 'message': 'DirectAdmin settings updated successfully'})
4451

45-
return jsonify({'success': True, 'message': 'DirectAdmin settings updated successfully'})
52+
except Exception as e:
53+
print(f"Error updating settings: {str(e)}") # Debug log
54+
print(traceback.format_exc()) # Full traceback
55+
db.session.rollback()
56+
return jsonify({'error': f'Failed to save settings: {str(e)}'}), 500
4657

4758
@settings_bp.route('/api/test-connection', methods=['POST'])
4859
@login_required
4960
def test_connection():
5061
"""Test DirectAdmin connection with provided credentials"""
51-
data = request.json
52-
5362
try:
63+
data = request.json
64+
print(f"Testing connection with: {data.get('da_server')}") # Debug log
65+
5466
# Use provided credentials or current user's
5567
server = data.get('da_server') or current_user.da_server
5668
username = data.get('da_username') or current_user.da_username
@@ -61,13 +73,14 @@ def test_connection():
6173

6274
# Test connection
6375
api = DirectAdminAPI(server, username, password)
64-
# Try to get domains as a test
65-
response = api._make_request('API_SHOW_DOMAINS')
76+
success, message = api.test_connection()
6677

67-
if response.status_code == 200:
68-
return jsonify({'success': True, 'message': 'Connection successful!'})
78+
if success:
79+
return jsonify({'success': True, 'message': message})
6980
else:
70-
return jsonify({'error': 'Connection failed'}), 400
81+
return jsonify({'error': message}), 400
7182

7283
except Exception as e:
84+
print(f"Test connection error: {str(e)}") # Debug log
85+
print(traceback.format_exc()) # Full traceback
7386
return jsonify({'error': str(e)}), 500

0 commit comments

Comments
 (0)