From 0b0fb2035a0d351317f21efc929249630f64f5cc Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Tue, 7 Jan 2020 19:47:57 +0100 Subject: [PATCH] Fix person_required with support for anonymous users (3. try) Addition to MR #110 --- aleksis/core/decorators.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/aleksis/core/decorators.py b/aleksis/core/decorators.py index 47a37b339..c19dc9139 100644 --- a/aleksis/core/decorators.py +++ b/aleksis/core/decorators.py @@ -1,8 +1,7 @@ from typing import Callable from django.contrib.auth.decorators import login_required, user_passes_test - -from aleksis.core.util.core_helpers import has_person +from django.contrib.auth.models import User def admin_required(function: Callable = None) -> Callable: @@ -10,8 +9,12 @@ def admin_required(function: Callable = None) -> Callable: return actual_decorator(function) +def has_person_by_user(user: User) -> bool: + return getattr(user, "person", None) is not None + + def person_required(function: Callable = None) -> Callable: """ Requires a logged-in user which is linked to a person. """ - actual_decorator = user_passes_test(has_person) + actual_decorator = user_passes_test(has_person_by_user) return actual_decorator(login_required(function)) -- GitLab