diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index 7e547dafd..b40cb4459 100644 --- a/netbox/extras/api/views.py +++ b/netbox/extras/api/views.py @@ -108,7 +108,7 @@ class ExportTemplateViewSet(ModelViewSet): # class TagViewSet(ModelViewSet): - queryset = Tag.objects.annotate( + queryset = Tag.restricted.annotate( tagged_items=Count('extras_taggeditem_items', distinct=True) ) serializer_class = serializers.TagSerializer diff --git a/netbox/extras/filters.py b/netbox/extras/filters.py index 46db6d032..eac55ad69 100644 --- a/netbox/extras/filters.py +++ b/netbox/extras/filters.py @@ -212,7 +212,7 @@ class ConfigContextFilterSet(BaseFilterSet): ) tag = django_filters.ModelMultipleChoiceFilter( field_name='tags__slug', - queryset=Tag.objects.unrestricted(), + queryset=Tag.objects.all(), to_field_name='slug', label='Tag (slug)', ) diff --git a/netbox/extras/models/tags.py b/netbox/extras/models/tags.py index d5792ebda..a2d43a93b 100644 --- a/netbox/extras/models/tags.py +++ b/netbox/extras/models/tags.py @@ -22,7 +22,8 @@ class Tag(TagBase, ChangeLoggedModel): blank=True, ) - objects = RestrictedQuerySet.as_manager() + objects = models.Manager() + restricted = RestrictedQuerySet.as_manager() def get_absolute_url(self): return reverse('extras:tag', args=[self.slug]) diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 667b1c0d5..98b82edb9 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -28,7 +28,7 @@ from .tables import ConfigContextTable, ObjectChangeTable, TagTable, TaggedItemT # class TagListView(ObjectListView): - queryset = Tag.objects.annotate( + queryset = Tag.restricted.annotate( items=Count('extras_taggeditem_items', distinct=True) ).order_by( 'name' @@ -40,7 +40,7 @@ class TagListView(ObjectListView): class TagView(ObjectView): - queryset = Tag.objects.all() + queryset = Tag.restricted.all() def get(self, request, slug): @@ -67,19 +67,19 @@ class TagView(ObjectView): class TagEditView(ObjectEditView): - queryset = Tag.objects.all() + queryset = Tag.restricted.all() model_form = forms.TagForm default_return_url = 'extras:tag_list' template_name = 'extras/tag_edit.html' class TagDeleteView(ObjectDeleteView): - queryset = Tag.objects.all() + queryset = Tag.restricted.all() default_return_url = 'extras:tag_list' class TagBulkEditView(BulkEditView): - queryset = Tag.objects.annotate( + queryset = Tag.restricted.annotate( items=Count('extras_taggeditem_items', distinct=True) ).order_by( 'name' @@ -90,7 +90,7 @@ class TagBulkEditView(BulkEditView): class TagBulkDeleteView(BulkDeleteView): - queryset = Tag.objects.annotate( + queryset = Tag.restricted.annotate( items=Count('extras_taggeditem_items') ).order_by( 'name' diff --git a/netbox/utilities/filters.py b/netbox/utilities/filters.py index b13c55f40..f628ca917 100644 --- a/netbox/utilities/filters.py +++ b/netbox/utilities/filters.py @@ -102,7 +102,7 @@ class TagFilter(django_filters.ModelMultipleChoiceFilter): kwargs.setdefault('field_name', 'tags__slug') kwargs.setdefault('to_field_name', 'slug') kwargs.setdefault('conjoined', True) - kwargs.setdefault('queryset', Tag.objects.unrestricted()) + kwargs.setdefault('queryset', Tag.objects.all()) super().__init__(*args, **kwargs) diff --git a/netbox/utilities/forms.py b/netbox/utilities/forms.py index 875ee72fd..3ac954a82 100644 --- a/netbox/utilities/forms.py +++ b/netbox/utilities/forms.py @@ -585,7 +585,7 @@ class TagFilterField(forms.MultipleChoiceField): def __init__(self, model, *args, **kwargs): def get_choices(): - tags = model.tags.all().unrestricted().annotate( + tags = model.tags.annotate( count=Count('extras_taggeditem_items') ).order_by('name') return [ diff --git a/netbox/utilities/utils.py b/netbox/utilities/utils.py index d1b4abb44..4c07f5520 100644 --- a/netbox/utilities/utils.py +++ b/netbox/utilities/utils.py @@ -215,7 +215,7 @@ def prepare_cloned_fields(instance): # Copy tags if is_taggable(instance): - params['tags'] = ','.join([t.name for t in instance.tags.all().unrestricted()]) + params['tags'] = ','.join([t.name for t in instance.tags.all()]) # Concatenate parameters into a URL query string param_string = '&'.join(