def requires_permission(permission):
def class_wrapper(f):
@functools.wraps(f)
def method_wrapper(self, request, *args, **kwargs):
directory_permission = check_directory_permission(
permission, request, self.permission_context)
check_class_permission = (
directory_permission
and hasattr(self, "required_permission")
and permission != self.required_permission)
if check_class_permission:
directory_permission = check_directory_permission(
self.required_permission, request, self.permission_context)
if not directory_permission:
raise PermissionDenied(
_("Insufficient rights to access this page."), )
return f(self, request, *args, **kwargs)
return method_wrapper
return class_wrapper
评论列表
文章目录