X-Git-Url: https://git.ucc.asn.au/?p=uccvend-vendserver.git;a=blobdiff_plain;f=sql-edition%2Fservers%2FLDAPConnector.py;h=8699fd2ba6f536d39efd434ca534c685bdad87e7;hp=1f35c207db250a25a66813dce9b76ea9ec0f5b18;hb=e423f11f190d685156cb557319b169d2b79b752f;hpb=07137a6ba9397180f6edb5b61a74bb6c18746811 diff --git a/sql-edition/servers/LDAPConnector.py b/sql-edition/servers/LDAPConnector.py index 1f35c20..8699fd2 100644 --- a/sql-edition/servers/LDAPConnector.py +++ b/sql-edition/servers/LDAPConnector.py @@ -10,13 +10,13 @@ def get_ldap_connection(): ldap.set_option(ldap.OPT_X_TLS,1) ldap.set_option(ldap.OPT_X_TLS_ALLOW,1) #ldap.set_option(ldap.OPT_DEBUG_LEVEL,255) - conn = ldap.initialize('ldaps://mussel.ucc.gu.uwa.edu.au:636/') + conn = ldap.initialize('ldaps://mussel.ucc.gu.uwa.edu.au/') - binddn = 'cn=admin,dc=ucc,dc=gu,dc=uwa,dc=edu,dc=au' - passfile = open('/etc/pam_ldap.secret') + binddn = 'cn=mifareagent,ou=profile,dc=ucc,dc=gu,dc=uwa,dc=edu,dc=au' + passfile = open('/etc/dispense2/ldap.passwd') password = passfile.readline().strip() passfile.close() - + conn.simple_bind_s(binddn, password) return conn @@ -36,9 +36,27 @@ def get_uid(card_id): return results[0][1]['uidNumber'][0] +def get_uname(uid): + ldapconn = get_ldap_connection() + + basedn = 'ou=People,dc=ucc,dc=gu,dc=uwa,dc=edu,dc=au' + filter = ldap.filter.filter_format('(uidNumber=%s)', (uid, )) + attrs = ('uid',) + + results = ldapconn.search_st(basedn, ldap.SCOPE_SUBTREE, filter, attrs, timeout=LDAP_TIMEOUT) + + ldapconn.unbind() + + if len(results) != 1: + raise ValueError, "no username found for user id" + + return results[0][1]['uid'][0] + def set_card_id(uidNumber, card_id): ldapconn = get_ldap_connection() + # fix uidNumber for three/four digit uids + uidNumber = str(int(uidNumber)) basedn = 'ou=People,dc=ucc,dc=gu,dc=uwa,dc=edu,dc=au' filter = ldap.filter.filter_format('(uidNumber=%s)', (uidNumber, )) attrs = ('objectClass', ) @@ -70,5 +88,5 @@ def set_card_id(uidNumber, card_id): ldapconn.unbind() if __name__ == '__main__': - #print get_uid('\x01\x02\x03\x04\x05\x06') - set_card_id('11251', '\x01\x02\x03\x04\x05\x06') + set_card_id('11126', '\x01\x02\x03\x04\x05\x06') + print get_uid('\x01\x02\x03\x04\x05\x06')