summaryrefslogtreecommitdiff
path: root/django/contrib/admin/views/decorators.py
diff options
context:
space:
mode:
authorAndrei Kulakov <andrei.avk@gmail.com>2015-02-06 16:45:46 -0500
committerTim Graham <timograham@gmail.com>2015-03-02 13:15:34 -0500
commit08572e8d125da204fab230be5d1fdcc5d8d22256 (patch)
tree7284e65c145824add2b751ee5f8632e327128b6f /django/contrib/admin/views/decorators.py
parent4e8b167e4d0817b6ae93be8ad97b31bf203698d8 (diff)
Fixed #24294 -- Allowed staff_member_required decorator to handle args.
Diffstat (limited to 'django/contrib/admin/views/decorators.py')
-rw-r--r--django/contrib/admin/views/decorators.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/django/contrib/admin/views/decorators.py b/django/contrib/admin/views/decorators.py
index f58375f283..f14570c24d 100644
--- a/django/contrib/admin/views/decorators.py
+++ b/django/contrib/admin/views/decorators.py
@@ -2,13 +2,17 @@ from django.contrib.auth import REDIRECT_FIELD_NAME
from django.contrib.auth.decorators import user_passes_test
-def staff_member_required(view_func, redirect_field_name=REDIRECT_FIELD_NAME, login_url='admin:login'):
+def staff_member_required(view_func=None, redirect_field_name=REDIRECT_FIELD_NAME,
+ login_url='admin:login'):
"""
Decorator for views that checks that the user is logged in and is a staff
- member, displaying the login page if necessary.
+ member, redirecting to the login page if necessary.
"""
- return user_passes_test(
+ actual_decorator = user_passes_test(
lambda u: u.is_active and u.is_staff,
login_url=login_url,
redirect_field_name=redirect_field_name
- )(view_func)
+ )
+ if view_func:
+ return actual_decorator(view_func)
+ return actual_decorator