owl_fs_root/lib/class.AuthLdap.php"); /** * $Id$ * * Performs unit administration tasks- this includes user, group and category management, * * @version $Revision$ * @author Mukhtar Dharsey * @package dmslib */ /*-----------------------------------------------------------------*/ /** * Class Unit Manager * * Performs unit administration tasks- this includes user, group and category management, * * */ /*-----------------------------------------------------------------*/ class UnitManager { /** * Handle to the ldap util class */ var $ldap; // user management /*-----------------------------------------------------------------*/ /* * Function ListLdapUsers($userNameSearch) * * Searches the LDAP directory for users matching the supplied search string. * * @param $userNameSearch * the username to search for * @return * returns an array containing the users found */ /*-----------------------------------------------------------------*/ function listLdapUsers($userNameSearch) { global $default; // user attributes to search for $attributes = array ("dn", "uid", "givenname", "sn", "mail", "mobile"); // initialise the ldap connection $ldap = new AuthLdap(); $server[0] = $default->ldapServer; $ldap->server = $server; $ldap->dn = $default->ldapRootDn; if ( $ldap->connect()) { // search for the users // append and prepend wildcards $userArray = $ldap->getUsers("*" . $userNameSearch . "*", $attributes); if ($userArray) { // return the array return $userArray; } else { // the search failed, bail return false; } } else { // ldap connection failed, bail // TODO: error handling return false; /* echo "There was a problem.
"; echo "Error code : " . $ldap->ldapErrorCode . "
"; echo "Error text : " . $ldap->ldapErrorText . "
"; */ } } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- function addUser($unitID, $userDetails) { global $default; $sql = new Owl_DB; // TODO: userDetails validation // check that the username is unique $query = "select username from $default->owl_users_table where username = '" . $userDetails['username'] . "'"; $sql->query($query); $numrows = $sql->num_rows($sql); if ($numrows > 0) { // duplicate username $default->errorMessage = "The username " . $userDetails['username'] . " is already in use, please choose another one"; return false; } // insert the user $query = "insert into $default->owl_users_table (username, name, password, email, mobile, ldap_dn) " . "values ( '" . $userDetails['username'] . "', " . "'" . $userDetails['name'] . "', " . "'', " . "'" . $userDetails['email'] . "', " . "'" . $userDetails['mobile'] . "', " . "'" . $userDetails['ldap_dn'] . "')"; $result = $sql->query($query); if(!'result') { return false; } else { echo "insert into user table worked!
"; } // TODO: insert into group table // TODO: must check that username is unique! // retrieve the generated id for insert into the user unit mapping table $query = "select * from $default->owl_users_table where username = '" . $userDetails['username'] . "'"; $sql->query($query); $numrows = $sql->num_rows($sql); if ($numrows == "1") { while($sql->next_record()) { $userID = $sql->f("id"); echo "read userID=$userID from db
"; } } else { // select failed, bail // FIXME: need a rollback here echo "id select failed
"; return false; } // now insert into the user-unit mapping table $query = "insert into $default->owl_user_unit_table (user_id, unit_id) values ($userID, $unitID)"; $result = $sql->query($query); if (!'result') { // FIXME: rollback! echo "insert into user-unit table failed
"; return false; } else { echo "insert into user-unit table worked!
"; } return true; } //----------------------------------------------------------------- /* * Function RemoveUser($unitID, $userID) * * Adds a user to the unit. * * @param unitID * The ID of the unit to add the user to * @param userID * The Id of the User that must be deleted * @return * True if the deletion was successful, else false if not or nonexistant. */ //----------------------------------------------------------------- function removeUser($unitID, $userID) { global $default; // create a connection $db = new Owl_DB; //do validation that userid exists $sql = "SELECT * FROM $default->owl_users_table WHERE $id = $userID"; $result = $db->query($sql) if(!'result') { printf"User does not exist in the database") return false } //if user id exists delete it from the users table $sql = "DELETE FROM $default->owl_users_table WHERE id = $userID"; $result = $db->query($sql) if(!'result') { return false; } else { echo "Deletion from user table Successful
"; return true; } } //----------------------------------------------------------------- /* * Function updateUser($userID, $userDetails) * * Adds a user to the unit. * * @param userID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- function updateUser($userID, $userDetails) { global $default; // create a connection $db = new Owl_DB; //do validation that userid exists $sql = "SELECT * FROM $default->owl_users_table WHERE $id = $userID"; $result = $db->query($sql) if(!'result') { printf"User does not exist in the database") return false } //if user id exists update all info into the users table //TODO group id change?????? $sql = "UPDATE $default->owl_users_table SET " . " username = " . $userDetails['username'] . "," . " name = " . $userDetails['name'] . "," . " password = " . $userDetails['password'] . "," . " quota_max = " . $userDetails['quota_max'] ."," . " quota_current = " . $userDetails['quota_current'] ."," . " name = " . $userDetails['name'] . "," . " email = " . $userDetails['email'] . "," . " mobile = " . $userDetails['mobile'] . "," . " email_notification = " . $userDetails['email_notification'] ."," . " sms_notification = " . $userDetails['sms_notification'] . " " WHERE id = ". $userID ."" ; $result = $db->query($sql) if(!'result') { printf("Not Updated) return false; } else { echo "Deletion from user table Successful
"; return true; } } //----------------------------------------------------------------- /* * Function listUser() * * returns an array of all the usernames * * @Return * an array of usernames */ //----------------------------------------------------------------- function listUser(){ global $default; // create a connection $db = new Owl_DB; //Get list of all the usernames $sql = "SELECT username FROM $default->owl_users_table"; $result = $db->query($sql) //return an array of the usernames return $result; } //----------------------------------------------------------------- /* * Function GetUserDetails($userID) * * Returns an array of all the details for a specified user. * * @Return * an array of usernames */ //----------------------------------------------------------------- function GetUserDetails($userID){ global $default; // create a connection $db = new Owl_DB; //do validation that userid exists $sql = "SELECT * FROM $default->owl_users_table WHERE $id = $userID"; $result = $db->query($sql) if(!'result') { printf"User does not exist in the database") return false } //return an array of the usernames return $result; } // group management //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- function createGroup($name){ return false; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- function removeGroup($groupID){ return false; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- function updateGroup($groupID, $name){ return false; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- function listGroup(){ //return null; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- /** * @param groupID * @param userID */ function addUserToGroup($groupID, $userID){ return false; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- /** * @param groupID * @param userID */ function removeUserFromGroup($groupID, $userID){ return false; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- // category management /** * @param name */ function createCategory($name){ return false; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- /** * @param categoryID */ function removeCategory($categoryID){ return false; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- /** * @param name * @param categoryID */ function updateCategory($name, $categoryID){ return false; } //----------------------------------------------------------------- /* * Function addUser($unitID, $userDetails) * * Adds a user to the unit. * * @param unitID * the ID of the unit to add the user to * @param userDetails * an array containing the details of the user * @return * true if the addition was successful, else false. */ //----------------------------------------------------------------- function listCategories(){ //return null; } } ?>