Package zephir :: Package utils :: Module ldap_user
[hide private]
[frames] | no frames]

Source Code for Module zephir.utils.ldap_user

 1  # -*- coding: UTF-8 -*- 
 2  ########################################################################### 
 3  # Eole NG - 2007   
 4  # Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon) 
 5  # Licence CeCill  cf /root/LicenceEole.txt 
 6  # eole@ac-dijon.fr  
 7  #   
 8  # ldap_user.py 
 9  #   
10  #  Utilitaire de gestion d'utilisateurs LDAP pour zephir 
11  #        
12  ########################################################################### 
13   
14  import ldap, getpass, sys 
15   
16 -def add_user(login,passwd,pass_ldap):
17 l = ldap.open('127.0.0.1') 18 try: 19 l.simple_bind_s('cn=admin,o=gouv,c=fr',pass_ldap) 20 except: 21 sys.exit("\nerreur d'authentification\n") 22 23 # si la racine n'existe pas, on la crée 24 try: 25 result = l.search_s("o=gouv, c=fr", ldap.SCOPE_SUBTREE,"(&(objectClass=organization)(o=gouv))") 26 except ldap.NO_SUCH_OBJECT: 27 result = [] 28 if result == []: 29 l.add_s('o=gouv,c=fr', [('objectClass','organization'),('o','gouv'),('description','Gouvernemental')]) 30 31 # on regarde si il existe 32 result = l.search_s("o=gouv, c=fr", ldap.SCOPE_SUBTREE,"(&(objectClass=OpenLDAPperson)(uid="+login+"))") 33 if result == []: 34 # si non on le crée 35 try: 36 l.add_s('uid='+login+',o=gouv,c=fr', [('objectClass','OpenLDAPperson'),('uid',login),('cn',login),('sn',login),('UserPassword',passwd)]) 37 except: 38 print("\nerreur d'authentification\n") 39 else: 40 # si il existe déjà on modifie son mot de passe 41 try: 42 l.modify_s('uid='+login+',o=gouv,c=fr', [(ldap.MOD_REPLACE,'UserPassword',passwd)]) 43 except: 44 print("\nerreur d'authentification\n") 45 46 l.unbind()
47
48 -def del_user(login,pass_ldap):
49 l = ldap.open('127.0.0.1') 50 try: 51 l.simple_bind_s('cn=admin,o=gouv,c=fr',pass_ldap) 52 except: 53 sys.exit("\nerreur d'authentification\n") 54 55 # si la racine n'existe pas, on la crée 56 result = l.search_s("o=gouv, c=fr", ldap.SCOPE_SUBTREE,"(&(objectClass=OpenLDAPperson)(uid=%s))" % login) 57 if len(result) != 1: 58 print "\nerreur, cet utilisateur n'existe pas\n" 59 return 0 60 else: 61 # si il existe, on le supprime 62 try: 63 l.delete_s(result[0][0]) 64 except: 65 return 0 66 else: 67 return 1 68 69 l.unbind()
70
71 -def list_user(pass_ldap):
72 l = ldap.open('127.0.0.1') 73 try: 74 l.simple_bind_s('cn=admin,o=gouv,c=fr',pass_ldap) 75 except: 76 sys.exit("\nerreur d'authentification\n") 77 78 # si la racine n'existe pas, on la crée 79 result = l.search_s("o=gouv, c=fr", ldap.SCOPE_SUBTREE,"(objectClass=OpenLDAPperson)") 80 l.unbind() 81 if result == []: 82 print "\n Aucun utilisateur trouvé dans l'annuaire local\n" 83 else: 84 # on affiche tous les utilisateurs 85 print "\n liste des utilisateurs zephir :\n" 86 for user in result: 87 print "- " + str(user[1]['cn'][0]) 88 print "\n"
89