diff --git a/arkindex/process/managers.py b/arkindex/process/managers.py index ce7893b37699697d097c345ce9ff0efe5ec8b5be..3abe706ed374ad400d1b325e529d32d0d386d428 100644 --- a/arkindex/process/managers.py +++ b/arkindex/process/managers.py @@ -216,15 +216,12 @@ class WorkerManager(BaseACLManager): if user.is_admin: return self.all() - from arkindex.process.models import Repository - return self.filter( # All public workers are executable by everyone Q(public=True) - # Otherwise, require contributor rights on either the worker or the worker's repository + # Otherwise, require contributor rights on either the worker | Q(id__in=self.filter_rights(user, self.model, Role.Contributor.value).values("id")) - | Q(repository_id__in=self.filter_rights(user, Repository, Role.Contributor.value).values("id")) - ).distinct() + ) class WorkerRunQuerySet(WorkerResultSourceQuerySet): diff --git a/arkindex/process/tests/test_workers.py b/arkindex/process/tests/test_workers.py index 3b2ff25341080cf7e20168decef68d071fadc5d9..3b297c45d1a0e925127f6a8460f80502f5ff4e75 100644 --- a/arkindex/process/tests/test_workers.py +++ b/arkindex/process/tests/test_workers.py @@ -224,7 +224,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.client.force_login(self.user) filter_rights_mock.side_effect = [ Worker.objects.all(), - Repository.objects.all(), Model.objects.none(), ] @@ -241,7 +240,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), call(self.user, Model, Role.Guest.value), ]) @@ -394,7 +392,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.client.force_login(self.user) filter_rights_mock.side_effect = [ Worker.objects.none(), - Repository.objects.none(), ] with self.assertNumQueries(3): @@ -411,7 +408,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) def test_workers_list_name_filter(self): @@ -524,7 +520,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): def test_workers_retrieve_no_rights(self, filter_rights_mock): filter_rights_mock.side_effect = [ Worker.objects.none(), - Repository.objects.none(), ] self.client.force_login(self.user) @@ -536,7 +531,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) def test_worker_create_requires_login(self): @@ -728,7 +722,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.client.force_login(self.user) filter_rights_mock.side_effect = [ Worker.objects.none(), - Repository.objects.none(), ] with self.assertNumQueries(3): @@ -747,7 +740,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.assertEqual(response.json(), {"detail": "No Worker matches the given query."}) self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) @patch("arkindex.users.managers.BaseACLManager.filter_rights") @@ -755,7 +747,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.client.force_login(self.user) filter_rights_mock.side_effect = [ Worker.objects.all(), - Repository.objects.none(), ] with self.assertNumQueries(6): @@ -789,7 +780,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.assertEqual(self.worker_reco.repository, None) self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) def test_update_unique_slug(self): @@ -920,7 +910,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.client.force_login(self.user) filter_rights_mock.side_effect = [ Worker.objects.none(), - Repository.objects.none(), ] with self.assertNumQueries(3): @@ -936,7 +925,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) @patch("arkindex.users.managers.BaseACLManager.filter_rights") @@ -945,8 +933,7 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.worker_reco.memberships.update_or_create(user=self.user, defaults={"level": Role.Contributor.value}) self.client.force_login(self.user) filter_rights_mock.side_effect = [ - Worker.objects.all(), - Repository.objects.none(), + Worker.objects.all() ] with self.assertNumQueries(5): @@ -978,7 +965,6 @@ class TestWorkersWorkerVersions(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) def test_partial_update_unique_slug(self): diff --git a/arkindex/training/tests/test_model_compatible_worker.py b/arkindex/training/tests/test_model_compatible_worker.py index a1d06e321d17944c1c5b3c053cd05650d2deb6ab..795d35d000d38cf10dce2f67f0240e9885ed94bc 100644 --- a/arkindex/training/tests/test_model_compatible_worker.py +++ b/arkindex/training/tests/test_model_compatible_worker.py @@ -4,7 +4,7 @@ from unittest.mock import call, patch from django.urls import reverse from rest_framework import status -from arkindex.process.models import Repository, Worker +from arkindex.process.models import Worker from arkindex.project.tests import FixtureAPITestCase from arkindex.training.models import Model from arkindex.users.models import Role @@ -84,8 +84,7 @@ class TestModelCompatibleWorkerManage(FixtureAPITestCase): filter_rights_mock.side_effect = [ Model.objects.none(), - Worker.objects.all(), - Repository.objects.all(), + Worker.objects.all() ] with self.assertNumQueries(3): @@ -103,8 +102,7 @@ class TestModelCompatibleWorkerManage(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Model, Role.Contributor.value), - call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), + call(self.user, Worker, Role.Contributor.value) ]) def test_create_worker_not_found(self): @@ -131,7 +129,6 @@ class TestModelCompatibleWorkerManage(FixtureAPITestCase): filter_rights_mock.side_effect = [ Model.objects.all(), Worker.objects.none(), - Repository.objects.none(), ] with self.assertNumQueries(4): @@ -150,7 +147,6 @@ class TestModelCompatibleWorkerManage(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Model, Role.Contributor.value), call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) def test_create_nothing_found(self): @@ -370,7 +366,6 @@ class TestModelCompatibleWorkerManage(FixtureAPITestCase): filter_rights_mock.side_effect = [ Model.objects.none(), Worker.objects.all(), - Repository.objects.all(), ] with self.assertNumQueries(3): @@ -389,7 +384,6 @@ class TestModelCompatibleWorkerManage(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Model, Role.Contributor.value), call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) def test_destroy_worker_not_found(self): @@ -416,7 +410,6 @@ class TestModelCompatibleWorkerManage(FixtureAPITestCase): filter_rights_mock.side_effect = [ Model.objects.all(), Worker.objects.none(), - Repository.objects.none(), ] with self.assertNumQueries(4): @@ -435,7 +428,6 @@ class TestModelCompatibleWorkerManage(FixtureAPITestCase): self.assertListEqual(filter_rights_mock.call_args_list, [ call(self.user, Model, Role.Contributor.value), call(self.user, Worker, Role.Contributor.value), - call(self.user, Repository, Role.Contributor.value), ]) def test_destroy_nothing_found(self):