@@ -12,13 +12,13 @@ def to_hex(val):
1212 return binascii .hexlify (val ).decode ()
1313 return None
1414
15- def get_user_info (upn , ldap_server , base_dn , bind_user , bind_password ):
15+ def get_user_info (upn , ldap_server , ldap_base_dn , ldap_bind_user , bind_password ):
1616 conn = None
1717 try :
1818 server = Server (ldap_server )
19- conn = Connection (server , user = bind_user , password = bind_password , auto_bind = True )
19+ conn = Connection (server , user = ldap_bind_user , password = bind_password , auto_bind = True )
2020 search_filter = f"(&(objectclass=person)(userPrincipalName={ upn } ))"
21- conn .search (base_dn , search_filter , attributes = ['sAMAccountName' ])
21+ conn .search (ldap_base_dn , search_filter , attributes = ['sAMAccountName' ])
2222
2323 if not conn .entries :
2424 logger .warning ("No entries found for the given UPN." )
@@ -30,7 +30,7 @@ def get_user_info(upn, ldap_server, base_dn, bind_user, bind_password):
3030 return None
3131
3232 search_filter = f"(&(objectclass=posixaccount)(sAMAccountName={ username } ))"
33- conn .search (base_dn , search_filter , attributes = ['*' ])
33+ conn .search (ldap_base_dn , search_filter , attributes = ['*' ])
3434
3535 if not conn .entries :
3636 logger .warning ("no posix entries found for the given username." )
@@ -120,14 +120,17 @@ def clean_groups(groups_val):
120120 "logonCount" : int (user_info .get ("logonCount" ) or 0 ),
121121 "sAMAccountName" : user_info .get ("sAMAccountName" ),
122122 "sAMAccountType" : user_info .get ("sAMAccountType" ),
123- "lastLogoff" : user_info .get ("lastLogoff" ),
123+ "lastLogoff" : filetime_to_str ( user_info .get ("lastLogoff" ) ),
124124 "uSNCreated" : int (user_info .get ("uSNCreated" ) or 0 ),
125+ "uSNChanged" : int (user_info .get ("uSNChanged" ) or 0 ),
125126 },
126127 "directory" : {
127128 "objectGUID" : to_hex (user_info .get ("objectGUID" )),
128129 "objectSid" : to_hex (user_info .get ("objectSid" )),
129130 "primaryGroupID" : user_info .get ("primaryGroupID" ),
130131 "distinguishedName" : user_info .get ("distinguishedName" ),
132+ "whenCreated" : generalized_time_to_str (user_info .get ("whenCreated" )),
133+ "whenChanged" : generalized_time_to_str (user_info .get ("whenChanged" )),
131134 },
132135 "groups" : clean_groups (user_info .get ("memberOf" )),
133136 "attributes" : {
0 commit comments