From 85ad8a8a175dcb0b9cdc59bcb7150e4302a91909 Mon Sep 17 00:00:00 2001 From: Mohamed Hamza Date: Thu, 3 May 2018 01:45:21 +0200 Subject: [PATCH] Added Authentication for the Whole Dashboard --- netbox/circuits/urls.py | 12 ++++++--- netbox/dcim/urls.py | 49 +++++++++++++++++++++-------------- netbox/extras/urls.py | 6 +++-- netbox/ipam/urls.py | 21 ++++++++------- netbox/netbox/urls.py | 5 ++-- netbox/secrets/urls.py | 5 ++-- netbox/tenancy/urls.py | 7 +++-- netbox/virtualization/urls.py | 15 +++++++---- 8 files changed, 74 insertions(+), 46 deletions(-) diff --git a/netbox/circuits/urls.py b/netbox/circuits/urls.py index 569c1eb9a..f08a904f5 100644 --- a/netbox/circuits/urls.py +++ b/netbox/circuits/urls.py @@ -4,11 +4,13 @@ from django.conf.urls import url from . import views +from django.contrib.auth.decorators import login_required + app_name = 'circuits' urlpatterns = [ # Providers - url(r'^providers/$', views.ProviderListView.as_view(), name='provider_list'), + url(r'^providers/$', login_required(views.ProviderListView.as_view()), name='provider_list'), url(r'^providers/add/$', views.ProviderCreateView.as_view(), name='provider_add'), url(r'^providers/import/$', views.ProviderBulkImportView.as_view(), name='provider_import'), url(r'^providers/edit/$', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'), @@ -18,14 +20,15 @@ urlpatterns = [ url(r'^providers/(?P[\w-]+)/delete/$', views.ProviderDeleteView.as_view(), name='provider_delete'), # Circuit types - url(r'^circuit-types/$', views.CircuitTypeListView.as_view(), name='circuittype_list'), + url(r'^circuit-types/$', + login_required(views.CircuitTypeListView.as_view()), name='circuittype_list'), url(r'^circuit-types/add/$', views.CircuitTypeCreateView.as_view(), name='circuittype_add'), url(r'^circuit-types/import/$', views.CircuitTypeBulkImportView.as_view(), name='circuittype_import'), url(r'^circuit-types/delete/$', views.CircuitTypeBulkDeleteView.as_view(), name='circuittype_bulk_delete'), url(r'^circuit-types/(?P[\w-]+)/edit/$', views.CircuitTypeEditView.as_view(), name='circuittype_edit'), # Circuits - url(r'^circuits/$', views.CircuitListView.as_view(), name='circuit_list'), + url(r'^circuits/$', login_required(views.CircuitListView.as_view()), name='circuit_list'), url(r'^circuits/add/$', views.CircuitCreateView.as_view(), name='circuit_add'), url(r'^circuits/import/$', views.CircuitBulkImportView.as_view(), name='circuit_import'), url(r'^circuits/edit/$', views.CircuitBulkEditView.as_view(), name='circuit_bulk_edit'), @@ -36,7 +39,8 @@ urlpatterns = [ url(r'^circuits/(?P\d+)/terminations/swap/$', views.circuit_terminations_swap, name='circuit_terminations_swap'), # Circuit terminations - url(r'^circuits/(?P\d+)/terminations/add/$', views.CircuitTerminationCreateView.as_view(), name='circuittermination_add'), + url(r'^circuits/(?P\d+)/terminations/add/$', + login_required(views.CircuitTerminationCreateView.as_view()), name='circuittermination_add'), url(r'^circuit-terminations/(?P\d+)/edit/$', views.CircuitTerminationEditView.as_view(), name='circuittermination_edit'), url(r'^circuit-terminations/(?P\d+)/delete/$', views.CircuitTerminationDeleteView.as_view(), name='circuittermination_delete'), diff --git a/netbox/dcim/urls.py b/netbox/dcim/urls.py index 5682bd8e7..bd7744f53 100644 --- a/netbox/dcim/urls.py +++ b/netbox/dcim/urls.py @@ -7,19 +7,20 @@ from ipam.views import ServiceCreateView from secrets.views import secret_add from . import views from .models import Device, Rack, Site +from django.contrib.auth.decorators import login_required app_name = 'dcim' urlpatterns = [ # Regions - url(r'^regions/$', views.RegionListView.as_view(), name='region_list'), + url(r'^regions/$', login_required(views.RegionListView.as_view()), name='region_list'), url(r'^regions/add/$', views.RegionCreateView.as_view(), name='region_add'), url(r'^regions/import/$', views.RegionBulkImportView.as_view(), name='region_import'), url(r'^regions/delete/$', views.RegionBulkDeleteView.as_view(), name='region_bulk_delete'), url(r'^regions/(?P\d+)/edit/$', views.RegionEditView.as_view(), name='region_edit'), # Sites - url(r'^sites/$', views.SiteListView.as_view(), name='site_list'), + url(r'^sites/$', login_required(views.SiteListView.as_view()), name='site_list'), url(r'^sites/add/$', views.SiteCreateView.as_view(), name='site_add'), url(r'^sites/import/$', views.SiteBulkImportView.as_view(), name='site_import'), url(r'^sites/edit/$', views.SiteBulkEditView.as_view(), name='site_bulk_edit'), @@ -29,29 +30,31 @@ urlpatterns = [ url(r'^sites/(?P\d+)/images/add/$', ImageAttachmentEditView.as_view(), name='site_add_image', kwargs={'model': Site}), # Rack groups - url(r'^rack-groups/$', views.RackGroupListView.as_view(), name='rackgroup_list'), + url(r'^rack-groups/$', login_required(views.RackGroupListView.as_view()), name='rackgroup_list'), url(r'^rack-groups/add/$', views.RackGroupCreateView.as_view(), name='rackgroup_add'), url(r'^rack-groups/import/$', views.RackGroupBulkImportView.as_view(), name='rackgroup_import'), url(r'^rack-groups/delete/$', views.RackGroupBulkDeleteView.as_view(), name='rackgroup_bulk_delete'), url(r'^rack-groups/(?P\d+)/edit/$', views.RackGroupEditView.as_view(), name='rackgroup_edit'), # Rack roles - url(r'^rack-roles/$', views.RackRoleListView.as_view(), name='rackrole_list'), + url(r'^rack-roles/$', login_required(views.RackRoleListView.as_view()), name='rackrole_list'), url(r'^rack-roles/add/$', views.RackRoleCreateView.as_view(), name='rackrole_add'), url(r'^rack-roles/import/$', views.RackRoleBulkImportView.as_view(), name='rackrole_import'), url(r'^rack-roles/delete/$', views.RackRoleBulkDeleteView.as_view(), name='rackrole_bulk_delete'), url(r'^rack-roles/(?P\d+)/edit/$', views.RackRoleEditView.as_view(), name='rackrole_edit'), # Rack reservations - url(r'^rack-reservations/$', views.RackReservationListView.as_view(), name='rackreservation_list'), + url(r'^rack-reservations/$', + login_required(views.RackReservationListView.as_view()), name='rackreservation_list'), url(r'^rack-reservations/edit/$', views.RackReservationBulkEditView.as_view(), name='rackreservation_bulk_edit'), url(r'^rack-reservations/delete/$', views.RackReservationBulkDeleteView.as_view(), name='rackreservation_bulk_delete'), url(r'^rack-reservations/(?P\d+)/edit/$', views.RackReservationEditView.as_view(), name='rackreservation_edit'), url(r'^rack-reservations/(?P\d+)/delete/$', views.RackReservationDeleteView.as_view(), name='rackreservation_delete'), # Racks - url(r'^racks/$', views.RackListView.as_view(), name='rack_list'), - url(r'^rack-elevations/$', views.RackElevationListView.as_view(), name='rack_elevation_list'), + url(r'^racks/$', login_required(views.RackListView.as_view()), name='rack_list'), + url(r'^rack-elevations/$', + login_required(views.RackElevationListView.as_view()), name='rack_elevation_list'), url(r'^racks/add/$', views.RackEditView.as_view(), name='rack_add'), url(r'^racks/import/$', views.RackBulkImportView.as_view(), name='rack_import'), url(r'^racks/edit/$', views.RackBulkEditView.as_view(), name='rack_bulk_edit'), @@ -63,14 +66,15 @@ urlpatterns = [ url(r'^racks/(?P\d+)/images/add/$', ImageAttachmentEditView.as_view(), name='rack_add_image', kwargs={'model': Rack}), # Manufacturers - url(r'^manufacturers/$', views.ManufacturerListView.as_view(), name='manufacturer_list'), + url(r'^manufacturers/$', + login_required(views.ManufacturerListView.as_view()), name='manufacturer_list'), url(r'^manufacturers/add/$', views.ManufacturerCreateView.as_view(), name='manufacturer_add'), url(r'^manufacturers/import/$', views.ManufacturerBulkImportView.as_view(), name='manufacturer_import'), url(r'^manufacturers/delete/$', views.ManufacturerBulkDeleteView.as_view(), name='manufacturer_bulk_delete'), url(r'^manufacturers/(?P[\w-]+)/edit/$', views.ManufacturerEditView.as_view(), name='manufacturer_edit'), # Device types - url(r'^device-types/$', views.DeviceTypeListView.as_view(), name='devicetype_list'), + url(r'^device-types/$', login_required(views.DeviceTypeListView.as_view()), name='devicetype_list'), url(r'^device-types/add/$', views.DeviceTypeCreateView.as_view(), name='devicetype_add'), url(r'^device-types/import/$', views.DeviceTypeBulkImportView.as_view(), name='devicetype_import'), url(r'^device-types/edit/$', views.DeviceTypeBulkEditView.as_view(), name='devicetype_bulk_edit'), @@ -80,7 +84,8 @@ urlpatterns = [ url(r'^device-types/(?P\d+)/delete/$', views.DeviceTypeDeleteView.as_view(), name='devicetype_delete'), # Console port templates - url(r'^device-types/(?P\d+)/console-ports/add/$', views.ConsolePortTemplateCreateView.as_view(), name='devicetype_add_consoleport'), + url(r'^device-types/(?P\d+)/console-ports/add/$', + login_required(views.ConsolePortTemplateCreateView.as_view()), name='devicetype_add_consoleport'), url(r'^device-types/(?P\d+)/console-ports/delete/$', views.ConsolePortTemplateBulkDeleteView.as_view(), name='devicetype_delete_consoleport'), # Console server port templates @@ -105,21 +110,21 @@ urlpatterns = [ url(r'^device-types/(?P\d+)/device-bays/delete/$', views.DeviceBayTemplateBulkDeleteView.as_view(), name='devicetype_delete_devicebay'), # Device roles - url(r'^device-roles/$', views.DeviceRoleListView.as_view(), name='devicerole_list'), + url(r'^device-roles/$', login_required(views.DeviceRoleListView.as_view()), name='devicerole_list'), url(r'^device-roles/add/$', views.DeviceRoleCreateView.as_view(), name='devicerole_add'), url(r'^device-roles/import/$', views.DeviceRoleBulkImportView.as_view(), name='devicerole_import'), url(r'^device-roles/delete/$', views.DeviceRoleBulkDeleteView.as_view(), name='devicerole_bulk_delete'), url(r'^device-roles/(?P[\w-]+)/edit/$', views.DeviceRoleEditView.as_view(), name='devicerole_edit'), # Platforms - url(r'^platforms/$', views.PlatformListView.as_view(), name='platform_list'), + url(r'^platforms/$', login_required(views.PlatformListView.as_view()), name='platform_list'), url(r'^platforms/add/$', views.PlatformCreateView.as_view(), name='platform_add'), url(r'^platforms/import/$', views.PlatformBulkImportView.as_view(), name='platform_import'), url(r'^platforms/delete/$', views.PlatformBulkDeleteView.as_view(), name='platform_bulk_delete'), url(r'^platforms/(?P[\w-]+)/edit/$', views.PlatformEditView.as_view(), name='platform_edit'), # Devices - url(r'^devices/$', views.DeviceListView.as_view(), name='device_list'), + url(r'^devices/$', login_required(views.DeviceListView.as_view()), name='device_list'), url(r'^devices/add/$', views.DeviceCreateView.as_view(), name='device_add'), url(r'^devices/import/$', views.DeviceBulkImportView.as_view(), name='device_import'), url(r'^devices/import/child-devices/$', views.ChildDeviceBulkImportView.as_view(), name='device_import_child'), @@ -159,7 +164,8 @@ urlpatterns = [ # Power ports url(r'^devices/power-ports/add/$', views.DeviceBulkAddPowerPortView.as_view(), name='device_bulk_add_powerport'), url(r'^devices/(?P\d+)/power-ports/add/$', views.PowerPortCreateView.as_view(), name='powerport_add'), - url(r'^devices/(?P\d+)/power-ports/delete/$', views.PowerPortBulkDeleteView.as_view(), name='powerport_bulk_delete'), + url(r'^devices/(?P\d+)/power-ports/delete/$', + login_required(views.PowerPortBulkDeleteView.as_view()), name='powerport_bulk_delete'), url(r'^power-ports/(?P\d+)/connect/$', views.PowerPortConnectView.as_view(), name='powerport_connect'), url(r'^power-ports/(?P\d+)/disconnect/$', views.PowerPortDisconnectView.as_view(), name='powerport_disconnect'), url(r'^power-ports/(?P\d+)/edit/$', views.PowerPortEditView.as_view(), name='powerport_edit'), @@ -200,7 +206,8 @@ urlpatterns = [ url(r'^device-bays/rename/$', views.DeviceBayBulkRenameView.as_view(), name='devicebay_bulk_rename'), # Inventory items - url(r'^inventory-items/$', views.InventoryItemListView.as_view(), name='inventoryitem_list'), + url(r'^inventory-items/$', + login_required(views.InventoryItemListView.as_view()), name='inventoryitem_list'), url(r'^inventory-items/import/$', views.InventoryItemBulkImportView.as_view(), name='inventoryitem_import'), url(r'^inventory-items/edit/$', views.InventoryItemBulkEditView.as_view(), name='inventoryitem_bulk_edit'), url(r'^inventory-items/delete/$', views.InventoryItemBulkDeleteView.as_view(), name='inventoryitem_bulk_delete'), @@ -209,15 +216,19 @@ urlpatterns = [ url(r'^devices/(?P\d+)/inventory-items/add/$', views.InventoryItemEditView.as_view(), name='inventoryitem_add'), # Console/power/interface connections - url(r'^console-connections/$', views.ConsoleConnectionsListView.as_view(), name='console_connections_list'), + url(r'^console-connections/$', + login_required(views.ConsoleConnectionsListView.as_view()), name='console_connections_list'), url(r'^console-connections/import/$', views.ConsoleConnectionsBulkImportView.as_view(), name='console_connections_import'), - url(r'^power-connections/$', views.PowerConnectionsListView.as_view(), name='power_connections_list'), + url(r'^power-connections/$', + login_required(views.PowerConnectionsListView.as_view()), name='power_connections_list'), url(r'^power-connections/import/$', views.PowerConnectionsBulkImportView.as_view(), name='power_connections_import'), - url(r'^interface-connections/$', views.InterfaceConnectionsListView.as_view(), name='interface_connections_list'), + url(r'^interface-connections/$', + login_required(views.InterfaceConnectionsListView.as_view()), name='interface_connections_list'), url(r'^interface-connections/import/$', views.InterfaceConnectionsBulkImportView.as_view(), name='interface_connections_import'), # Virtual chassis - url(r'^virtual-chassis/$', views.VirtualChassisListView.as_view(), name='virtualchassis_list'), + url(r'^virtual-chassis/$', + login_required(views.VirtualChassisListView.as_view()), name='virtualchassis_list'), url(r'^virtual-chassis/add/$', views.VirtualChassisCreateView.as_view(), name='virtualchassis_add'), url(r'^virtual-chassis/(?P\d+)/edit/$', views.VirtualChassisEditView.as_view(), name='virtualchassis_edit'), url(r'^virtual-chassis/(?P\d+)/delete/$', views.VirtualChassisDeleteView.as_view(), name='virtualchassis_delete'), diff --git a/netbox/extras/urls.py b/netbox/extras/urls.py index 13e50a229..94494990a 100644 --- a/netbox/extras/urls.py +++ b/netbox/extras/urls.py @@ -3,16 +3,18 @@ from __future__ import unicode_literals from django.conf.urls import url from extras import views +from django.contrib.auth.decorators import login_required app_name = 'extras' urlpatterns = [ # Image attachments - url(r'^image-attachments/(?P\d+)/edit/$', views.ImageAttachmentEditView.as_view(), name='imageattachment_edit'), + url(r'^image-attachments/(?P\d+)/edit/$', + login_required(views.ImageAttachmentEditView.as_view()), name='imageattachment_edit'), url(r'^image-attachments/(?P\d+)/delete/$', views.ImageAttachmentDeleteView.as_view(), name='imageattachment_delete'), # Reports - url(r'^reports/$', views.ReportListView.as_view(), name='report_list'), + url(r'^reports/$', login_required(views.ReportListView.as_view()), name='report_list'), url(r'^reports/(?P[^/]+\.[^/]+)/$', views.ReportView.as_view(), name='report'), url(r'^reports/(?P[^/]+\.[^/]+)/run/$', views.ReportRunView.as_view(), name='report_run'), diff --git a/netbox/ipam/urls.py b/netbox/ipam/urls.py index aa7c17a5c..313664406 100644 --- a/netbox/ipam/urls.py +++ b/netbox/ipam/urls.py @@ -3,13 +3,13 @@ from __future__ import unicode_literals from django.conf.urls import url from . import views - +from django.contrib.auth.decorators import login_required app_name = 'ipam' urlpatterns = [ # VRFs - url(r'^vrfs/$', views.VRFListView.as_view(), name='vrf_list'), + url(r'^vrfs/$', login_required(views.VRFListView.as_view()), name='vrf_list'), url(r'^vrfs/add/$', views.VRFCreateView.as_view(), name='vrf_add'), url(r'^vrfs/import/$', views.VRFBulkImportView.as_view(), name='vrf_import'), url(r'^vrfs/edit/$', views.VRFBulkEditView.as_view(), name='vrf_bulk_edit'), @@ -19,14 +19,14 @@ urlpatterns = [ url(r'^vrfs/(?P\d+)/delete/$', views.VRFDeleteView.as_view(), name='vrf_delete'), # RIRs - url(r'^rirs/$', views.RIRListView.as_view(), name='rir_list'), + url(r'^rirs/$', login_required(views.RIRListView.as_view()), name='rir_list'), url(r'^rirs/add/$', views.RIRCreateView.as_view(), name='rir_add'), url(r'^rirs/import/$', views.RIRBulkImportView.as_view(), name='rir_import'), url(r'^rirs/delete/$', views.RIRBulkDeleteView.as_view(), name='rir_bulk_delete'), url(r'^rirs/(?P[\w-]+)/edit/$', views.RIREditView.as_view(), name='rir_edit'), # Aggregates - url(r'^aggregates/$', views.AggregateListView.as_view(), name='aggregate_list'), + url(r'^aggregates/$', login_required(views.AggregateListView.as_view()), name='aggregate_list'), url(r'^aggregates/add/$', views.AggregateCreateView.as_view(), name='aggregate_add'), url(r'^aggregates/import/$', views.AggregateBulkImportView.as_view(), name='aggregate_import'), url(r'^aggregates/edit/$', views.AggregateBulkEditView.as_view(), name='aggregate_bulk_edit'), @@ -36,14 +36,14 @@ urlpatterns = [ url(r'^aggregates/(?P\d+)/delete/$', views.AggregateDeleteView.as_view(), name='aggregate_delete'), # Roles - url(r'^roles/$', views.RoleListView.as_view(), name='role_list'), + url(r'^roles/$', login_required(views.RoleListView.as_view()), name='role_list'), url(r'^roles/add/$', views.RoleCreateView.as_view(), name='role_add'), url(r'^roles/import/$', views.RoleBulkImportView.as_view(), name='role_import'), url(r'^roles/delete/$', views.RoleBulkDeleteView.as_view(), name='role_bulk_delete'), url(r'^roles/(?P[\w-]+)/edit/$', views.RoleEditView.as_view(), name='role_edit'), # Prefixes - url(r'^prefixes/$', views.PrefixListView.as_view(), name='prefix_list'), + url(r'^prefixes/$', login_required(views.PrefixListView.as_view()), name='prefix_list'), url(r'^prefixes/add/$', views.PrefixCreateView.as_view(), name='prefix_add'), url(r'^prefixes/import/$', views.PrefixBulkImportView.as_view(), name='prefix_import'), url(r'^prefixes/edit/$', views.PrefixBulkEditView.as_view(), name='prefix_bulk_edit'), @@ -55,7 +55,7 @@ urlpatterns = [ url(r'^prefixes/(?P\d+)/ip-addresses/$', views.PrefixIPAddressesView.as_view(), name='prefix_ipaddresses'), # IP addresses - url(r'^ip-addresses/$', views.IPAddressListView.as_view(), name='ipaddress_list'), + url(r'^ip-addresses/$', login_required(views.IPAddressListView.as_view()), name='ipaddress_list'), url(r'^ip-addresses/add/$', views.IPAddressCreateView.as_view(), name='ipaddress_add'), url(r'^ip-addresses/bulk-add/$', views.IPAddressBulkCreateView.as_view(), name='ipaddress_bulk_add'), url(r'^ip-addresses/import/$', views.IPAddressBulkImportView.as_view(), name='ipaddress_import'), @@ -67,14 +67,14 @@ urlpatterns = [ url(r'^ip-addresses/(?P\d+)/delete/$', views.IPAddressDeleteView.as_view(), name='ipaddress_delete'), # VLAN groups - url(r'^vlan-groups/$', views.VLANGroupListView.as_view(), name='vlangroup_list'), + url(r'^vlan-groups/$', login_required(views.VLANGroupListView.as_view()), name='vlangroup_list'), url(r'^vlan-groups/add/$', views.VLANGroupCreateView.as_view(), name='vlangroup_add'), url(r'^vlan-groups/import/$', views.VLANGroupBulkImportView.as_view(), name='vlangroup_import'), url(r'^vlan-groups/delete/$', views.VLANGroupBulkDeleteView.as_view(), name='vlangroup_bulk_delete'), url(r'^vlan-groups/(?P\d+)/edit/$', views.VLANGroupEditView.as_view(), name='vlangroup_edit'), # VLANs - url(r'^vlans/$', views.VLANListView.as_view(), name='vlan_list'), + url(r'^vlans/$', login_required(views.VLANListView.as_view()), name='vlan_list'), url(r'^vlans/add/$', views.VLANCreateView.as_view(), name='vlan_add'), url(r'^vlans/import/$', views.VLANBulkImportView.as_view(), name='vlan_import'), url(r'^vlans/edit/$', views.VLANBulkEditView.as_view(), name='vlan_bulk_edit'), @@ -85,7 +85,8 @@ urlpatterns = [ url(r'^vlans/(?P\d+)/delete/$', views.VLANDeleteView.as_view(), name='vlan_delete'), # Services - url(r'^services/(?P\d+)/edit/$', views.ServiceEditView.as_view(), name='service_edit'), + url(r'^services/(?P\d+)/edit/$', + login_required(views.ServiceEditView.as_view()), name='service_edit'), url(r'^services/(?P\d+)/delete/$', views.ServiceDeleteView.as_view(), name='service_delete'), ] diff --git a/netbox/netbox/urls.py b/netbox/netbox/urls.py index 5f7b26a71..42b610760 100644 --- a/netbox/netbox/urls.py +++ b/netbox/netbox/urls.py @@ -9,6 +9,7 @@ from drf_yasg import openapi from netbox.views import APIRootView, HomeView, SearchView from users.views import LoginView, LogoutView +from django.contrib.auth.decorators import login_required schema_view = get_schema_view( openapi.Info( @@ -26,8 +27,8 @@ schema_view = get_schema_view( _patterns = [ # Base views - url(r'^$', HomeView.as_view(), name='home'), - url(r'^search/$', SearchView.as_view(), name='search'), + url(r'^$', login_required(HomeView.as_view()), name='home'), + url(r'^search/$', login_required(SearchView.as_view()), name='search'), # Login/logout url(r'^login/$', LoginView.as_view(), name='login'), diff --git a/netbox/secrets/urls.py b/netbox/secrets/urls.py index cd6415719..5cd9718b7 100644 --- a/netbox/secrets/urls.py +++ b/netbox/secrets/urls.py @@ -3,19 +3,20 @@ from __future__ import unicode_literals from django.conf.urls import url from . import views +from django.contrib.auth.decorators import login_required app_name = 'secrets' urlpatterns = [ # Secret roles - url(r'^secret-roles/$', views.SecretRoleListView.as_view(), name='secretrole_list'), + url(r'^secret-roles/$', login_required(views.SecretRoleListView.as_view()), name='secretrole_list'), url(r'^secret-roles/add/$', views.SecretRoleCreateView.as_view(), name='secretrole_add'), url(r'^secret-roles/import/$', views.SecretRoleBulkImportView.as_view(), name='secretrole_import'), url(r'^secret-roles/delete/$', views.SecretRoleBulkDeleteView.as_view(), name='secretrole_bulk_delete'), url(r'^secret-roles/(?P[\w-]+)/edit/$', views.SecretRoleEditView.as_view(), name='secretrole_edit'), # Secrets - url(r'^secrets/$', views.SecretListView.as_view(), name='secret_list'), + url(r'^secrets/$', login_required(views.SecretListView.as_view()), name='secret_list'), url(r'^secrets/import/$', views.SecretBulkImportView.as_view(), name='secret_import'), url(r'^secrets/edit/$', views.SecretBulkEditView.as_view(), name='secret_bulk_edit'), url(r'^secrets/delete/$', views.SecretBulkDeleteView.as_view(), name='secret_bulk_delete'), diff --git a/netbox/tenancy/urls.py b/netbox/tenancy/urls.py index 668b194f0..b6d77d69c 100644 --- a/netbox/tenancy/urls.py +++ b/netbox/tenancy/urls.py @@ -3,19 +3,22 @@ from __future__ import unicode_literals from django.conf.urls import url from . import views +from django.contrib.auth.decorators import login_required app_name = 'tenancy' urlpatterns = [ # Tenant groups - url(r'^tenant-groups/$', views.TenantGroupListView.as_view(), name='tenantgroup_list'), + url(r'^tenant-groups/$', + login_required(views.TenantGroupListView.as_view()), name='tenantgroup_list'), url(r'^tenant-groups/add/$', views.TenantGroupCreateView.as_view(), name='tenantgroup_add'), url(r'^tenant-groups/import/$', views.TenantGroupBulkImportView.as_view(), name='tenantgroup_import'), url(r'^tenant-groups/delete/$', views.TenantGroupBulkDeleteView.as_view(), name='tenantgroup_bulk_delete'), url(r'^tenant-groups/(?P[\w-]+)/edit/$', views.TenantGroupEditView.as_view(), name='tenantgroup_edit'), # Tenants - url(r'^tenants/$', views.TenantListView.as_view(), name='tenant_list'), + url(r'^tenants/$', + login_required(login_required(views.TenantListView.as_view())), name='tenant_list'), url(r'^tenants/add/$', views.TenantCreateView.as_view(), name='tenant_add'), url(r'^tenants/import/$', views.TenantBulkImportView.as_view(), name='tenant_import'), url(r'^tenants/edit/$', views.TenantBulkEditView.as_view(), name='tenant_bulk_edit'), diff --git a/netbox/virtualization/urls.py b/netbox/virtualization/urls.py index 2ba0daff7..9fa802666 100644 --- a/netbox/virtualization/urls.py +++ b/netbox/virtualization/urls.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url +from django.contrib.auth.decorators import login_required from ipam.views import ServiceCreateView from . import views @@ -9,21 +10,23 @@ app_name = 'virtualization' urlpatterns = [ # Cluster types - url(r'^cluster-types/$', views.ClusterTypeListView.as_view(), name='clustertype_list'), + url(r'^cluster-types/$', + login_required(views.ClusterTypeListView.as_view()), name='clustertype_list'), url(r'^cluster-types/add/$', views.ClusterTypeCreateView.as_view(), name='clustertype_add'), url(r'^cluster-types/import/$', views.ClusterTypeBulkImportView.as_view(), name='clustertype_import'), url(r'^cluster-types/delete/$', views.ClusterTypeBulkDeleteView.as_view(), name='clustertype_bulk_delete'), url(r'^cluster-types/(?P[\w-]+)/edit/$', views.ClusterTypeEditView.as_view(), name='clustertype_edit'), # Cluster groups - url(r'^cluster-groups/$', views.ClusterGroupListView.as_view(), name='clustergroup_list'), + url(r'^cluster-groups/$', + login_required(views.ClusterGroupListView.as_view()), name='clustergroup_list'), url(r'^cluster-groups/add/$', views.ClusterGroupCreateView.as_view(), name='clustergroup_add'), url(r'^cluster-groups/import/$', views.ClusterGroupBulkImportView.as_view(), name='clustergroup_import'), url(r'^cluster-groups/delete/$', views.ClusterGroupBulkDeleteView.as_view(), name='clustergroup_bulk_delete'), url(r'^cluster-groups/(?P[\w-]+)/edit/$', views.ClusterGroupEditView.as_view(), name='clustergroup_edit'), # Clusters - url(r'^clusters/$', views.ClusterListView.as_view(), name='cluster_list'), + url(r'^clusters/$', login_required(views.ClusterListView.as_view()), name='cluster_list'), url(r'^clusters/add/$', views.ClusterCreateView.as_view(), name='cluster_add'), url(r'^clusters/import/$', views.ClusterBulkImportView.as_view(), name='cluster_import'), url(r'^clusters/edit/$', views.ClusterBulkEditView.as_view(), name='cluster_bulk_edit'), @@ -35,7 +38,8 @@ urlpatterns = [ url(r'^clusters/(?P\d+)/devices/remove/$', views.ClusterRemoveDevicesView.as_view(), name='cluster_remove_devices'), # Virtual machines - url(r'^virtual-machines/$', views.VirtualMachineListView.as_view(), name='virtualmachine_list'), + url(r'^virtual-machines/$', + login_required(views.VirtualMachineListView.as_view()), name='virtualmachine_list'), url(r'^virtual-machines/add/$', views.VirtualMachineCreateView.as_view(), name='virtualmachine_add'), url(r'^virtual-machines/import/$', views.VirtualMachineBulkImportView.as_view(), name='virtualmachine_import'), url(r'^virtual-machines/edit/$', views.VirtualMachineBulkEditView.as_view(), name='virtualmachine_bulk_edit'), @@ -46,7 +50,8 @@ urlpatterns = [ url(r'^virtual-machines/(?P\d+)/services/assign/$', ServiceCreateView.as_view(), name='virtualmachine_service_assign'), # VM interfaces - url(r'^virtual-machines/interfaces/add/$', views.VirtualMachineBulkAddInterfaceView.as_view(), name='virtualmachine_bulk_add_interface'), + url(r'^virtual-machines/interfaces/add/$', + login_required(views.VirtualMachineBulkAddInterfaceView.as_view()), name='virtualmachine_bulk_add_interface'), url(r'^virtual-machines/(?P\d+)/interfaces/add/$', views.InterfaceCreateView.as_view(), name='interface_add'), url(r'^virtual-machines/(?P\d+)/interfaces/edit/$', views.InterfaceBulkEditView.as_view(), name='interface_bulk_edit'), url(r'^virtual-machines/(?P\d+)/interfaces/delete/$', views.InterfaceBulkDeleteView.as_view(), name='interface_bulk_delete'),