Skip to content

Commit f1b7b2f

Browse files
committed
Revert LDAP group changes to API.
They are too slow in current form. This reverts d601a99 ab4d29d 41b9350 d3226c5
1 parent d601a99 commit f1b7b2f

File tree

2 files changed

+14
-55
lines changed

2 files changed

+14
-55
lines changed

jasmin_services/api/serializers.py

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
"""Serializers for the jasmin_services api."""
22

3-
import logging
4-
53
import django.contrib.auth
64
import django_countries.serializers
75
import rest_framework.serializers as rf_serial
86
import rest_framework_nested.serializers
97

108
from .. import models
119

12-
logger = logging.getLogger()
13-
1410

1511
class ServiceUserSerializer(rf_serial.HyperlinkedModelSerializer):
1612
"""Basic UserSerializer to provide a link to the full one."""
@@ -31,59 +27,24 @@ class Meta:
3127
fields = ["id", "user"]
3228

3329

34-
class LdapGroupSerializer(rf_serial.Serializer):
35-
cn = rf_serial.CharField(source="name")
36-
dn = rf_serial.SerializerMethodField()
37-
gidNumber = rf_serial.IntegerField()
38-
39-
@staticmethod
40-
def get_dn(obj) -> str:
41-
"""Build the dn from the name and the base."""
42-
return f"cn={obj.name},{obj.base_dn}"
43-
44-
4530
class RoleListSerializer(rf_serial.ModelSerializer):
4631
"""Basic list of roles."""
4732

4833
user_count = rf_serial.IntegerField(read_only=True)
49-
ldap_groups = rf_serial.SerializerMethodField(read_only=True)
5034

5135
class Meta:
5236
model = models.Role
53-
fields = ["id", "name", "user_count", "ldap_groups"]
54-
55-
@staticmethod
56-
def _to_group(obj):
57-
"""Convert behaviours to LDAP Group Objects."""
58-
if isinstance(obj, models.behaviours.LdapGroupBehaviour):
59-
try:
60-
group = obj.get_ldap_group()
61-
except django.core.exceptions.ObjectDoesNotExist:
62-
logger.error(
63-
"A LDAP group behaviour exists for %s : %s, but it does not exist in LDAP.",
64-
obj.ldap_model,
65-
obj.group_name,
66-
)
67-
else:
68-
return group
69-
return None
70-
71-
def get_ldap_groups(self, obj) -> LdapGroupSerializer(many=True):
72-
"""Return a list of LDAP groups for the role."""
73-
groups = [
74-
group for behaviour in obj.behaviours.all() if (group := self._to_group(behaviour))
75-
]
76-
return LdapGroupSerializer(groups, many=True).data
37+
fields = ["id", "name", "user_count"]
7738

7839

79-
class RoleSerializer(RoleListSerializer):
40+
class RoleSerializer(rf_serial.ModelSerializer):
8041
"""Detail of role with holders."""
8142

8243
accesses = AccessSerializer(many=True)
8344

8445
class Meta:
8546
model = models.Role
86-
fields = ["id", "name", "accesses", "user_count", "ldap_groups"]
47+
fields = ["id", "name", "accesses"]
8748

8849

8950
class CategoryListSerializer(rf_serial.HyperlinkedModelSerializer):

jasmin_services/tests/test_api.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def test_services_detail(self):
148148
"url": "http://testserver/api/v1/categories/test_cat1/",
149149
"name": "test_cat1",
150150
},
151-
"roles": [{"id": 1, "name": "MANAGER", "ldap_groups": []}],
151+
"roles": [{"id": 1, "name": "MANAGER"}],
152152
"summary": "First test category",
153153
"description": "This should be a long description.",
154154
"approver_message": "",
@@ -184,7 +184,7 @@ def test_user(self):
184184
"summary": "First test category",
185185
"hidden": True,
186186
},
187-
"role": {"id": 1, "name": "MANAGER", "ldap_groups": []},
187+
"role": {"id": 1, "name": "MANAGER"},
188188
"granted_at": self.manager_grant.granted_at.astimezone(DJANGO_TZ).strftime(
189189
f"%Y-%m-%dT%H:%M:%S.%f{utc_offset}"
190190
),
@@ -207,7 +207,7 @@ def test_user(self):
207207
"summary": "Another test category",
208208
"hidden": True,
209209
},
210-
"role": {"id": 2, "name": "DEPUTY", "ldap_groups": []},
210+
"role": {"id": 2, "name": "DEPUTY"},
211211
"granted_at": self.deputy_grant.granted_at.astimezone(DJANGO_TZ).strftime(
212212
f"%Y-%m-%dT%H:%M:%S.%f{utc_offset}"
213213
),
@@ -242,7 +242,7 @@ def test_grants_filter_category(self):
242242
"summary": "First test category",
243243
"hidden": True,
244244
},
245-
"role": {"id": 1, "name": "MANAGER", "ldap_groups": []},
245+
"role": {"id": 1, "name": "MANAGER"},
246246
"granted_at": self.manager_grant.granted_at.astimezone(DJANGO_TZ).strftime(
247247
f"%Y-%m-%dT%H:%M:%S.%f{utc_offset}"
248248
),
@@ -277,7 +277,7 @@ def test_grants_filter_service(self):
277277
"summary": "Another test category",
278278
"hidden": True,
279279
},
280-
"role": {"id": 2, "name": "DEPUTY", "ldap_groups": []},
280+
"role": {"id": 2, "name": "DEPUTY"},
281281
"granted_at": self.deputy_grant.granted_at.astimezone(DJANGO_TZ).strftime(
282282
f"%Y-%m-%dT%H:%M:%S.%f{utc_offset}"
283283
),
@@ -312,7 +312,7 @@ def test_grants_filter_role(self):
312312
"summary": "First test category",
313313
"hidden": True,
314314
},
315-
"role": {"id": 1, "name": "MANAGER", "ldap_groups": []},
315+
"role": {"id": 1, "name": "MANAGER"},
316316
"granted_at": self.manager_grant.granted_at.astimezone(DJANGO_TZ).strftime(
317317
f"%Y-%m-%dT%H:%M:%S.%f{utc_offset}"
318318
),
@@ -415,7 +415,7 @@ def test_category_services_detail(self):
415415
"url": "http://testserver/api/v1/categories/test_cat1/",
416416
"name": "test_cat1",
417417
},
418-
"roles": [{"id": 1, "name": "MANAGER", "ldap_groups": []}],
418+
"roles": [{"id": 1, "name": "MANAGER"}],
419419
"summary": "First test category",
420420
"description": "This should be a long description.",
421421
"approver_message": "",
@@ -440,7 +440,6 @@ def test_service_roles_by_id(self):
440440
{
441441
"id": 1,
442442
"name": "MANAGER",
443-
"ldap_groups": [],
444443
"accesses": [
445444
{
446445
"id": 1,
@@ -468,7 +467,6 @@ def test_service_roles_by_category_and_name(self):
468467
{
469468
"id": 1,
470469
"name": "MANAGER",
471-
"ldap_groups": [],
472470
"accesses": [
473471
{
474472
"id": 1,
@@ -546,7 +544,7 @@ def test_grants_list(self):
546544
"summary": "First test category",
547545
"hidden": True,
548546
},
549-
"role": {"id": 1, "name": "MANAGER", "ldap_groups": []},
547+
"role": {"id": 1, "name": "MANAGER"},
550548
"user": {
551549
"id": self.user.id,
552550
"url": "http://testserver/api/v1/users/testuser/",
@@ -575,7 +573,7 @@ def test_grants_list(self):
575573
"summary": "Another test category",
576574
"hidden": True,
577575
},
578-
"role": {"id": 2, "name": "DEPUTY", "ldap_groups": []},
576+
"role": {"id": 2, "name": "DEPUTY"},
579577
"user": {
580578
"id": self.user.id,
581579
"url": "http://testserver/api/v1/users/testuser/",
@@ -618,7 +616,7 @@ def test_category_grants_list(self):
618616
"summary": "First test category",
619617
"hidden": True,
620618
},
621-
"role": {"id": 1, "name": "MANAGER", "ldap_groups": []},
619+
"role": {"id": 1, "name": "MANAGER"},
622620
"user": {
623621
"id": self.user.id,
624622
"url": "http://testserver/api/v1/users/testuser/",
@@ -659,7 +657,7 @@ def test_category_grants_list_different_category(self):
659657
"summary": "Another test category",
660658
"hidden": True,
661659
},
662-
"role": {"id": 2, "name": "DEPUTY", "ldap_groups": []},
660+
"role": {"id": 2, "name": "DEPUTY"},
663661
"user": {
664662
"id": self.user.id,
665663
"url": "http://testserver/api/v1/users/testuser/",

0 commit comments

Comments
 (0)