diff --git a/adminlte2_pdq/decorators.py b/adminlte2_pdq/decorators.py index 613ad0fc2f655ab5d4e6b77dac760be89ca632f6..d7ad6cef9b5486e60578d8be5e2d32a40bb5fbdb 100644 --- a/adminlte2_pdq/decorators.py +++ b/adminlte2_pdq/decorators.py @@ -72,7 +72,7 @@ def allow_anonymous_access(function=None): Also adds the required logic to render the view on the sidebar template. """ - pdq_data = { + admin_pdq_data = { "decorator_name": "allow_anonymous_access", "allow_anonymous_access": True, "login_required": False, @@ -83,7 +83,7 @@ def allow_anonymous_access(function=None): def decorator(function): # Save values to view fetch function for middleware handling + potential debugging. - function.admin_pdq_data = pdq_data + function.admin_pdq_data = admin_pdq_data @wraps(function) def wrap(request, *args, **kwargs): @@ -92,7 +92,7 @@ def allow_anonymous_access(function=None): function_view = function(request, *args, **kwargs) # Save values to fully qualified view for middleware handling + potential debugging. - function_view.admin_pdq_data = pdq_data + function_view.admin_pdq_data = admin_pdq_data return function_view @@ -124,7 +124,7 @@ def login_required(function=None, redirect_field_name="next", login_url=None): * allow_without_permissions """ - pdq_data = { + admin_pdq_data = { "decorator_name": "login_required", "allow_anonymous_access": False, "login_required": True, @@ -136,7 +136,7 @@ def login_required(function=None, redirect_field_name="next", login_url=None): def decorator(function): # Save values to view fetch function for middleware handling + potential debugging. - function.admin_pdq_data = pdq_data + function.admin_pdq_data = admin_pdq_data @wraps(function) @django_login_required(redirect_field_name=redirect_field_name, login_url=login_url) @@ -146,7 +146,7 @@ def login_required(function=None, redirect_field_name="next", login_url=None): function_view = function(request, *args, **kwargs) # Save values to fully qualified view for middleware handling + potential debugging. - function_view.admin_pdq_data = pdq_data + function_view.admin_pdq_data = admin_pdq_data return function_view @@ -163,7 +163,7 @@ def allow_without_permissions(function=None, redirect_field_name="next", login_u Also adds the required logic to render the view on the sidebar template. """ - pdq_data = { + admin_pdq_data = { "decorator_name": "allow_without_permissions", "allow_anonymous_access": False, "login_required": True, @@ -174,7 +174,7 @@ def allow_without_permissions(function=None, redirect_field_name="next", login_u def decorator(function): # Save values to view fetch function for middleware handling + potential debugging. - function.admin_pdq_data = pdq_data + function.admin_pdq_data = admin_pdq_data @wraps(function) @django_login_required(redirect_field_name=redirect_field_name, login_url=login_url) @@ -184,7 +184,7 @@ def allow_without_permissions(function=None, redirect_field_name="next", login_u function_view = function(request, *args, **kwargs) # Save values to fully qualified view for middleware handling + potential debugging. - function_view.admin_pdq_data = pdq_data + function_view.admin_pdq_data = admin_pdq_data return function_view @@ -212,7 +212,7 @@ def permission_required_one(permission, login_url=None, raise_exception=False): # Ensure consistent permission format. permissions = _sanitize_permissions(permission) - pdq_data = { + admin_pdq_data = { "decorator_name": "permission_required", "allow_anonymous_access": False, "login_required": True, @@ -224,7 +224,7 @@ def permission_required_one(permission, login_url=None, raise_exception=False): def decorator(function): # Save values to view fetch function for middleware handling + potential debugging. - function.admin_pdq_data = pdq_data + function.admin_pdq_data = admin_pdq_data @wraps(function) @_one_of_permission_required(permission, login_url, raise_exception) @@ -234,7 +234,7 @@ def permission_required_one(permission, login_url=None, raise_exception=False): function_view = function(request, *args, **kwargs) # Save values to fully qualified view for middleware handling + potential debugging. - function_view.admin_pdq_data = pdq_data + function_view.admin_pdq_data = admin_pdq_data return function_view @@ -260,7 +260,7 @@ def permission_required(permission, login_url=None, raise_exception=False): # Ensure consistent permission format. permissions = _sanitize_permissions(permission) - pdq_data = { + admin_pdq_data = { "decorator_name": "permission_required", "allow_anonymous_access": False, "login_required": True, @@ -272,7 +272,7 @@ def permission_required(permission, login_url=None, raise_exception=False): def decorator(function): # Save values to view fetch function for middleware handling + potential debugging. - function.admin_pdq_data = pdq_data + function.admin_pdq_data = admin_pdq_data @wraps(function) @django_permission_required(permission, login_url, raise_exception) @@ -282,7 +282,7 @@ def permission_required(permission, login_url=None, raise_exception=False): function_view = function(request, *args, **kwargs) # Save values to fully qualified view for middleware handling + potential debugging. - function_view.admin_pdq_data = pdq_data + function_view.admin_pdq_data = admin_pdq_data return function_view diff --git a/adminlte2_pdq/middleware.py b/adminlte2_pdq/middleware.py index d610c513da0e958a859c4e79fbf70ed14373a3ed..60fa86f63f27bfbdbe1153da077227a08c8c24f6 100644 --- a/adminlte2_pdq/middleware.py +++ b/adminlte2_pdq/middleware.py @@ -436,10 +436,10 @@ class AuthMiddleware: # Get extra AdminLtePdq data, if available. if view_class: # Is class-based view. Get class data dict. - pdq_data = getattr(view_class, "admin_pdq_data", {}) + admin_pdq_data = getattr(view_class, "admin_pdq_data", {}) else: # Is function-based view. Get function data dict. - pdq_data = getattr(resolver.func, "admin_pdq_data", {}) + admin_pdq_data = getattr(resolver.func, "admin_pdq_data", {}) # Process data. if view_class: @@ -449,11 +449,11 @@ class AuthMiddleware: data_dict["view_perm_type"] = "mixin" # Handle for AdminLtePdq-specific attributes. - if pdq_data: - data_dict["decorator_name"] = pdq_data.get("decorator_name", "") - data_dict["allow_anonymous_access"] = pdq_data.get("allow_anonymous_access", False) - data_dict["login_required"] = pdq_data.get("login_required", False) - data_dict["allow_without_permissions"] = pdq_data.get("allow_without_permissions", False) + if admin_pdq_data: + data_dict["decorator_name"] = admin_pdq_data.get("decorator_name", "") + data_dict["allow_anonymous_access"] = admin_pdq_data.get("allow_anonymous_access", False) + data_dict["login_required"] = admin_pdq_data.get("login_required", False) + data_dict["allow_without_permissions"] = admin_pdq_data.get("allow_without_permissions", False) # Because we seem unable to get the "updated" class attributes, # and only have access to the original literal class-level values, @@ -500,13 +500,13 @@ class AuthMiddleware: data_dict["view_perm_type"] = "decorator" # Handle for AdminLtePdq-specific attributes. - if pdq_data: - data_dict["decorator_name"] = pdq_data.get("decorator_name", "") - data_dict["allow_anonymous_access"] = pdq_data.get("allow_anonymous_access", False) - data_dict["login_required"] = pdq_data.get("login_required", False) - data_dict["allow_without_permissions"] = pdq_data.get("allow_without_permissions", False) - data_dict["one_of_permissions"] = pdq_data.get("one_of_permissions", None) - data_dict["full_permissions"] = pdq_data.get("full_permissions", None) + if admin_pdq_data: + data_dict["decorator_name"] = admin_pdq_data.get("decorator_name", "") + data_dict["allow_anonymous_access"] = admin_pdq_data.get("allow_anonymous_access", False) + data_dict["login_required"] = admin_pdq_data.get("login_required", False) + data_dict["allow_without_permissions"] = admin_pdq_data.get("allow_without_permissions", False) + data_dict["one_of_permissions"] = admin_pdq_data.get("one_of_permissions", None) + data_dict["full_permissions"] = admin_pdq_data.get("full_permissions", None) except Http404: data_dict.update({"resolver": None}) diff --git a/adminlte2_pdq/templatetags/sidebar_menu.py b/adminlte2_pdq/templatetags/sidebar_menu.py index fb1403541665a0d22671bd632a37a6a34e3967d0..e6382ddfd5e475907be92999170e50aae7140532 100644 --- a/adminlte2_pdq/templatetags/sidebar_menu.py +++ b/adminlte2_pdq/templatetags/sidebar_menu.py @@ -223,16 +223,16 @@ def get_permissions_from_view(view): view_data = {} view_class = getattr(view.func, "view_class", None) if view_class: - pdq_data = getattr(view_class, "admin_pdq_data", {}) + admin_pdq_data = getattr(view_class, "admin_pdq_data", {}) else: - pdq_data = getattr(view.func, "admin_pdq_data", {}) - - view_data["decorator_name"] = pdq_data.get("decorator_name", "") - view_data["allow_anonymous_access"] = pdq_data.get("allow_anonymous_access", None) - view_data["login_required"] = pdq_data.get("login_required", None) - view_data["allow_without_permissions"] = pdq_data.get("allow_without_permissions", None) - view_data["one_of_permissions"] = pdq_data.get("one_of_permissions", []) - view_data["full_permissions"] = pdq_data.get("full_permissions", []) + admin_pdq_data = getattr(view.func, "admin_pdq_data", {}) + + view_data["decorator_name"] = admin_pdq_data.get("decorator_name", "") + view_data["allow_anonymous_access"] = admin_pdq_data.get("allow_anonymous_access", None) + view_data["login_required"] = admin_pdq_data.get("login_required", None) + view_data["allow_without_permissions"] = admin_pdq_data.get("allow_without_permissions", None) + view_data["one_of_permissions"] = admin_pdq_data.get("one_of_permissions", []) + view_data["full_permissions"] = admin_pdq_data.get("full_permissions", []) return view_data