auf-annuaire : intégration des UID/GID, bogue (oubli) sur le pays.
authorProgfou <jean-christophe.andre@auf.org>
Sat, 21 Jul 2012 16:04:43 +0000 (23:04 +0700)
committerProgfou <jean-christophe.andre@auf.org>
Sat, 21 Jul 2012 16:04:43 +0000 (23:04 +0700)
auf-annuaire

index 186ce35..544baff 100755 (executable)
@@ -41,7 +41,7 @@ def noms_bureau(cc):
 
 class LdapEntry(object):
     _attributes_order = [
-        'objectClass', 'sn', 'givenName', 'cn', 'ou', 'l', 'mail', 'o',
+        'objectClass', 'sn', 'givenName', 'cn', 'ou', 'c', 'mail', 'o',
         'userPassword', 'telephoneNumber', 'uid',
     ]
 
@@ -142,13 +142,26 @@ class AnnuaireAuF(object):
         if os.path.exists(photo_filename):
             ldap_dict['jpegPhoto'] = [ file(photo_filename, 'rb').read() ]
             #ldap_dict['photo'] = [ file(photo_filename, 'rb').read() ]
+        # compte POSIX
+        if json_dict['employe']:
+            ldap_dict['objectClass'].append(u'posixAccount')
+            ldap_dict['uidNumber'] = [ str(2000 + int(json_dict['employe']['id'])) ]
+            ldap_dict['gidNumber'] = [ str(100) ]
+            ldap_dict['homeDirectory'] = [ '/home/auf/%s' % user ]
+            ldap_dict['loginShell'] = [ '/bin/false' ]
         # identification unique
         ldap_dn = u'mail=%s,%s' % (adel, self.ldap_base)
         return ldap_dn, ldap_dict
 
     def load(self):
         self.data = [ ]
+        employes = aufrefer.get('datamaster-employe.json')
+        employes = dict([(e['courriel'],e) for e in employes if e['courriel']])
         for json_dict in aufrefer.get('annuaire.json'):
+            try:
+                json_dict['employe'] = employes[json_dict['adel']]
+            except:
+                json_dict['employe'] = None
             ldap_dn, ldap_dict = self.json2ldap(json_dict)
             self.data.append(LdapEntry(ldap_dn, ldap_dict))