From 8ffeb504bb67402231647f34102816b92a1a8f83 Mon Sep 17 00:00:00 2001 From: mortezaei Date: Sun, 8 Feb 2026 13:36:43 +0330 Subject: [PATCH] Refactor admin namespace logic into middleware - Moved the `get_admin_namespace` function from `admin_access.py` to a new `config.middleware` module for better organization and reusability. - Updated `AdminAccessMiddleware` to utilize the centralized `get_admin_namespace` function, enhancing code maintainability. - Improved documentation for the `get_admin_namespace` function to clarify its usage and purpose. --- apps/account/middleware/admin_access.py | 15 +-------------- config/middleware/__init__.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 14 deletions(-) create mode 100644 config/middleware/__init__.py diff --git a/apps/account/middleware/admin_access.py b/apps/account/middleware/admin_access.py index 00d09dd..73c2817 100644 --- a/apps/account/middleware/admin_access.py +++ b/apps/account/middleware/admin_access.py @@ -5,20 +5,7 @@ from django.shortcuts import redirect from django.urls import reverse from django.contrib import messages from django.utils.translation import gettext_lazy as _ - - -def get_admin_namespace(request): - """ - Determine the admin namespace based on the request domain. - Returns the appropriate admin namespace for use in reverse() calls. - """ - host = request.get_host() - - # Check if the request is from Dovoodi domain - if 'dovodi' in host or 'dovoodi' in host: - return 'dovoodi_admin' - else: - return 'imam_javad_admin' +from config.middleware import get_admin_namespace class AdminAccessMiddleware: diff --git a/config/middleware/__init__.py b/config/middleware/__init__.py new file mode 100644 index 0000000..977b954 --- /dev/null +++ b/config/middleware/__init__.py @@ -0,0 +1,22 @@ +""" +Middleware utilities and helpers +""" + + +def get_admin_namespace(request): + """ + Determine the admin namespace based on the request domain. + Returns the appropriate admin namespace for use in reverse() calls. + + Usage: + from config.middleware import get_admin_namespace + admin_ns = get_admin_namespace(request) + url = reverse(f'{admin_ns}:model_changelist') + """ + host = request.get_host() + + # Check if the request is from Dovoodi domain + if 'dovodi' in host or 'dovoodi' in host: + return 'dovoodi_admin' + else: + return 'imam_javad_admin'