Version: 0.1
Type: Function
Category: Other
License: GNU General Public License
Description: LDAP function to generate a login name. Can be used for non-LDAP user databases
If you replace UM_uid_exist() with one that queries your particular name service.
Takes a user’s fullname (usually gecos information) and returns a login name
This function tries four times to generate a login name, it returns empty string if it couldn’t.
See also UM_uid_exist();
<? //LDAP function to generate a login name. Can be used for non-LDAP user databases //If you replace UM_uid_exist() with one that queries your particular name service. //Takes a user's fullname (usually gecos information) and returns a login name //This function tries four times to generate a login name, it returns empty //string if it couldn't. //This function relies on UM_uid_exist(). A function which checks an LDAP //server to see if a login is already in use. function UM_get_new_uid($fullname) { //first check that the name is valid //Only Letters, Numbers, '.', and '-' are allowed if(ereg("[^a-zA-Z0-9 .-]+", $fullname)) { echo $fullname." - false"; return ""; } //Remove numbers, '.' and '-' from the fullname $fullname = eregi_replace("[.0-9-]", "", $fullname); //Remove redundant whitespace ( confuses strtok() ) $fullname = eregi_replace("[[:space:]]+", " ", $fullname); //Make the fullname lowercase $fullname = strtolower($fullname); //Tokenize the string. Grab the first token and the last token $token = strtok($fullname, " "); $first_token = $token; while($token) { $last_token = $token; $token = strtok(" "); } //Try first initial lastname $new_login = $first_token[0].substr($last_token, 0,7); if(!UM_uid_exist($new_login)) return $new_login; //Now try lastname first initial $new_login = substr($last_token, 0,7).$first_token[0]; if(!UM_uid_exist($new_login)) return $new_login; //Now try lastname $new_login = substr($last_token, 0,8); if(!UM_uid_exist($new_login)) return $new_login; //Now try firstname $new_login = substr($first_token, 0,8); if(!UM_uid_exist($new_login)) return $new_login; return ""; } ?>