Skip to content

Commit af7d042

Browse files
committed
[req-changes] Made requested changes by coderabbitai
1 parent 84b13c8 commit af7d042

3 files changed

Lines changed: 21 additions & 2 deletions

File tree

openwisp_radius/api/serializers.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,8 @@ def __init__(self, *args, **kwargs):
379379
self.fields["group"].queryset = self.fields["group"].queryset.filter(
380380
organization_id__in=self._user.organizations_dict.keys()
381381
)
382+
else:
383+
self.fields["group"].queryset = self.fields["group"].queryset.none()
382384

383385
def validate(self, data):
384386
if self._user:

openwisp_radius/api/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ class BaseRadiusUserGroupView(ProtectedAPIMixin, FilterByParentManaged):
963963
def get_queryset(self):
964964
qs = super().get_queryset()
965965
if getattr(self, "swagger_fake_view", False):
966-
return super().get_queryset()
966+
return qs
967967
return qs.filter(user_id=self.kwargs["user_pk"])
968968

969969
def get_parent_queryset(self):

openwisp_radius/tests/test_api/test_api.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1299,6 +1299,7 @@ def test_radius_user_group_list(self):
12991299
self._create_org_user(user=admin_user, organization=org1, is_admin=True)
13001300
target_user = self._create_user(username="target_user", email="target@test.com")
13011301
self._create_org_user(user=target_user, organization=org1)
1302+
self._create_org_user(user=target_user, organization=org2)
13021303
# Create a user in org2 that admin_user should not be able to access
13031304
org2_user = self._create_user(username="org2_user", email="org2@test.com")
13041305
self._create_org_user(user=org2_user, organization=org2)
@@ -1367,7 +1368,8 @@ def test_radius_user_group_list(self):
13671368
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
13681369

13691370
with self.subTest("Cannot create RadiusUserGroup with group from other org"):
1370-
self._create_org_user(user=admin_user, organization=org2, is_admin=True)
1371+
# target_user is member of org2,
1372+
# but admin_user can only manage org1
13711373
org2_group = RadiusGroup.objects.get(
13721374
organization=org2, name="org-2-power-users"
13731375
)
@@ -1380,6 +1382,21 @@ def test_radius_user_group_list(self):
13801382
self.assertIn("group", response.data)
13811383
self.assertEqual(response.data["group"][0].code, "does_not_exist")
13821384

1385+
# target_user is only member of org1,
1386+
# admin_user can manage both org1 and org2
1387+
OrganizationUser.objects.filter(
1388+
user=target_user, organization=org2
1389+
).delete()
1390+
self._create_org_user(user=target_user, organization=org2, is_admin=True)
1391+
response = self.client.post(
1392+
url,
1393+
{"group": str(org2_group.pk)},
1394+
content_type="application/json",
1395+
)
1396+
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
1397+
self.assertIn("group", response.data)
1398+
self.assertEqual(response.data["group"][0].code, "does_not_exist")
1399+
13831400
with self.subTest("Superuser can access any user"):
13841401
superuser = self._get_admin()
13851402
self.client.force_login(user=superuser)

0 commit comments

Comments
 (0)