Skip to content

Commit 3c9be90

Browse files
committed
Update backend_utils.py
1 parent 51cd81b commit 3c9be90

File tree

1 file changed

+34
-16
lines changed

1 file changed

+34
-16
lines changed

src/lib/backend_utils.py

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,24 @@ def returncode(code,message):
3737
return json.dumps(data)
3838

3939
def is_backend_concerned(entity):
40-
peopleType=find_key(entity,config('branchAttr'))
40+
br=config('branchAttr')
41+
entry=make_entry_array(entity);
42+
if config('branchAttr') in entry:
43+
peopleType=entry[config('branchAttr')]
44+
else:
45+
# il n y a pas de branchAttr dans le fichier de config on traitre tout
46+
return True
47+
listBackend=config('backendFor')
48+
c=type(peopleType)
4149
if type(peopleType) is list:
42-
listBackend=config('backendFor')
4350
for v in peopleType:
4451
peopleType=v
4552
if (listBackend.find(peopleType) == -1):
4653
return False
54+
else:
55+
if (listBackend.find(peopleType) == -1):
56+
return False
57+
4758
return True
4859

4960
def find_key(element, key):
@@ -61,28 +72,35 @@ def _finditem(obj, key):
6172
return item
6273
return ""
6374
def make_entry_array(entity):
64-
data={}
75+
data = {}
6576
if "identity" in entity['payload']:
6677
objectclasses = entity['payload']['identity']['identity']['additionalFields']['objectClasses']
67-
inetOrgPerson=entity['payload']['identity']['identity']['inetOrgPerson']
68-
if 'attributes' in entity['payload']['identity']['identity']['additionalFields']:
69-
additionalFields=entity['payload']['identity']['identity']['additionalFields']['attributes']
78+
inetOrgPerson = entity['payload']['identity']['identity']['inetOrgPerson']
79+
addFieldsDict = entity['payload']['identity']['identity']['additionalFields']
80+
if 'attributes' in addFieldsDict:
81+
additionalFields = entity['payload']['identity']['identity']['additionalFields']['attributes']
7082
else:
7183
additionalFields = {}
84+
7285
else:
73-
objectclasses=entity['payload']['additionalFields']['objectClasses']
86+
objectclasses = entity['payload']['additionalFields']['objectClasses']
7487
inetOrgPerson = entity['payload']['inetOrgPerson']
75-
if 'attributes' in entity['payload']['additionalFields']:
76-
additionalFields = entity['payload']['additionalFields']['attributes']
77-
else:
78-
additionalFields = {}
79-
#inetOrgPerson
80-
for k,v in inetOrgPerson.items():
81-
data[k]=str(v)
88+
additionalFields = entity['payload']['additionalFields']['attributes']
89+
# inetOrgPerson
90+
for k, v in inetOrgPerson.items():
91+
if type(v) is int:
92+
v = str(v)
93+
data[k] = v
8294

8395
for obj in objectclasses:
84-
for k,v in additionalFields[obj].items():
85-
data[k]=str(v)
96+
# recherche si l objectclass est exclu
97+
exclusions = config('excludedObjectclasses')
98+
if exclusions.find(obj.lower()) == -1:
99+
if obj in additionalFields.keys():
100+
for k, v in additionalFields[obj].items():
101+
if type(v) is int:
102+
v = str(v)
103+
data[k] = v
86104
return data
87105

88106

0 commit comments

Comments
 (0)