Jeremy Stretch 4 месяцев назад
Родитель
Сommit
ac335c3d87

+ 1 - 1
netbox/netbox/configuration_testing.py

@@ -46,7 +46,7 @@ DEFAULT_PERMISSIONS = {}
 ALLOW_TOKEN_RETRIEVAL = True
 
 API_TOKEN_PEPPERS = {
-    0: 'TEST-VALUE-DO-NOT-USE',
+    1: 'TEST-VALUE-DO-NOT-USE',
 }
 
 LOGGING = {

+ 13 - 1
netbox/users/filtersets.py

@@ -130,15 +130,27 @@ class TokenFilterSet(BaseFilterSet):
         field_name='expires',
         lookup_expr='lte'
     )
+    last_used = django_filters.DateTimeFilter()
+    last_used__gte = django_filters.DateTimeFilter(
+        field_name='last_used',
+        lookup_expr='gte'
+    )
+    last_used__lte = django_filters.DateTimeFilter(
+        field_name='last_used',
+        lookup_expr='lte'
+    )
 
     class Meta:
         model = Token
-        fields = ('id', 'version', 'key', 'pepper_id', 'write_enabled', 'description', 'last_used')
+        fields = (
+            'id', 'version', 'key', 'pepper_id', 'write_enabled', 'description', 'created', 'expires', 'last_used',
+        )
 
     def search(self, queryset, name, value):
         if not value.strip():
             return queryset
         return queryset.filter(
+            Q(key=value) |
             Q(user__username__icontains=value) |
             Q(description__icontains=value)
         )

+ 9 - 5
netbox/users/tests/test_filtersets.py

@@ -315,6 +315,15 @@ class TokenTestCase(TestCase, BaseFilterSetTests):
         params = {'version': 2}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
+    def test_key(self):
+        tokens = Token.objects.filter(version=2)
+        params = {'key': [tokens[0].key, tokens[1].key]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+
+    def test_pepper_id(self):
+        params = {'pepper_id': [1]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+
     def test_user(self):
         users = User.objects.order_by('id')[:2]
         params = {'user_id': [users[0].pk, users[1].pk]}
@@ -330,11 +339,6 @@ class TokenTestCase(TestCase, BaseFilterSetTests):
         params = {'expires__lte': '2021-01-01T00:00:00'}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
-    def test_key(self):
-        tokens = Token.objects.filter(version=2)
-        params = {'key': [tokens[0].key, tokens[1].key]}
-        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
-
     def test_write_enabled(self):
         params = {'write_enabled': True}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)