Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

decorators.py 658B

123456789101112131415161718
  1. from django.contrib.auth import REDIRECT_FIELD_NAME
  2. from django.contrib.auth.decorators import user_passes_test
  3. def staff_member_required(view_func=None, redirect_field_name=REDIRECT_FIELD_NAME,
  4. login_url='admin:login'):
  5. """
  6. Decorator for views that checks that the user is logged in and is a staff
  7. member, redirecting to the login page if necessary.
  8. """
  9. actual_decorator = user_passes_test(
  10. lambda u: u.is_active and u.is_staff,
  11. login_url=login_url,
  12. redirect_field_name=redirect_field_name
  13. )
  14. if view_func:
  15. return actual_decorator(view_func)
  16. return actual_decorator