rewrite so that all the views get a pk object
This commit is contained in:
parent
2d06992811
commit
53289a58f6
|
@ -4,12 +4,12 @@ from .models import Computer, Customer, Device, ConnectedDevice
|
|||
|
||||
|
||||
def computer_view_permission(old_fuction):
|
||||
def new_function(request, computer_id, *args, **kwargs):
|
||||
computer = get_object_or_404(Computer, pk=computer_id)
|
||||
def new_function(request, pk, *args, **kwargs):
|
||||
computer = get_object_or_404(Computer, pk=pk)
|
||||
customer = Customer.objects.get(pk=computer.customer.pk)
|
||||
user = request.user
|
||||
if user.has_perm('inventory.view_customer', customer):
|
||||
return old_fuction(request, computer_id)
|
||||
return old_fuction(request, pk)
|
||||
else:
|
||||
return HttpResponseForbidden(
|
||||
"You're not allowed to access this device."
|
||||
|
@ -18,12 +18,12 @@ def computer_view_permission(old_fuction):
|
|||
|
||||
|
||||
def device_view_permission(old_function):
|
||||
def new_function(request, device_id, *args, **kwargs):
|
||||
device = get_object_or_404(Device, pk=device_id)
|
||||
def new_function(request, pk, *args, **kwargs):
|
||||
device = get_object_or_404(Device, pk=pk)
|
||||
customer = Customer.objects.get(pk=device.customer.pk)
|
||||
user = request.user
|
||||
if user.has_perm('inventory.view_customer', customer):
|
||||
return old_fuction(request, device_id)
|
||||
return old_fuction(request, pk)
|
||||
else:
|
||||
return HttpResponseForbidden(
|
||||
"You're not allowed to access this device."
|
||||
|
@ -32,12 +32,12 @@ def device_view_permission(old_function):
|
|||
|
||||
|
||||
def connect_device_view_permission(old_function):
|
||||
def new_function(request, device_id, *args, **kwargs):
|
||||
device = get_object_or_404(ConnectedDevice, pk=device_id)
|
||||
def new_function(request, pk, *args, **kwargs):
|
||||
device = get_object_or_404(ConnectedDevice, pk=pk)
|
||||
customer = Customer.objects.get(pk=device.customer.pk)
|
||||
user = request.user
|
||||
if user.has_perm('inventory.view_customer', customer):
|
||||
return old_fuction(request, device_id)
|
||||
return old_fuction(request, pk)
|
||||
else:
|
||||
return HttpResponseForbidden(
|
||||
"You're not allowed to access this device."
|
||||
|
|
|
@ -7,15 +7,15 @@ urlpatterns = [
|
|||
path('', views.customers_table_view, name='customers'),
|
||||
path('customer/<int:pk>/', views.CustomerDetailView.as_view(),
|
||||
name='customer'),
|
||||
path('customer/<int:customer_id>/computers/',
|
||||
path('customer/<int:pk>/computers/',
|
||||
views.computers_table_view, name='computers'),
|
||||
path('customer/<int:customer_id>/devices/', views.devices_table_view,
|
||||
path('customer/<int:pk>/devices/', views.devices_table_view,
|
||||
name='devices'),
|
||||
path('customer/<int:customer_id>/nets/', views.nets_table_view,
|
||||
path('customer/<int:pk>/nets/', views.nets_table_view,
|
||||
name='nets'),
|
||||
path('computer/<int:computer_id>/', views.computer_detail_view,
|
||||
path('computer/<int:pk>/', views.computer_detail_view,
|
||||
name='computer'),
|
||||
path('device/<int:device_id>/', views.device_detail_view, name='device'),
|
||||
path('device/<int:pk>/', views.device_detail_view, name='device'),
|
||||
path('net/<int:pk>/', views.net_detail_view, name='net'),
|
||||
path('backup/<int:pk>/', views.backup_detail_view, name='backup'),
|
||||
path('computers/all/', views.ComputersFilterView.as_view(), name='all_computers')
|
||||
|
|
|
@ -22,23 +22,23 @@ from .filters import ComputerFilter
|
|||
|
||||
|
||||
@login_required
|
||||
def device_detail_view(request, device_id):
|
||||
device = get_object_or_404(Device, pk=device_id)
|
||||
def device_detail_view(request, pk):
|
||||
device = get_object_or_404(Device, pk=pk)
|
||||
return render(request, 'inventory/device_details.html',
|
||||
{'device': device})
|
||||
|
||||
|
||||
@login_required
|
||||
@computer_view_permission
|
||||
def computer_detail_view(request, computer_id):
|
||||
computer = get_object_or_404(Computer, pk=computer_id)
|
||||
disks_list = ComputerDiskRelation.objects.filter(computer=computer_id)
|
||||
ram_list = ComputerRamRelation.objects.filter(computer=computer_id)
|
||||
cpu_list = ComputerCpuRelation.objects.filter(computer=computer_id)
|
||||
software_list = ComputerSoftwareRelation.objects.filter(computer=computer_id)
|
||||
raid_relations = RaidInComputer.objects.filter(computer=computer_id)
|
||||
raid_relations = RaidInComputer.objects.filter(computer=computer_id)
|
||||
backup_list = Backup.objects.filter(computer=computer_id)
|
||||
def computer_detail_view(request, pk):
|
||||
computer = get_object_or_404(Computer, pk=pk)
|
||||
disks_list = ComputerDiskRelation.objects.filter(computer=pk)
|
||||
ram_list = ComputerRamRelation.objects.filter(computer=pk)
|
||||
cpu_list = ComputerCpuRelation.objects.filter(computer=pk)
|
||||
software_list = ComputerSoftwareRelation.objects.filter(computer=pk)
|
||||
raid_relations = RaidInComputer.objects.filter(computer=pk)
|
||||
raid_relations = RaidInComputer.objects.filter(computer=pk)
|
||||
backup_list = Backup.objects.filter(computer=pk)
|
||||
context = {'computer': computer,
|
||||
'disks_list': disks_list,
|
||||
'ram_list': ram_list,
|
||||
|
@ -66,22 +66,22 @@ def customers_table_view(request):
|
|||
|
||||
|
||||
@login_required
|
||||
def computers_table_view(request, customer_id):
|
||||
table = ComputersTable(Computer.objects.filter(customer=customer_id))
|
||||
def computers_table_view(request, pk):
|
||||
table = ComputersTable(Computer.objects.filter(customer=pk))
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'inventory/computer_list.html', {'computers': table})
|
||||
|
||||
|
||||
@login_required
|
||||
def devices_table_view(request, customer_id):
|
||||
table = DevicesTable(Device.objects.filter(customer=customer_id))
|
||||
def devices_table_view(request, pk):
|
||||
table = DevicesTable(Device.objects.filter(customer=pk))
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'inventory/device_list.html', {'devices': table})
|
||||
|
||||
|
||||
@login_required
|
||||
def nets_table_view(request, customer_id):
|
||||
table = NetsTable(Net.objects.filter(customer=customer_id))
|
||||
def nets_table_view(request, pk):
|
||||
table = NetsTable(Net.objects.filter(customer=pk))
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'inventory/net_list.html', {'nets': table})
|
||||
|
||||
|
|
Loading…
Reference in New Issue