11#!/usr/bin/python3
22import sys
33sys .path .append ('../lib' )
4- import backend_ldap_utils as u
5- import ldap
4+ import backend_ldap_utils as ldap
5+ import backend_utils as u
66import argparse
77
88def main ():
99 parser = argparse .ArgumentParser ()
1010 parser .add_argument ('--active' , help = '0 | 1 ' , default = '1' )
1111 args = parser .parse_args ()
1212 json = u .readjsoninput ()
13- u .readconfig ('../etc/config.conf' )
13+ config = u .read_config ('../etc/config.conf' )
14+ ldap .set_config (config )
1415 if u .is_backend_concerned (json ) == False :
15- print (u .returncode (0 , "Not concerned" ))
16+ print (u .returncode (0 , "not concerned" ))
1617 exit (0 )
17- l = u .connect_ldap (u .config ('host' ),u .config ('dn' ),u .config ('password' ))
18- if u .config ('disabledAttribute' ,'' ) == '' :
19- print (u .returncode (1 ,'attribut non trouvé : disabledAttribute' ))
20- exit (1 )
21- r = u .search_entity (l ,json )
22- if len (r ) == 0 :
23- print (u .returncode (1 ,'Entrée LDAP non trouvée' ))
24- exit (1 )
25- ldif = []
26- #verification si l object class est present
27- add_obj_class = u .config ('additionnalObjectClass' ).encode ()
28- present = False
29- objectclass = r [0 ][1 ]['objectClass' ]
30- for obj in objectclass :
31- if obj == add_obj_class :
32- present = True
33- if not present :
34- objectclass .append (add_obj_class )
35- ldif .append ((ldap .MOD_REPLACE ,'objectClass' ,objectclass ))
36- message = ""
37- if args .active == "1" :
38- attribute = u .config ('disabledAttribute' )
39- v = u .config ('enableValue' )
40- ldif .append ((ldap .MOD_REPLACE , u .config ('disabledAttribute' ), u .config ('enableValue' ).encode ('utf-8' )))
41- message = "OK compte actif"
18+ l = ldap .connect_ldap (u .config ('host' ),u .config ('dn' ),u .config ('password' ))
19+ if args .active == "1" :
20+ ret = ldap .activate_entry (l ,json ,True )
4221 else :
43- ldif .append ((ldap .MOD_REPLACE , u .config ('disabledAttribute' ), u .config ('disableValue' ).encode ('utf-8' )))
44- message = "OK compte inactif"
45- try :
46- l .modify_s (r [0 ][0 ], ldif )
47- except ldap .LDAPError as e :
48- e_dict = e .args [0 ]
49- print (u .returncode (1 , str (e_dict .get ("result" )) + ' ' + e_dict .get ("desc" )))
50- exit (1 )
22+ ret = ldap .activate_entry (l , json , False )
23+ print (ret )
24+ exit (0 )
5125
52- print (u .returncode (0 , message ))
5326if __name__ == '__main__' :
5427 main ()
0 commit comments