1
2
3
4
5
6
7
8
9
10
11
12
13
14 import ldap, sys
15 from os.path import isfile
16 from creole.utils import print_red
17
18
19 LDAPCONF = '/etc/eole/eoleldap.conf'
20 if isfile(LDAPCONF):
21 execfile(LDAPCONF)
22 try:
23
24 l = ldap.open(ldap_server)
25 l.simple_bind_s('cn=admin,o=gouv,c=fr', ldap_passwd)
26 except:
27 print_red("\nLe mot de passe ldap stocké est invalide\nlancez reconfigure pour le réinitialiser\n")
28 sys.exit(1)
29 else:
30 raise Exception("Fichier %s non trouvé" % LDAPCONF)
31
33 l = ldap.open(ldap_server)
34 try:
35 l.simple_bind_s('cn=admin,o=gouv,c=fr',ldap_passwd)
36 except:
37 sys.exit("\nerreur d'authentification\n")
38
39
40 try:
41 result = l.search_s("o=gouv, c=fr", ldap.SCOPE_SUBTREE,"(&(objectClass=organization)(o=gouv))")
42 except ldap.NO_SUCH_OBJECT:
43 result = []
44 if result == []:
45 l.add_s('o=gouv,c=fr', [('objectClass','organization'),('o','gouv'),('description','Gouvernemental')])
46
47
48 result = l.search_s("o=gouv, c=fr", ldap.SCOPE_SUBTREE,"(&(objectClass=OpenLDAPperson)(uid="+login+"))")
49 if result == []:
50
51 try:
52 l.add_s('uid='+login+',o=gouv,c=fr', [('objectClass','OpenLDAPperson'),('uid',login),('cn',login),('sn',login),('UserPassword',passwd)])
53 except:
54 print("\nerreur d'authentification\n")
55 else:
56
57 try:
58 l.modify_s('uid='+login+',o=gouv,c=fr', [(ldap.MOD_REPLACE,'UserPassword',passwd)])
59 except:
60 print("\nerreur d'authentification\n")
61
62 l.unbind()
63
65 l = ldap.open(ldap_server)
66 try:
67 l.simple_bind_s('cn=admin,o=gouv,c=fr',ldap_passwd)
68 except:
69 sys.exit("\nerreur d'authentification\n")
70
71
72 result = l.search_s("o=gouv, c=fr", ldap.SCOPE_SUBTREE,"(&(objectClass=OpenLDAPperson)(uid=%s))" % login)
73 if len(result) != 1:
74 print "\nerreur, cet utilisateur n'existe pas\n"
75 return 0
76 else:
77
78 try:
79 l.delete_s(result[0][0])
80 except:
81 return 0
82 else:
83 return 1
84
85 l.unbind()
86
88 l = ldap.open(ldap_server)
89 try:
90 l.simple_bind_s('cn=admin,o=gouv,c=fr',ldap_passwd)
91 except:
92 sys.exit("\nerreur d'authentification\n")
93
94
95 result = l.search_s("o=gouv, c=fr", ldap.SCOPE_SUBTREE,"(objectClass=OpenLDAPperson)")
96 l.unbind()
97 if result == []:
98 print "\n Aucun utilisateur trouvé dans l'annuaire local\n"
99 else:
100
101 print "\n liste des utilisateurs zephir :\n"
102 for user in result:
103 print "- " + str(user[1]['cn'][0])
104 print "\n"
105