network_inventory/network_inventory/inventory/decorators.py

82 lines
2.8 KiB
Python
Raw Normal View History

from django.http import HttpResponseForbidden
from django.shortcuts import get_object_or_404
2019-12-29 14:03:31 +01:00
from .models import Backup, Computer, Customer, Device, ConnectedDevice, Net
def computer_view_permission(old_fuction):
def new_function(request, pk, *args, **kwargs):
computer = get_object_or_404(Computer, pk=pk)
user = request.user
if user.has_perm('inventory.view_customer', computer.customer):
return old_fuction(request, pk)
else:
return HttpResponseForbidden(
"You're not allowed to access this device."
)
return new_function
def device_view_permission(old_function):
def new_function(request, pk, *args, **kwargs):
device = get_object_or_404(Device, pk=pk)
user = request.user
if user.has_perm('inventory.view_customer', device.customer):
2019-11-30 16:51:22 +01:00
return old_function(request, pk)
else:
return HttpResponseForbidden(
"You're not allowed to access this device."
)
return new_function
def connect_device_view_permission(old_function):
def new_function(request, pk, *args, **kwargs):
device = get_object_or_404(ConnectedDevice, pk=pk)
user = request.user
if user.has_perm('inventory.view_customer', device.customer):
2019-12-01 22:42:20 +01:00
return old_function(request, pk)
else:
return HttpResponseForbidden(
"You're not allowed to access this device."
)
return new_function
def customer_view_permission(old_function):
def new_function(request, pk, *args, **kwargs):
customer = Customer.objects.get(pk=pk)
user = request.user
if user.has_perm('inventory.view_customer', customer):
return old_function(request, pk)
else:
return HttpResponseForbidden(
"You're not allowed to access this page."
)
return new_function
2019-12-11 17:57:48 +01:00
def net_view_permission(old_fuction):
def new_function(request, pk, *args, **kwargs):
net = get_object_or_404(Net, pk=pk)
user = request.user
if user.has_perm('inventory.view_customer', net.customer):
return old_fuction(request, pk)
else:
return HttpResponseForbidden(
"You're not allowed to access this device."
)
return new_function
2019-12-29 14:03:31 +01:00
def backup_view_permission(old_fuction):
def new_function(request, pk, *args, **kwargs):
backup = get_object_or_404(Backup, pk=pk)
user = request.user
if user.has_perm('inventory.view_customer', backup.computer.customer):
2019-12-11 17:57:48 +01:00
return old_fuction(request, pk)
else:
return HttpResponseForbidden(
"You're not allowed to access this device."
)
return new_function