rewrite so that all the views get a pk object

This commit is contained in:
Andreas Zweili 2019-09-03 18:49:44 +02:00
parent 2d06992811
commit 53289a58f6
3 changed files with 31 additions and 31 deletions

View File

@ -4,12 +4,12 @@ from .models import Computer, Customer, Device, ConnectedDevice
def computer_view_permission(old_fuction): def computer_view_permission(old_fuction):
def new_function(request, computer_id, *args, **kwargs): def new_function(request, pk, *args, **kwargs):
computer = get_object_or_404(Computer, pk=computer_id) computer = get_object_or_404(Computer, pk=pk)
customer = Customer.objects.get(pk=computer.customer.pk) customer = Customer.objects.get(pk=computer.customer.pk)
user = request.user user = request.user
if user.has_perm('inventory.view_customer', customer): if user.has_perm('inventory.view_customer', customer):
return old_fuction(request, computer_id) return old_fuction(request, pk)
else: else:
return HttpResponseForbidden( return HttpResponseForbidden(
"You're not allowed to access this device." "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 device_view_permission(old_function):
def new_function(request, device_id, *args, **kwargs): def new_function(request, pk, *args, **kwargs):
device = get_object_or_404(Device, pk=device_id) device = get_object_or_404(Device, pk=pk)
customer = Customer.objects.get(pk=device.customer.pk) customer = Customer.objects.get(pk=device.customer.pk)
user = request.user user = request.user
if user.has_perm('inventory.view_customer', customer): if user.has_perm('inventory.view_customer', customer):
return old_fuction(request, device_id) return old_fuction(request, pk)
else: else:
return HttpResponseForbidden( return HttpResponseForbidden(
"You're not allowed to access this device." "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 connect_device_view_permission(old_function):
def new_function(request, device_id, *args, **kwargs): def new_function(request, pk, *args, **kwargs):
device = get_object_or_404(ConnectedDevice, pk=device_id) device = get_object_or_404(ConnectedDevice, pk=pk)
customer = Customer.objects.get(pk=device.customer.pk) customer = Customer.objects.get(pk=device.customer.pk)
user = request.user user = request.user
if user.has_perm('inventory.view_customer', customer): if user.has_perm('inventory.view_customer', customer):
return old_fuction(request, device_id) return old_fuction(request, pk)
else: else:
return HttpResponseForbidden( return HttpResponseForbidden(
"You're not allowed to access this device." "You're not allowed to access this device."

View File

@ -7,15 +7,15 @@ urlpatterns = [
path('', views.customers_table_view, name='customers'), path('', views.customers_table_view, name='customers'),
path('customer/<int:pk>/', views.CustomerDetailView.as_view(), path('customer/<int:pk>/', views.CustomerDetailView.as_view(),
name='customer'), name='customer'),
path('customer/<int:customer_id>/computers/', path('customer/<int:pk>/computers/',
views.computers_table_view, name='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'), name='devices'),
path('customer/<int:customer_id>/nets/', views.nets_table_view, path('customer/<int:pk>/nets/', views.nets_table_view,
name='nets'), name='nets'),
path('computer/<int:computer_id>/', views.computer_detail_view, path('computer/<int:pk>/', views.computer_detail_view,
name='computer'), 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('net/<int:pk>/', views.net_detail_view, name='net'),
path('backup/<int:pk>/', views.backup_detail_view, name='backup'), path('backup/<int:pk>/', views.backup_detail_view, name='backup'),
path('computers/all/', views.ComputersFilterView.as_view(), name='all_computers') path('computers/all/', views.ComputersFilterView.as_view(), name='all_computers')

View File

@ -22,23 +22,23 @@ from .filters import ComputerFilter
@login_required @login_required
def device_detail_view(request, device_id): def device_detail_view(request, pk):
device = get_object_or_404(Device, pk=device_id) device = get_object_or_404(Device, pk=pk)
return render(request, 'inventory/device_details.html', return render(request, 'inventory/device_details.html',
{'device': device}) {'device': device})
@login_required @login_required
@computer_view_permission @computer_view_permission
def computer_detail_view(request, computer_id): def computer_detail_view(request, pk):
computer = get_object_or_404(Computer, pk=computer_id) computer = get_object_or_404(Computer, pk=pk)
disks_list = ComputerDiskRelation.objects.filter(computer=computer_id) disks_list = ComputerDiskRelation.objects.filter(computer=pk)
ram_list = ComputerRamRelation.objects.filter(computer=computer_id) ram_list = ComputerRamRelation.objects.filter(computer=pk)
cpu_list = ComputerCpuRelation.objects.filter(computer=computer_id) cpu_list = ComputerCpuRelation.objects.filter(computer=pk)
software_list = ComputerSoftwareRelation.objects.filter(computer=computer_id) software_list = ComputerSoftwareRelation.objects.filter(computer=pk)
raid_relations = RaidInComputer.objects.filter(computer=computer_id) raid_relations = RaidInComputer.objects.filter(computer=pk)
raid_relations = RaidInComputer.objects.filter(computer=computer_id) raid_relations = RaidInComputer.objects.filter(computer=pk)
backup_list = Backup.objects.filter(computer=computer_id) backup_list = Backup.objects.filter(computer=pk)
context = {'computer': computer, context = {'computer': computer,
'disks_list': disks_list, 'disks_list': disks_list,
'ram_list': ram_list, 'ram_list': ram_list,
@ -66,22 +66,22 @@ def customers_table_view(request):
@login_required @login_required
def computers_table_view(request, customer_id): def computers_table_view(request, pk):
table = ComputersTable(Computer.objects.filter(customer=customer_id)) table = ComputersTable(Computer.objects.filter(customer=pk))
RequestConfig(request).configure(table) RequestConfig(request).configure(table)
return render(request, 'inventory/computer_list.html', {'computers': table}) return render(request, 'inventory/computer_list.html', {'computers': table})
@login_required @login_required
def devices_table_view(request, customer_id): def devices_table_view(request, pk):
table = DevicesTable(Device.objects.filter(customer=customer_id)) table = DevicesTable(Device.objects.filter(customer=pk))
RequestConfig(request).configure(table) RequestConfig(request).configure(table)
return render(request, 'inventory/device_list.html', {'devices': table}) return render(request, 'inventory/device_list.html', {'devices': table})
@login_required @login_required
def nets_table_view(request, customer_id): def nets_table_view(request, pk):
table = NetsTable(Net.objects.filter(customer=customer_id)) table = NetsTable(Net.objects.filter(customer=pk))
RequestConfig(request).configure(table) RequestConfig(request).configure(table)
return render(request, 'inventory/net_list.html', {'nets': table}) return render(request, 'inventory/net_list.html', {'nets': table})