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:
master3395
2026-03-25 01:23:02 +01:00
parent 09094adcb1
commit b19e59b40f
3 changed files with 31 additions and 15 deletions

View File

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

View File

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

View File

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