mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 01:41:22 -06:00
16136 remove Django Admin (#17619)
* 16136 remove Django Admin
* 16136 fix plugin test
* 16136 fix migrations
* Revert "16136 fix migrations"
This reverts commit 80296fa1ec
.
* Remove obsolete admin module from dummy plugin
* Remove obsolete admin site configuration
* Remove unused import statement
* Remove obsolete admin module
* Misc cleanup
---------
Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
parent
85396866bc
commit
c60a0f4f56
@ -96,14 +96,6 @@ The maximum size (in bytes) of an incoming HTTP request (i.e. `GET` or `POST` da
|
||||
|
||||
---
|
||||
|
||||
## DJANGO_ADMIN_ENABLED
|
||||
|
||||
Default: False
|
||||
|
||||
Setting this to True installs the `django.contrib.admin` app and enables the [Django admin UI](https://docs.djangoproject.com/en/5.0/ref/contrib/admin/). This may be necessary to support older plugins which do not integrate with the native NetBox interface.
|
||||
|
||||
---
|
||||
|
||||
## ENFORCE_GLOBAL_UNIQUE
|
||||
|
||||
!!! tip "Dynamic Configuration Parameter"
|
||||
|
@ -1,14 +0,0 @@
|
||||
from django.conf import settings
|
||||
from django.contrib.admin import site as admin_site
|
||||
from taggit.models import Tag
|
||||
|
||||
|
||||
# Override default AdminSite attributes so we can avoid creating and
|
||||
# registering our own class
|
||||
admin_site.site_header = 'NetBox Administration'
|
||||
admin_site.site_title = 'NetBox'
|
||||
admin_site.site_url = '/{}'.format(settings.BASE_PATH)
|
||||
admin_site.index_template = 'admin/index.html'
|
||||
|
||||
# Unregister the unused stock Tag model provided by django-taggit
|
||||
admin_site.unregister(Tag)
|
@ -39,8 +39,6 @@ REDIS = {
|
||||
|
||||
SECRET_KEY = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
|
||||
|
||||
DJANGO_ADMIN_ENABLED = True
|
||||
|
||||
DEFAULT_PERMISSIONS = {}
|
||||
|
||||
LOGGING = {
|
||||
|
@ -3,13 +3,11 @@ from importlib import import_module
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.conf.urls import include
|
||||
from django.contrib.admin.views.decorators import staff_member_required
|
||||
from django.urls import path
|
||||
from django.utils.module_loading import import_string, module_has_submodule
|
||||
|
||||
from . import views
|
||||
|
||||
# Initialize URL base, API, and admin URL patterns for plugins
|
||||
plugin_patterns = []
|
||||
plugin_api_patterns = [
|
||||
path('', views.PluginsAPIRootView.as_view(), name='api-root'),
|
||||
|
@ -110,7 +110,6 @@ DEFAULT_PERMISSIONS = getattr(configuration, 'DEFAULT_PERMISSIONS', {
|
||||
'users.delete_token': ({'user': '$user'},),
|
||||
})
|
||||
DEVELOPER = getattr(configuration, 'DEVELOPER', False)
|
||||
DJANGO_ADMIN_ENABLED = getattr(configuration, 'DJANGO_ADMIN_ENABLED', False)
|
||||
DOCS_ROOT = getattr(configuration, 'DOCS_ROOT', os.path.join(os.path.dirname(BASE_DIR), 'docs'))
|
||||
EMAIL = getattr(configuration, 'EMAIL', {})
|
||||
EVENTS_PIPELINE = getattr(configuration, 'EVENTS_PIPELINE', (
|
||||
@ -373,7 +372,6 @@ SERVER_EMAIL = EMAIL.get('FROM_EMAIL')
|
||||
#
|
||||
|
||||
INSTALLED_APPS = [
|
||||
'django.contrib.admin',
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
@ -411,8 +409,6 @@ INSTALLED_APPS = [
|
||||
]
|
||||
if not DEBUG:
|
||||
INSTALLED_APPS.remove('debug_toolbar')
|
||||
if not DJANGO_ADMIN_ENABLED:
|
||||
INSTALLED_APPS.remove('django.contrib.admin')
|
||||
|
||||
# Middleware
|
||||
MIDDLEWARE = [
|
||||
@ -549,7 +545,6 @@ EXEMPT_EXCLUDE_MODELS = (
|
||||
|
||||
# All URLs starting with a string listed here are exempt from maintenance mode enforcement
|
||||
MAINTENANCE_EXEMPT_PATHS = (
|
||||
f'/{BASE_PATH}admin/',
|
||||
f'/{BASE_PATH}extras/config-revisions/', # Allow modifying the configuration
|
||||
LOGIN_URL,
|
||||
LOGIN_REDIRECT_URL,
|
||||
|
@ -1,9 +0,0 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from netbox.admin import admin_site
|
||||
from .models import DummyModel
|
||||
|
||||
|
||||
@admin.register(DummyModel, site=admin_site)
|
||||
class DummyModelAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'number')
|
@ -36,12 +36,6 @@ class PluginTest(TestCase):
|
||||
instance.delete()
|
||||
self.assertIsNone(instance.pk)
|
||||
|
||||
def test_admin(self):
|
||||
|
||||
# Test admin view URL resolution
|
||||
url = reverse('admin:dummy_plugin_dummymodel_add')
|
||||
self.assertEqual(url, '/admin/dummy_plugin/dummymodel/add/')
|
||||
|
||||
@override_settings(LOGIN_REQUIRED=False)
|
||||
def test_views(self):
|
||||
|
||||
|
@ -77,11 +77,6 @@ _patterns = [
|
||||
path('api/plugins/', include((plugin_api_patterns, 'plugins-api'))),
|
||||
]
|
||||
|
||||
# Django admin UI
|
||||
if settings.DJANGO_ADMIN_ENABLED:
|
||||
from .admin import admin_site
|
||||
_patterns.append(path('admin/', admin_site.urls))
|
||||
|
||||
# django-debug-toolbar
|
||||
if settings.DEBUG:
|
||||
import debug_toolbar
|
||||
|
@ -36,11 +36,6 @@
|
||||
</div>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-end dropdown-menu-arrow" {% htmx_boost %}>
|
||||
{% if config.DJANGO_ADMIN_ENABLED and request.user.is_staff %}
|
||||
<a class="dropdown-item" href="{% url 'admin:index' %}">
|
||||
<i class="mdi mdi-cog"></i> {% trans "Django Admin" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="{% url 'account:profile' %}" class="dropdown-item">
|
||||
<i class="mdi mdi-account"></i> {% trans "Profile" %}
|
||||
</a>
|
||||
|
@ -1,5 +0,0 @@
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth.models import Group as DjangoGroup
|
||||
|
||||
# Prevent the stock Django Group model from appearing in the admin UI (if enabled)
|
||||
admin.site.unregister(DjangoGroup)
|
Loading…
Reference in New Issue
Block a user