From b19e59b40fc44053621f8e7bd2ca4cf6f93804d2 Mon Sep 17 00:00:00 2001 From: master3395 Date: Wed, 25 Mar 2026 01:23:02 +0100 Subject: [PATCH] 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 --- userManagment/homeDirectoryManager.py | 12 ++++++------ userManagment/homeDirectoryViews.py | 14 +++++++------- userManagment/views.py | 20 ++++++++++++++++++-- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/userManagment/homeDirectoryManager.py b/userManagment/homeDirectoryManager.py index d81821a0c..d45bb66f6 100644 --- a/userManagment/homeDirectoryManager.py +++ b/userManagment/homeDirectoryManager.py @@ -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 diff --git a/userManagment/homeDirectoryViews.py b/userManagment/homeDirectoryViews.py index 55e8b4929..70f99533a 100644 --- a/userManagment/homeDirectoryViews.py +++ b/userManagment/homeDirectoryViews.py @@ -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)}) diff --git a/userManagment/views.py b/userManagment/views.py index edc663666..d0dc6ddbe 100644 --- a/userManagment/views.py +++ b/userManagment/views.py @@ -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()