From 7206bf47c7c6a0c016a554a13c681535437a93fb Mon Sep 17 00:00:00 2001 From: Karl Burkhart Date: Tue, 7 Jun 2011 11:20:26 +0000 Subject: [PATCH] =?UTF-8?q?getUidFromCardNumber=20sucht=20im=20ldap=20nach?= =?UTF-8?q?=20der=20=C3=BCbergebenen=20Kartennummer=20und=20gibt=20die=20d?= =?UTF-8?q?azugeh=C3=B6rige=20UID=20=20zur=C3=BCck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/functions.inc.php | 76 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/include/functions.inc.php b/include/functions.inc.php index 143faf05f..f2c1ea145 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -418,6 +418,82 @@ function checkalias($alias) } +/** + * + * Gibt UID zur passenden Kartennummer zurück, false im Fehlerfall + * @param $number + */ +function getUidFromCardNumber($number) +{ + if($connect=@ldap_connect(LDAP_SERVER)) + { + // bind to ldap connection + if(($bind=@ldap_bind($connect)) == false) + { + print "bind:__FAILED__
\n"; + return false; + } + + // search for card id + if (($res_id = ldap_search($connect, LDAP_BASE_DN, "departmentNumber=$number")) == false) + { + print "failure: search in LDAP-tree failed
"; + return false; + } + + // wurde keiner gefunden, versuche mit 0 davor + if (ldap_count_entries($connect, $res_id) == 0) + { + $number = "0".$number; + // search for card id 0[Number] + if (($res_id = ldap_search($connect, LDAP_BASE_DN, "departmentNumber=$number")) == false) + { + print "failure: search in LDAP-tree failed
"; + return false; + } + if (ldap_count_entries($connect, $res_id) == 0) + { + $number = "0".$number; + // search for card id 00[Number] + if (($res_id = ldap_search($connect, LDAP_BASE_DN, "departmentNumber=$number")) == false) + { + print "failure: search in LDAP-tree failed
"; + return false; + } + if (ldap_count_entries($connect, $res_id) == 0) + { + $number = "0".$number; + echo $number; + // search for card id 000[Number] + if (($res_id = ldap_search($connect, LDAP_BASE_DN, "departmentNumber=$number")) == false) + { + print "failure: search in LDAP-tree failed
"; + return false; + } + if (ldap_count_entries($connect, $res_id) == 0) + { + print "failure: no person found
"; + return false; + } + } + } + } + $info = ldap_get_entries($connect, $res_id); + // gibt uid zurück + return($info[0]['uid'][0]); + + @ldap_close($connect); + return true; + } + else + { + // no conection to ldap server + echo "no connection to '$ldap_server'
\n"; + } + @ldap_close($connect); + return(false); +} + // **************************************************************** // * Prueft ob im LDAP ein User mit diesem Passwort existiert // ****************************************************************