mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Merge pull request #3345 from paperless-ngx/fix/issue-3341
This commit is contained in:
		| @@ -3551,9 +3551,28 @@ class TestApiAuth(DirectoriesMixin, APITestCase): | |||||||
|         ) |         ) | ||||||
|  |  | ||||||
|     def test_dynamic_permissions_fields(self): |     def test_dynamic_permissions_fields(self): | ||||||
|         Document.objects.create(title="Test", content="content 1", checksum="1") |         user1 = User.objects.create_user(username="user1") | ||||||
|  |         user1.user_permissions.add(*Permission.objects.filter(codename="view_document")) | ||||||
|  |         user2 = User.objects.create_user(username="user2") | ||||||
|  |  | ||||||
|  |         Document.objects.create(title="Test", content="content 1", checksum="1") | ||||||
|  |         doc2 = Document.objects.create( | ||||||
|  |             title="Test2", | ||||||
|  |             content="content 2", | ||||||
|  |             checksum="2", | ||||||
|  |             owner=user2, | ||||||
|  |         ) | ||||||
|  |         doc3 = Document.objects.create( | ||||||
|  |             title="Test3", | ||||||
|  |             content="content 3", | ||||||
|  |             checksum="3", | ||||||
|  |             owner=user2, | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         assign_perm("view_document", user1, doc2) | ||||||
|  |         assign_perm("view_document", user1, doc3) | ||||||
|  |         assign_perm("change_document", user1, doc3) | ||||||
|  |  | ||||||
|         user1 = User.objects.create_superuser(username="test1") |  | ||||||
|         self.client.force_authenticate(user1) |         self.client.force_authenticate(user1) | ||||||
|  |  | ||||||
|         response = self.client.get( |         response = self.client.get( | ||||||
| @@ -3567,6 +3586,9 @@ class TestApiAuth(DirectoriesMixin, APITestCase): | |||||||
|  |  | ||||||
|         self.assertNotIn("permissions", resp_data["results"][0]) |         self.assertNotIn("permissions", resp_data["results"][0]) | ||||||
|         self.assertIn("user_can_change", resp_data["results"][0]) |         self.assertIn("user_can_change", resp_data["results"][0]) | ||||||
|  |         self.assertEqual(resp_data["results"][0]["user_can_change"], True)  # doc1 | ||||||
|  |         self.assertEqual(resp_data["results"][1]["user_can_change"], False)  # doc2 | ||||||
|  |         self.assertEqual(resp_data["results"][2]["user_can_change"], True)  # doc3 | ||||||
|  |  | ||||||
|         response = self.client.get( |         response = self.client.get( | ||||||
|             "/api/documents/?full_perms=true", |             "/api/documents/?full_perms=true", | ||||||
|   | |||||||
| @@ -270,11 +270,9 @@ class DocumentViewSet( | |||||||
|         return Document.objects.distinct().annotate(num_notes=Count("notes")) |         return Document.objects.distinct().annotate(num_notes=Count("notes")) | ||||||
|  |  | ||||||
|     def get_serializer(self, *args, **kwargs): |     def get_serializer(self, *args, **kwargs): | ||||||
|         super().get_serializer(*args, **kwargs) |  | ||||||
|         fields_param = self.request.query_params.get("fields", None) |         fields_param = self.request.query_params.get("fields", None) | ||||||
|         fields = fields_param.split(",") if fields_param else None |         fields = fields_param.split(",") if fields_param else None | ||||||
|         truncate_content = self.request.query_params.get("truncate_content", "False") |         truncate_content = self.request.query_params.get("truncate_content", "False") | ||||||
|         serializer_class = self.get_serializer_class() |  | ||||||
|         kwargs.setdefault("context", self.get_serializer_context()) |         kwargs.setdefault("context", self.get_serializer_context()) | ||||||
|         kwargs.setdefault("fields", fields) |         kwargs.setdefault("fields", fields) | ||||||
|         kwargs.setdefault("truncate_content", truncate_content.lower() in ["true", "1"]) |         kwargs.setdefault("truncate_content", truncate_content.lower() in ["true", "1"]) | ||||||
| @@ -282,7 +280,7 @@ class DocumentViewSet( | |||||||
|             "full_perms", |             "full_perms", | ||||||
|             self.request.query_params.get("full_perms", False), |             self.request.query_params.get("full_perms", False), | ||||||
|         ) |         ) | ||||||
|         return serializer_class(*args, **kwargs) |         return super().get_serializer(*args, **kwargs) | ||||||
|  |  | ||||||
|     def update(self, request, *args, **kwargs): |     def update(self, request, *args, **kwargs): | ||||||
|         response = super().update(request, *args, **kwargs) |         response = super().update(request, *args, **kwargs) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 shamoon
					shamoon