[UPDT] HORILLA: Added a any_permission_required decorater to check if any of the permission exists
This commit is contained in:
@@ -52,6 +52,24 @@ def permission_required(function, perm):
|
||||
return _function
|
||||
|
||||
|
||||
@decorator_with_arguments
|
||||
def any_permission_required(function, perms):
|
||||
def _function(request, *args, **kwargs):
|
||||
if any(request.user.has_perm(perm) for perm in perms):
|
||||
return function(request, *args, **kwargs)
|
||||
|
||||
else:
|
||||
messages.info(request, "You dont have permission.")
|
||||
previous_url = request.META.get("HTTP_REFERER", "/")
|
||||
key = "HTTP_HX_REQUEST"
|
||||
if key in request.META.keys():
|
||||
return render(request, "decorator_404.html")
|
||||
script = f'<script>window.location.href = "{previous_url}"</script>'
|
||||
return HttpResponse(script)
|
||||
|
||||
return _function
|
||||
|
||||
|
||||
decorator_with_arguments = (
|
||||
lambda decorator: lambda *args, **kwargs: lambda func: decorator(
|
||||
func, *args, **kwargs
|
||||
|
||||
Reference in New Issue
Block a user