mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-03-25 21:40:07 +01:00
fix(users): homeDirectoryManager logging + duplicate username check
- Replace invalid logging.CyberCPLogFileWriter calls (logging is already CyberCPLogFileWriter); fixes AttributeError masking real errors in createUserDirectory - Same fix in homeDirectoryViews exception handlers - Pre-check Administrator username before save; use django.db.utils.IntegrityError - Fix userMigration error handler to call writeToFile correctly - Validate non-empty username after strip
This commit is contained in:
@@ -51,7 +51,7 @@ class HomeDirectoryManager:
|
||||
return home_dirs
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error detecting home directories: {str(e)}")
|
||||
logging.writeToFile(f"Error detecting home directories: {str(e)}")
|
||||
return []
|
||||
|
||||
@staticmethod
|
||||
@@ -103,7 +103,7 @@ class HomeDirectoryManager:
|
||||
return home_dirs[0]['path']
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error selecting best home directory: {str(e)}")
|
||||
logging.writeToFile(f"Error selecting best home directory: {str(e)}")
|
||||
return '/home'
|
||||
|
||||
@staticmethod
|
||||
@@ -134,7 +134,7 @@ class HomeDirectoryManager:
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error creating user directory: {str(e)}")
|
||||
logging.writeToFile(f"Error creating user directory: {str(e)}")
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
@@ -154,7 +154,7 @@ class HomeDirectoryManager:
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error setting ownership: {str(e)}")
|
||||
logging.writeToFile(f"Error setting ownership: {str(e)}")
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
@@ -188,7 +188,7 @@ class HomeDirectoryManager:
|
||||
return True, "User migrated successfully"
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error migrating user: {str(e)}")
|
||||
logging.writeToFile(f"Error migrating user: {str(e)}")
|
||||
return False, str(e)
|
||||
|
||||
@staticmethod
|
||||
@@ -217,7 +217,7 @@ class HomeDirectoryManager:
|
||||
return stats
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error getting home directory stats: {str(e)}")
|
||||
logging.writeToFile(f"Error getting home directory stats: {str(e)}")
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
|
||||
@@ -35,7 +35,7 @@ def loadHomeDirectoryManagement(request):
|
||||
return proc.render()
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error loading home directory management: {str(e)}")
|
||||
logging.writeToFile(f"Error loading home directory management: {str(e)}")
|
||||
return ACLManager.loadError()
|
||||
|
||||
def detectHomeDirectories(request):
|
||||
@@ -71,7 +71,7 @@ def detectHomeDirectories(request):
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error detecting home directories: {str(e)}")
|
||||
logging.writeToFile(f"Error detecting home directories: {str(e)}")
|
||||
return JsonResponse({'status': 0, 'error_message': str(e)})
|
||||
|
||||
def updateHomeDirectory(request):
|
||||
@@ -109,7 +109,7 @@ def updateHomeDirectory(request):
|
||||
return JsonResponse({'status': 0, 'error_message': 'Home directory not found'})
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error updating home directory: {str(e)}")
|
||||
logging.writeToFile(f"Error updating home directory: {str(e)}")
|
||||
return JsonResponse({'status': 0, 'error_message': str(e)})
|
||||
|
||||
def deleteHomeDirectory(request):
|
||||
@@ -149,7 +149,7 @@ def deleteHomeDirectory(request):
|
||||
return JsonResponse({'status': 0, 'error_message': 'Home directory not found'})
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error deleting home directory: {str(e)}")
|
||||
logging.writeToFile(f"Error deleting home directory: {str(e)}")
|
||||
return JsonResponse({'status': 0, 'error_message': str(e)})
|
||||
|
||||
def getHomeDirectoryStats(request):
|
||||
@@ -165,7 +165,7 @@ def getHomeDirectoryStats(request):
|
||||
return JsonResponse({'status': 1, 'stats': stats})
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error getting home directory stats: {str(e)}")
|
||||
logging.writeToFile(f"Error getting home directory stats: {str(e)}")
|
||||
return JsonResponse({'status': 0, 'error_message': str(e)})
|
||||
|
||||
def getUserHomeDirectories(request):
|
||||
@@ -197,7 +197,7 @@ def getUserHomeDirectories(request):
|
||||
return JsonResponse({'status': 1, 'directories': directories})
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error getting user home directories: {str(e)}")
|
||||
logging.writeToFile(f"Error getting user home directories: {str(e)}")
|
||||
# If tables don't exist (e.g. user_home_mappings), return empty list so Modify Website still works
|
||||
return JsonResponse({'status': 1, 'directories': []})
|
||||
|
||||
@@ -253,5 +253,5 @@ def migrateUser(request):
|
||||
return JsonResponse({'status': 0, 'error_message': 'Target home directory not found'})
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error migrating user: {str(e)}")
|
||||
logging.writeToFile(f"Error migrating user: {str(e)}")
|
||||
return JsonResponse({'status': 0, 'error_message': str(e)})
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
|
||||
from django.shortcuts import render, redirect
|
||||
from django.http import HttpResponse
|
||||
from django.db import models, IntegrityError
|
||||
from django.db import models
|
||||
from django.db.utils import IntegrityError
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from loginSystem.views import loadLoginPage
|
||||
from loginSystem.models import Administrator, ACL
|
||||
@@ -221,6 +222,20 @@ def submitUserCreation(request):
|
||||
email = data['email']
|
||||
userName = data['userName']
|
||||
password = data['password']
|
||||
if userName is None:
|
||||
userName = ''
|
||||
else:
|
||||
userName = str(userName).strip()
|
||||
if not userName:
|
||||
data_ret = {'status': 0, 'createStatus': 0,
|
||||
'error_message': 'Username is required.'}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data, content_type='application/json')
|
||||
if Administrator.objects.filter(userName=userName).exists():
|
||||
data_ret = {'status': 0, 'createStatus': 0,
|
||||
'error_message': 'That username is already in use. Choose a different username.'}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data, content_type='application/json')
|
||||
try:
|
||||
websitesLimit = int(data['websitesLimit'])
|
||||
except (KeyError, TypeError, ValueError):
|
||||
@@ -1134,7 +1149,8 @@ def userMigration(request):
|
||||
return proc.render()
|
||||
|
||||
except Exception as e:
|
||||
logging.CyberCPLogFileWriter.writeToFile(f"Error loading user migration: {str(e)}")
|
||||
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as _cp_log
|
||||
_cp_log.writeToFile(f"Error loading user migration: {str(e)}")
|
||||
return ACLManager.loadError()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user