From 4332ba0beb935d4a1cc730f8adb36a56b75930f8 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 13 Jun 2023 11:12:06 -0700 Subject: [PATCH] 12589 user RestrictedQuerySet for permission --- netbox/users/models.py | 12 ++++++++++++ netbox/users/views.py | 22 +++++++++++----------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/netbox/users/models.py b/netbox/users/models.py index 7bb0377e4..220e93724 100644 --- a/netbox/users/models.py +++ b/netbox/users/models.py @@ -9,6 +9,7 @@ from django.core.validators import MinLengthValidator from django.db import models from django.db.models.signals import post_save from django.dispatch import receiver +from django.urls import reverse from django.utils import timezone from django.utils.translation import gettext as _ from netaddr import IPNetwork @@ -55,19 +56,30 @@ class NetBoxUser(User): """ Proxy contrib.auth.models.User for the UI """ + objects = RestrictedQuerySet.as_manager() + class Meta: verbose_name = 'User' proxy = True + def get_absolute_url(self): + return reverse('users:netboxuser', args=[self.pk]) + class NetBoxGroup(Group): """ Proxy contrib.auth.models.User for the UI """ + objects = RestrictedQuerySet.as_manager() + class Meta: verbose_name = 'Group' proxy = True + def get_absolute_url(self): + return reverse('users:netboxgroup', args=[self.pk]) + + # # User preferences # diff --git a/netbox/users/views.py b/netbox/users/views.py index 15f2698ba..aa82d4cbe 100644 --- a/netbox/users/views.py +++ b/netbox/users/views.py @@ -368,29 +368,29 @@ class NetBoxUserView(generic.ObjectView): @register_model_view(NetBoxUser, 'edit') class NetBoxUserEditView(generic.ObjectEditView): - queryset = RestrictedQuerySet(model=NetBoxUser).all() + queryset = NetBoxUser.objects.all() form = forms.UserForm @register_model_view(NetBoxUser, 'delete') class NetBoxUserDeleteView(generic.ObjectDeleteView): - queryset = RestrictedQuerySet(model=NetBoxUser).all() + queryset = NetBoxUser.objects.all() class NetBoxUserBulkImportView(generic.BulkImportView): - queryset = RestrictedQuerySet(model=NetBoxUser).all() + queryset = NetBoxUser.objects.all() model_form = forms.UserImportForm class NetBoxUserBulkEditView(generic.BulkEditView): - queryset = RestrictedQuerySet(model=NetBoxUser).all() + queryset = NetBoxUser.objects.all() filterset = filtersets.UserFilterSet table = tables.UserTable form = forms.UserBulkEditForm class NetBoxUserBulkDeleteView(generic.BulkDeleteView): - queryset = RestrictedQuerySet(model=NetBoxUser).all() + queryset = NetBoxUser.objects.all() filterset = filtersets.UserFilterSet table = tables.UserTable @@ -400,7 +400,7 @@ class NetBoxUserBulkDeleteView(generic.BulkDeleteView): class NetBoxGroupListView(generic.ObjectListView): - queryset = RestrictedQuerySet(model=NetBoxGroup).all().annotate(users_count=Count('user')) + queryset = NetBoxGroup.objects.all().annotate(users_count=Count('user')) filterset = filtersets.GroupFilterSet filterset_form = forms.GroupFilterForm table = tables.GroupTable @@ -408,7 +408,7 @@ class NetBoxGroupListView(generic.ObjectListView): @register_model_view(NetBoxGroup) class NetBoxGroupView(generic.ObjectView): - queryset = RestrictedQuerySet(model=NetBoxGroup).all() + queryset = NetBoxGroup.objects.all() template_name = 'users/group.html' def get_extra_context(self, request, instance): @@ -419,17 +419,17 @@ class NetBoxGroupView(generic.ObjectView): @register_model_view(NetBoxGroup, 'edit') class NetBoxGroupEditView(generic.ObjectEditView): - queryset = RestrictedQuerySet(model=NetBoxGroup).all() + queryset = NetBoxGroup.objects.all() form = forms.GroupForm @register_model_view(NetBoxGroup, 'delete') class NetBoxGroupDeleteView(generic.ObjectDeleteView): - queryset = RestrictedQuerySet(model=NetBoxGroup).all() + queryset = NetBoxGroup.objects.all() class NetBoxGroupBulkImportView(generic.BulkImportView): - queryset = RestrictedQuerySet(model=NetBoxGroup).all() + queryset = NetBoxGroup.objects.all() model_form = forms.GroupImportForm @@ -441,7 +441,7 @@ class NetBoxGroupBulkImportView(generic.BulkImportView): class NetBoxGroupBulkDeleteView(generic.BulkDeleteView): - queryset = RestrictedQuerySet(model=NetBoxGroup).all() + queryset = NetBoxGroup.objects.all() filterset = filtersets.GroupFilterSet table = tables.GroupTable