decorators.py 601 B

123456789101112131415161718192021222324
  1. from django.core.exceptions import PermissionDenied
  2. from django.http import Http404
  3. def require_target_type(supported_type):
  4. def wrap(f):
  5. def decorator(user, acl, target):
  6. if isinstance(target, supported_type):
  7. return f(user, acl, target)
  8. else:
  9. return None
  10. return decorator
  11. return wrap
  12. def return_boolean(f):
  13. def decorator(*args, **kwargs):
  14. try:
  15. f(*args, **kwargs)
  16. except (Http404, PermissionDenied):
  17. return False
  18. else:
  19. return True
  20. return decorator