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