Skip to content

Commit 9825d50

Browse files
committed
exclude objectclass doesnt work
1 parent 21d1170 commit 9825d50

File tree

10 files changed

+27
-68
lines changed

10 files changed

+27
-68
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ src/etc/config.conf
66
/tests
77
/src/lib/__pycache__
88
/unittest/__pycache__
9+
unittest/files_backend_utils/config1.conf

src/lib/backend_utils.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,11 @@ def make_objectclass(entity,entry):
131131
new_objectclasses = entity['payload']['identity']['identity']['additionalFields']['objectClasses']
132132
else:
133133
new_objectclasses = entity['payload']['additionalFields']['objectClasses']
134-
134+
exclusions = config('excludedObjectclasses')
135135
for k in new_objectclasses:
136136
if k.lower() not in objectclasses:
137-
objectclasses.append(k)
137+
if exclusions.find(k.lower()) == -1:
138+
objectclasses.append(k)
138139

139140
return objectclasses
140141

unittest/backendUtilsTest.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55

66
class BackendUtilsCase(unittest.TestCase):
77
def test_config(self):
8-
config = u.read_config('./files_backend_utils/config1.conf')
8+
config = u.read_config('./files_backend_utils/config2.conf')
99
self.assertEqual(u.config('host','x'),"1.2.3.4")
1010
# test cle non existante
1111
self.assertEqual(u.config('NoExistantKey','x'),'x')
1212
def test_getConfig(self):
13-
u.read_config('./files_backend_utils/config1.conf')
13+
u.read_config('./files_backend_utils/config2.conf')
1414
data=u.get_config()
1515
self.assertEqual(data['host'],"1.2.3.4")
1616
self.assertEqual(data['user'], "administrateur")
1717
self.assertEqual(data['base'], "dc=libertest1,dc=fr")
18-
self.assertEqual(data['backendfor'], "adm,etd,esn")
18+
self.assertEqual(data['backendfor'], "adm,etd,esn,div")
1919
def test_returncode(self):
2020
x=u.returncode(0,"test")
2121
self.assertEqual(u.returncode(0,"test"),'{"status": 0, "message": "test"}')
@@ -54,5 +54,18 @@ def test_find_key(self):
5454
self.assertEqual(u.find_key(entry,'supannEntiteAffectationPrincipale'),'div')
5555
# test clé qui n existe pas
5656
self.assertEqual(u.find_key(entry, 'abcdef'), '')
57+
def test_exclude_objectclass(self):
58+
config = u.read_config('./files_backend_utils/config1.conf')
59+
entity = u.readjsonfile("./files_ad_utils/excludeObjectclass.json")
60+
entry = u.make_entry_array(entity)
61+
self.assertEqual(entry['izlyAttribute'], "test")
62+
objectclasses = u.make_objectclass(entity, [])
63+
self.assertIn('izly', objectclasses)
64+
u.__CONFIG__.set('config', 'excludedObjectclasses', 'izly')
65+
entry = u.make_entry_array(entity)
66+
self.assertNotIn('izlyAttribute',entry)
67+
objectclasses=u.make_objectclass(entity,[])
68+
self.assertNotIn('izly',objectclasses)
69+
5770
if __name__ == '__main__':
5871
unittest.main()
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"concernedTo":"67dd1e99e52d6011720ffd7f","payload":{"identity":{"action":"IDENTITY_UPDATE","identity":{"_id":"67dd1e99e52d6011720ffd7f","inetOrgPerson":{"cn":"Doloty Dimitri","displayName":"Dimitri Doloty","facsimileTelephoneNumber":"","givenName":"Dimitri","labeledURI":"","mail":"dimitri.doloty@lyon.archi.fr","mobile":"06 22 29 01 10","postalAddress":"70 chemin des Grenettes$69650,Quincieux","preferredLanguage":"","sn":"Doloty","telephoneNumber":"","title":"","uid":"ddoloty","employeeNumber":["161148"],"employeeType":"TAIGA","departmentNumber":["adm"],"jpegPhoto":"","userCertificate":""},"additionalFields":{"objectClasses":["supannPerson","eduPerson","sogxuser","ealPerson","supannCMS"],"attributes":{"ealPerson":{"ealnumcarte":"04307E3A1D3D80","ealwifi":"ProfAdmin","ealmail2":"","ealmobile2":"","ealformation":"","ealsituation":"","ealcycle":"","ealan":"","ealdepartement":"","ealnumetd":"","ealenseignement":[],"ealue":[]},"eduPerson":{"edupersonaffiliation":["staff","member","toto"],"edupersonprimaryaffiliation":"staff","edupersonprincipalname":"ddoloty@lyon.archi.fr"},"sogxuser":{"proxyaddress":["dolo@lyon.archi.fr","dim.dolo@lyon.archi.fr"],"sogxquota":0,"sogxdisableflag":0},"supannCMS":{"supannCMSId":["04307E3A1D3D80"]},"supannPerson":{"supannAutreMail":"dolo@free.fr","supannEmpId":"18","supannEntiteAffectationPrincipale":"Admin","supannEtablissement":"{UAI}0690184A","supannOIDCDatedeNaissance":"19/12/1971","supannOIDCGenre":"M.","supannPrenomsEtatCivil":"Dimitri","supannRefId":["{TAIGA}161148"],"supannTypeEntiteAffectation":["adm"],"supanncivilite":"M.","supannEntiteAffectation":["SIAM"],"supannNomdeNaissance":"","supannCodeINSEEPaysDeNaissance":"","supannCodeINSEEVilleDeNaissance":"","supannListeRouge":"","mailForwardingAddress":"","supannMailPerso":"","supannRoleGenerique":"","supannEtuId":"","supannCodeIne":"","supannParrainDN":"","supannActivite":"","supannEmpDateFin":"","supannEtuDiplome":"","supannEtuAnneeInscription":""}}},"customFields":{"photo":"adm-18.jpg"},"dataStatus":1,"deletedFlag":false,"initInfo":{"sentDate":"2025-04-11T09:14:21.853Z","initDate":"2025-04-11T09:09:44.219Z"},"initState":2,"lastBackendSync":"2025-04-14T09:45:53.983Z","lastSync":"2025-04-14T09:29:19.055Z","lifecycle":-1,"metadata":{"createdAt":"2025-03-21T08:08:57.552Z","createdBy":"Taiga","lastUpdatedAt":"2025-04-14T12:54:43.900Z","lastUpdatedBy":"alain.abbas"},"primaryEmployeeNumber":"","srcFusionId":"","state":2,"fingerprint":"14e4c3905c6497791d43599f3e04fc1157ff79de719ce4ab7ccd230d02ac8411"}}},"options":{"async":false,"updateStatus":true,"task":"67fd0595d5269d3e4fdf84cf"}}
1+
{"concernedTo":"67dd1e99e52d6011720ffd7f","payload":{"identity":{"action":"IDENTITY_UPDATE","identity":{"_id":"67dd1e99e52d6011720ffd7f","inetOrgPerson":{"cn":"x x","displayName":"x x","facsimileTelephoneNumber":"","givenName":"x","labeledURI":"","mail":"x.x@dom.fr","mobile":"06 07 07 07 10","postalAddress":"rue des grenelles$69650,Quincieux","preferredLanguage":"","sn":"x","telephoneNumber":"","title":"","uid":"xx","employeeNumber":["161148"],"employeeType":"TAIGA","departmentNumber":["adm"],"jpegPhoto":"","userCertificate":""},"additionalFields":{"objectClasses":["supannPerson","eduPerson","sogxuser","ealPerson","supannCMS"],"attributes":{"ealPerson":{"ealnumcarte":"0422222227E3A1D3D80","ealwifi":"ProfAdmin","ealmail2":"","ealmobile2":"","ealformation":"","ealsituation":"","ealcycle":"","ealan":"","ealdepartement":"","ealnumetd":"","ealenseignement":[],"ealue":[]},"eduPerson":{"edupersonaffiliation":["staff","member","toto"],"edupersonprimaryaffiliation":"staff","edupersonprincipalname":"xx@dom.fr"},"sogxuser":{"proxyaddress":["dolo@dom.fr","xxx@dom.fr"],"sogxquota":0,"sogxdisableflag":0},"supannCMS":{"supannCMSId":["04307E32343D80"]},"supannPerson":{"supannAutreMail":"xx@free.fr","supannEmpId":"18","supannEntiteAffectationPrincipale":"Admin","supannEtablissement":"{UAI}0623484A","supannOIDCDatedeNaissance":"19/12/1971","supannOIDCGenre":"M.","supannPrenomsEtatCivil":"x","supannRefId":["{TAIGA}1"],"supannTypeEntiteAffectation":["adm"],"supanncivilite":"M.","supannEntiteAffectation":["SIAM"],"supannNomdeNaissance":"","supannCodeINSEEPaysDeNaissance":"","supannCodeINSEEVilleDeNaissance":"","supannListeRouge":"","mailForwardingAddress":"","supannMailPerso":"","supannRoleGenerique":"","supannEtuId":"","supannCodeIne":"","supannParrainDN":"","supannActivite":"","supannEmpDateFin":"","supannEtuDiplome":"","supannEtuAnneeInscription":""}}},"customFields":{"photo":"adm-18.jpg"},"dataStatus":1,"deletedFlag":false,"initInfo":{"sentDate":"2025-04-11T09:14:21.853Z","initDate":"2025-04-11T09:09:44.219Z"},"initState":2,"lastBackendSync":"2025-04-14T09:45:53.983Z","lastSync":"2025-04-14T09:29:19.055Z","lifecycle":-1,"metadata":{"createdAt":"2025-03-21T08:08:57.552Z","createdBy":"Taiga","lastUpdatedAt":"2025-04-14T12:54:43.900Z","lastUpdatedBy":"alain.abbas"},"primaryEmployeeNumber":"","srcFusionId":"","state":2,"fingerprint":"14e4c3905c6497791d43599f3e04fc1157ff79de719ce4ab7ccd230d02ac8411"}}},"options":{"async":false,"updateStatus":true,"task":"67fd0595d5269d3e4fdf84cf"}}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"concernedTo":"67dd1e9de52d6011720ffe58","payload":{"identity":{"action":"IDENTITY_UPDATE","identity":{"_id":"67dd1e9de52d6011720ffe58","inetOrgPerson":{"cn":"x x","displayName":"x x","facsimileTelephoneNumber":"","givenName":"x","labeledURI":"","mail":"xx@xx.fr","mobile":"06 06 06 06 060","postalAddress":"16 rue Clemenceau 1$45190$Bourg","preferredLanguage":"","sn":"x","telephoneNumber":"","title":"","uid":"xx","employeeNumber":["179892"],"employeeType":"TAIGA","departmentNumber":["adm"],"jpegPhoto":"","userCertificate":""},"additionalFields":{"objectClasses":["supannPerson","eduPerson","sogxuser","ealPerson","supannCMS","izly"],"attributes":{"ealPerson":{"ealnumcarte":"043d6xx346f80","ealwifi":"ProfAdmin","ealformation":"","ealsituation":"","ealcycle":"","ealan":"","ealdepartement":"","ealnumetd":"","ealmail2":"","ealmobile2":"","ealenseignement":[],"ealue":[]},"eduPerson":{"edupersonaffiliation":["member","staff"],"edupersonprimaryaffiliation":"staff","edupersonprincipalname":"xx@xx.fr"},"izly":{"izlyAttribute": "test"},"sogxuser":{"sogxdisableflag":0,"proxyaddress":["xx@xx.fr"],"sogxquota":0},"supannCMS":{"supannCMSId":["043d62f2346f80"]},"supannPerson":{"supannAutreMail":"","supannEmpId":"175","supannEntiteAffectationPrincipale":"Admin","supannEtablissement":"{UAI}0690184A","supannNomdeNaissance":"","supannOIDCDatedeNaissance":"01/03/1970","supannOIDCGenre":"M.","supannPrenomsEtatCivil":"x","supannRefId":["{TAIGA}179892"],"supannTypeEntiteAffectation":["adm"],"supanncivilite":"M.","supannCodeINSEEPaysDeNaissance":"","supannCodeINSEEVilleDeNaissance":"","supannListeRouge":"","mailForwardingAddress":"","supannMailPerso":"xxx@gmail.com","supannRoleGenerique":"","supannEtuId":"","supannCodeIne":"","supannParrainDN":"","supannEntiteAffectation":["SIAM"],"supannActivite":"","supannEmpDateFin":"","supannEtuDiplome":"","supannEtuAnneeInscription":""}},"validations":{}},"customFields":{"photo":"adm-175.jpg"},"dataStatus":1,"deletedFlag":false,"initInfo":{"sentDate":"2025-05-15T07:13:02.284Z","initDate":"2025-05-15T07:12:27.186Z"},"initState":2,"lastBackendSync":"","lastSync":"2025-05-09T14:14:17.753Z","lifecycle":-1,"metadata":{"createdBy":"Taiga","createdAt":"2025-03-21T08:09:01.523Z","lastUpdatedBy":"admin","lastUpdatedAt":"2025-06-04T14:34:50.935Z"},"primaryEmployeeNumber":"","srcFusionId":"","state":2,"fingerprint":"e8a4c1a1ba2c848ea7a79b0587870b0d4c48441042174201935df3c881374ec1"}}},"options":{"async":false,"updateStatus":true,"task":"6840598c15b31b9400eb1bbd"}}

unittest/files_ad_utils/ps1_templates/checkpwd.template

Lines changed: 0 additions & 26 deletions
This file was deleted.

unittest/files_ad_utils/ps1_templates/readuser.template

Lines changed: 0 additions & 1 deletion
This file was deleted.

unittest/files_backend_utils/config1.conf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ branchAttr=departmentNumber
1414
disabledAttribute=sogxdisableflag
1515
disableValue=1
1616
enableValue=0
17-
additionnalObjectClass=sogxUser
17+
additionnalObjectClass=sogxUser
18+

unittest/files_backend_utils/configeal.conf

Lines changed: 0 additions & 21 deletions
This file was deleted.

unittest/ldapUtilsTest.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ def test07_dnsuperior(self):
5656
def test08_make_objectclass(self):
5757
entity = u.readjsonfile("./files_ad_utils/identity1.json")
5858
test=u.make_objectclass(entity,[])
59-
x=1
6059
self.assertEqual(len(test),6)
6160

6261
def test09_upsertEntry(self):
@@ -183,15 +182,15 @@ def test24_desactivation_entity(self):
183182
self.assertEqual(result['status'], 0)
184183
self.assertEqual(result['message'],"Identity disabled")
185184
def test25_eduperson(self):
186-
config = u.read_config('./files_backend_utils/configeal.conf')
185+
config = u.read_config('./files_backend_utils/config1.conf')
187186
ldap.set_config(config)
188187
data = u.get_config()
189188
l = ldap.connect_ldap(data['host'], data['dn'], data['password'])
190189
entity = u.readjsonfile("./files_ad_utils/edupersonTest.json")
191190
x = ldap.upsert_entry(l, entity)
192191
result = json.loads(x)
193192
self.assertEqual(result['status'], 0)
194-
self.assertEqual(result['message'], "Entree uid=ddoloty,ou=adm,ou=PERSONNES,dc=lyon,dc=archi,dc=fr mod")
193+
self.assertEqual(result['message'], "Entree uid=xx,ou=people,ou=PERSONNES,dc=lyon,dc=archi,dc=fr mod")
195194
def test26_delete_entry(self):
196195
config = u.read_config('./files_backend_utils/config1.conf')
197196
ldap.set_config(config)
@@ -203,16 +202,7 @@ def test26_delete_entry(self):
203202
self.assertEqual(result['status'], 0)
204203
self.assertEqual(result['message'], "user : uid=omaton,ou=esn,ou=PERSONNES,dc=lyon,dc=archi,dc=fr deleted")
205204

206-
def test99_delete_entry(self):
207-
config = u.read_config('./files_backend_utils/config1.conf')
208-
ldap.set_config(config)
209-
data = u.get_config()
210-
l = ldap.connect_ldap(data['host'], data['dn'], data['password'])
211-
entity = u.readjsonfile("./files_ad_utils/identity1.json")
212-
x= ldap.delete_entity(l, entity)
213-
result = json.loads(x)
214-
self.assertEqual(result['status'], 0)
215-
self.assertEqual(result['message'], "user : uid=omaton,ou=esn,ou=PERSONNES,dc=lyon,dc=archi,dc=fr deleted")
205+
216206

217207
if __name__ == '__main__':
218208
unittest.main()

0 commit comments

Comments
 (0)