mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	Closes #8031: Remove automatic redirection of legacy slug-based URLs
This commit is contained in:
		@@ -5,6 +5,11 @@
 | 
			
		||||
!!! warning "Python 3.8 or Later Required"
 | 
			
		||||
    NetBox v3.2 requires Python 3.8 or later.
 | 
			
		||||
 | 
			
		||||
### Breaking Changes
 | 
			
		||||
 | 
			
		||||
* Automatic redirection of legacy slug-based URL paths has been removed.
 | 
			
		||||
 | 
			
		||||
### Other Changes
 | 
			
		||||
 | 
			
		||||
* [#7731](https://github.com/netbox-community/netbox/issues/7731) - Require Python 3.8 or later
 | 
			
		||||
* [#8031](https://github.com/netbox-community/netbox/issues/8031) - Remove automatic redirection of legacy slug-based URLs
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,6 @@ from django.urls import path
 | 
			
		||||
 | 
			
		||||
from dcim.views import CableCreateView, PathTraceView
 | 
			
		||||
from extras.views import ObjectChangeLogView, ObjectJournalView
 | 
			
		||||
from utilities.views import SlugRedirectView
 | 
			
		||||
from . import views
 | 
			
		||||
from .models import *
 | 
			
		||||
 | 
			
		||||
@@ -16,7 +15,6 @@ urlpatterns = [
 | 
			
		||||
    path('providers/edit/', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'),
 | 
			
		||||
    path('providers/delete/', views.ProviderBulkDeleteView.as_view(), name='provider_bulk_delete'),
 | 
			
		||||
    path('providers/<int:pk>/', views.ProviderView.as_view(), name='provider'),
 | 
			
		||||
    path('providers/<slug:slug>/', SlugRedirectView.as_view(), kwargs={'model': Provider}),
 | 
			
		||||
    path('providers/<int:pk>/edit/', views.ProviderEditView.as_view(), name='provider_edit'),
 | 
			
		||||
    path('providers/<int:pk>/delete/', views.ProviderDeleteView.as_view(), name='provider_delete'),
 | 
			
		||||
    path('providers/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='provider_changelog', kwargs={'model': Provider}),
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,6 @@ from django.urls import path
 | 
			
		||||
 | 
			
		||||
from extras.views import ObjectChangeLogView, ObjectJournalView
 | 
			
		||||
from ipam.views import ServiceEditView
 | 
			
		||||
from utilities.views import SlugRedirectView
 | 
			
		||||
from . import views
 | 
			
		||||
from .models import *
 | 
			
		||||
 | 
			
		||||
@@ -38,7 +37,6 @@ urlpatterns = [
 | 
			
		||||
    path('sites/edit/', views.SiteBulkEditView.as_view(), name='site_bulk_edit'),
 | 
			
		||||
    path('sites/delete/', views.SiteBulkDeleteView.as_view(), name='site_bulk_delete'),
 | 
			
		||||
    path('sites/<int:pk>/', views.SiteView.as_view(), name='site'),
 | 
			
		||||
    path('sites/<slug:slug>/', SlugRedirectView.as_view(), kwargs={'model': Site}),
 | 
			
		||||
    path('sites/<int:pk>/edit/', views.SiteEditView.as_view(), name='site_edit'),
 | 
			
		||||
    path('sites/<int:pk>/delete/', views.SiteDeleteView.as_view(), name='site_delete'),
 | 
			
		||||
    path('sites/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='site_changelog', kwargs={'model': Site}),
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,6 @@
 | 
			
		||||
from django.urls import path
 | 
			
		||||
 | 
			
		||||
from extras.views import ObjectChangeLogView, ObjectJournalView
 | 
			
		||||
from utilities.views import SlugRedirectView
 | 
			
		||||
from . import views
 | 
			
		||||
from .models import *
 | 
			
		||||
 | 
			
		||||
@@ -26,7 +25,6 @@ urlpatterns = [
 | 
			
		||||
    path('tenants/edit/', views.TenantBulkEditView.as_view(), name='tenant_bulk_edit'),
 | 
			
		||||
    path('tenants/delete/', views.TenantBulkDeleteView.as_view(), name='tenant_bulk_delete'),
 | 
			
		||||
    path('tenants/<int:pk>/', views.TenantView.as_view(), name='tenant'),
 | 
			
		||||
    path('tenants/<slug:slug>/', SlugRedirectView.as_view(), kwargs={'model': Tenant}),
 | 
			
		||||
    path('tenants/<int:pk>/edit/', views.TenantEditView.as_view(), name='tenant_edit'),
 | 
			
		||||
    path('tenants/<int:pk>/delete/', views.TenantDeleteView.as_view(), name='tenant_delete'),
 | 
			
		||||
    path('tenants/<int:pk>/changelog/', ObjectChangeLogView.as_view(), name='tenant_changelog', kwargs={'model': Tenant}),
 | 
			
		||||
 
 | 
			
		||||
@@ -125,14 +125,3 @@ class GetReturnURLMixin:
 | 
			
		||||
 | 
			
		||||
        # If all else fails, return home. Ideally this should never happen.
 | 
			
		||||
        return reverse('home')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Views
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
class SlugRedirectView(View):
 | 
			
		||||
 | 
			
		||||
    def get(self, request, model, slug):
 | 
			
		||||
        obj = get_object_or_404(model.objects.restrict(request.user, 'view'), slug=slug)
 | 
			
		||||
        return redirect(obj.get_absolute_url())
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user