From e890a657aeafdecfece957e10fbf9830a968facf Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Mon, 19 Jan 2009 18:43:47 +0100 Subject: [PATCH] [svn r17827] Minor - replace the mysql calls for the UrlManager class --- main/admin/access_url_edit_users_to_url.php | 97 +++--------- main/admin/access_urls.php | 2 +- main/inc/lib/urlmanager.lib.php | 155 +++++++++++++++----- 3 files changed, 137 insertions(+), 117 deletions(-) diff --git a/main/admin/access_url_edit_users_to_url.php b/main/admin/access_url_edit_users_to_url.php index 7b9fcddb00..06ab8192ea 100755 --- a/main/admin/access_url_edit_users_to_url.php +++ b/main/admin/access_url_edit_users_to_url.php @@ -20,14 +20,7 @@ ============================================================================== */ /** -=================================================SELECT user_id, username, lastname, firstname FROM - `dokeossvn_dokeos_main`.`user` u INNER JOIN `dokeossvn_dokeos_main`.`access_url_rel_user` url_rel_user - INNER JOIN ON(u.user_id = url_rel_user.user_id) - WHERE (username LIKE "a%" - OR firstname LIKE "a%" - OR lastname LIKE "a%") WHERE access_url_id = "undefined" - ORDER BY lastname, firstname, username - LIMIT 11============================= +============================================================================== * @package dokeos.admin ============================================================================== */ @@ -51,7 +44,10 @@ $xajax -> registerFunction ('search_users'); $this_section = SECTION_PLATFORM_ADMIN; // Access restrictions -api_protect_admin_script(true); +api_protect_admin_script(); +if (!$_configuration['multiple_access_urls']) + header('Location: index.php'); + // Database Table Definitions $tbl_user = Database::get_main_table(TABLE_MAIN_USER); @@ -144,55 +140,21 @@ function remove_item(origin) } '; - $formSent=0; -$errorMsg=$firstLetterUser=$firstLetterSession=''; +$errorMsg=''; $UserList=$SessionList=array(); $users=$sessions=array(); -$noPHP_SELF=true; -//&& isset($_POST['access_url_id_hidden']) + if($_POST['formSent']) { $formSent=$_POST['formSent']; - $firstLetterUser=$_POST['firstLetterUser']; - $firstLetterSession=$_POST['firstLetterSession']; $UserList=$_POST['sessionUsersList']; - $ClassList=$_POST['sessionClassesList']; + if(!is_array($UserList)) { $UserList=array(); } - if($formSent == 1) { - $sql = "SELECT user_id FROM $tbl_access_url_rel_user WHERE access_url_id='$access_url_id'"; - $result = api_sql_query($sql,__FILE__,__LINE__ ); - $existingUsers = array(); - while($row = Database::fetch_array($result)){ - $existingUsers[] = $row['user_id']; - } - $sql = "SELECT id FROM $tbl_access_url WHERE id='$access_url_id'"; - $result=api_sql_query($sql,__FILE__,__LINE__); - - $UrlList=array(); - - while($row=Database::fetch_array($result)) { - $UrlList[]=$row['id']; - } - - foreach($UrlList as $enreg_url) { - //adding users - foreach($UserList as $enreg_user) { - if(!in_array($enreg_user, $existingUsers)) { - $sql = "INSERT IGNORE INTO $tbl_access_url_rel_user (access_url_id, user_id) VALUES('$enreg_url','$enreg_user')"; - api_sql_query($sql,__FILE__,__LINE__); - } - } - //deleting old users - foreach($existingUsers as $existing_user) { - if(!in_array($existing_user, $UserList)) { - $sql = "DELETE FROM $tbl_access_url_rel_user WHERE access_url_id='$enreg_url' AND user_id='$existing_user'"; - api_sql_query($sql,__FILE__,__LINE__); - } - } - } + if($formSent == 1) { + UrlManager::update_urls_rel_user($UserList,$access_url_id); //header('Location: resume_session.php?id_session='.$id_session); } } @@ -201,54 +163,31 @@ Display::display_header($tool_name); api_display_tool_title($tool_name); $nosessionUsersList = $sessionUsersList = array(); -/*$sql = 'SELECT COUNT(1) FROM '.$tbl_user; -$rs = api_sql_query($sql, __FILE__, __LINE__); -$count_courses = mysql_result($rs, 0, 0);*/ $ajax_search = $add_type == 'unique' ? true : false; if($ajax_search) -{ - $sql="SELECT u.user_id, lastname, firstname, username, access_url_id - FROM $tbl_user u - INNER JOIN $tbl_access_url_rel_user - ON $tbl_access_url_rel_user.user_id = u.user_id - AND $tbl_access_url_rel_user.access_url_id = ".intval($access_url_id)." - ORDER BY lastname,firstname,username"; - - $result=api_sql_query($sql,__FILE__,__LINE__); - $Users=api_store_result($result); - +{ + $Users=UrlManager::get_url_rel_user_data($access_url_id); foreach($Users as $user) { $sessionUsersList[$user['user_id']] = $user ; } } else { - $sql="SELECT u.user_id, lastname, firstname, username, access_url_id - FROM $tbl_user u - INNER JOIN $tbl_access_url_rel_user - ON $tbl_access_url_rel_user.user_id = u.user_id - ORDER BY lastname,firstname,username"; - - $result=api_sql_query($sql,__FILE__,__LINE__); - $Users=api_store_result($result); - + $Users=UrlManager::get_url_rel_user_data(); foreach($Users as $user) { if($user['access_url_id'] == $access_url_id) { $sessionUsersList[$user['user_id']] = $user ; } - } - + } $sql="SELECT u.user_id, lastname, firstname, username FROM $tbl_user u - ORDER BY lastname,firstname,username"; - + ORDER BY lastname,firstname,username"; $result=api_sql_query($sql,__FILE__,__LINE__); $Users=api_store_result($result); $user_list_leys = array_keys($sessionUsersList); foreach($Users as $user) { if (!in_array($user['user_id'],$user_list_leys)) $nosessionUsersList[$user['user_id']] = $user ; - } - + } } @@ -400,9 +339,9 @@ unset($sessionUsersList);
'; + echo ''; else - echo ''; + echo ''; ?> diff --git a/main/admin/access_urls.php b/main/admin/access_urls.php index 77907474b6..e28ee8197f 100644 --- a/main/admin/access_urls.php +++ b/main/admin/access_urls.php @@ -103,7 +103,7 @@ $table->set_column_filter(4, 'modify_filter'); $table->display(); /* function status_filter($active, $url_params, $row) { - $url_id =UrlManager::check_status($row[1]); + $url_id =UrlManager::get_url_id($row[1]); if ($row[0] == $url_id ) { $action='lock'; $image='right'; diff --git a/main/inc/lib/urlmanager.lib.php b/main/inc/lib/urlmanager.lib.php index ec1ed65136..c74a608a9b 100755 --- a/main/inc/lib/urlmanager.lib.php +++ b/main/inc/lib/urlmanager.lib.php @@ -38,14 +38,14 @@ class UrlManager * @param string The URL of the site * @param string The description of the site * @param int is active or not - * @param int the user_id of the owner + * @param int the user_id of the owner * @return boolean if success */ function add($url, $description, $active) { $tms = time(); - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); - $sql = "INSERT INTO $access_url_table + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $sql = "INSERT INTO $table_access_url SET url = '".Database::escape_string($url)."/', description = '".Database::escape_string($description)."', active = '".Database::escape_string($active)."', @@ -53,7 +53,7 @@ class UrlManager tms = FROM_UNIXTIME(".$tms.")"; $result = api_sql_query($sql, __FILE__, __LINE__); return $result; - } + } /** * Updates an URL access to Dokeos * @author Julio Montoya , @@ -62,12 +62,13 @@ class UrlManager * @param string The description of the site * @param int is active or not * @param int the user_id of the owner - * @return boolean if success + * @return boolean if success */ - function udpate($url_id, $url, $description, $active) { - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + function udpate($url_id, $url, $description, $active) + { + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); $tms = time(); - $sql = "UPDATE $access_url_table + $sql = "UPDATE $table_access_url SET url = '".Database::escape_string($url)."', description = '".Database::escape_string($description)."', active = '".Database::escape_string($active)."', @@ -80,9 +81,10 @@ class UrlManager /** * * */ - function url_exist($url) { - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); - $sql = "SELECT id FROM $access_url_table WHERE url = '".Database::escape_string($url)."' "; + function url_exist($url) + { + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $sql = "SELECT id FROM $table_access_url WHERE url = '".Database::escape_string($url)."' "; $res = api_sql_query($sql,__FILE__,__LINE__); $num = Database::num_rows($res); return $num; @@ -91,23 +93,24 @@ class UrlManager /** * * */ - function url_id_exist($url) { - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); - $sql = "SELECT id FROM $access_url_table WHERE id = '".Database::escape_string($url)."' "; + function url_id_exist($url) + { + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $sql = "SELECT id FROM $table_access_url WHERE id = '".Database::escape_string($url)."' "; $res = api_sql_query($sql,__FILE__,__LINE__); $num = Database::num_rows($res); return $num; - } - + } /** * This function get the quantity of URL * @author Julio Montoya * @return int count of urls * */ - function url_count() { - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); - $sql = "SELECT count(id) as count_result FROM $access_url_table"; + function url_count() + { + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $sql = "SELECT count(id) as count_result FROM $table_access_url"; $res = api_sql_query($sql, __FILE__, __LINE__); $url = Database::fetch_row($res); $result = $url['0']; @@ -119,9 +122,10 @@ class UrlManager * @author Julio Montoya * @return array * */ - function get_url_data() { - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); - $sql = "SELECT id , url , description, active FROM $access_url_table"; + function get_url_data() + { + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $sql = "SELECT id , url , description, active FROM $table_access_url"; $res = api_sql_query($sql, __FILE__, __LINE__); $urls = array (); while ($url = Database::fetch_row($res)) @@ -136,14 +140,41 @@ class UrlManager * @author Julio Montoya * @return array * */ - function get_url_data_from_id($url_id) { - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); - $sql = "SELECT id, url, description, active FROM $access_url_table WHERE id = ".Database::escape_string($url_id); + function get_url_data_from_id($url_id) + { + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $sql = "SELECT id, url, description, active FROM $table_access_url WHERE id = ".Database::escape_string($url_id); $res = api_sql_query($sql, __FILE__, __LINE__); $row = Database::fetch_array($res); return $row; } + /** Gets the inner join of users and urls table + * @author Julio Montoya + * @return int access url id + * @return array api_store_result of the result + * */ + function get_url_rel_user_data($access_url_id='') + { + $where =''; + $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $tbl_user = Database :: get_main_table(TABLE_MAIN_USER); + + if (!empty($access_url_id)) + $where ="WHERE $table_url_rel_user.access_url_id = ".Database::escape_string($access_url_id); + + $sql="SELECT u.user_id, lastname, firstname, username, access_url_id + FROM $tbl_user u + INNER JOIN $table_url_rel_user + ON $table_url_rel_user.user_id = u.user_id + $where + ORDER BY lastname,firstname,username"; + + $result=api_sql_query($sql,__FILE__,__LINE__); + $Users=api_store_result($result); + return $Users; + } + /** * Sets the status of an URL 1 or 0 @@ -174,8 +205,8 @@ class UrlManager * */ function delete($id) { - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); - $sql= "DELETE FROM $access_url_table WHERE id = ".Database::escape_string($id).""; + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $sql= "DELETE FROM $table_access_url WHERE id = ".Database::escape_string($id).""; $result = api_sql_query($sql, __FILE__, __LINE__); return $result; } @@ -190,8 +221,8 @@ class UrlManager * */ function relation_url_user_exist($user_id, $url_id) { - $access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); - $sql= "SELECT user_id FROM $access_url_rel_user_table WHERE access_url_id = ".Database::escape_string($url_id)." AND user_id = ".Database::escape_string($user_id)." "; + $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $sql= "SELECT user_id FROM $table_url_rel_user WHERE access_url_id = ".Database::escape_string($url_id)." AND user_id = ".Database::escape_string($user_id)." "; $result = api_sql_query($sql, __FILE__, __LINE__); $num = Database::num_rows($result); return $num; @@ -205,7 +236,7 @@ class UrlManager * */ function add_users_to_urls($user_list,$url_list) { - $access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $result_array=array(); if (is_array($user_list) && is_array($url_list)){ @@ -213,7 +244,7 @@ class UrlManager foreach ($user_list as $user_id) { $count = UrlManager::relation_url_user_exist($user_id,$url_id); if ($count==0) { - $sql = "INSERT INTO $access_url_rel_user_table + $sql = "INSERT INTO $table_url_rel_user SET user_id = ".Database::escape_string($user_id).", access_url_id = ".Database::escape_string($url_id); $result = api_sql_query($sql, __FILE__, __LINE__); if($result) @@ -233,24 +264,74 @@ class UrlManager * @author Julio Montoya * @param user_id * @param url_id - * @return boolean true if success + * @return boolean true if success * */ function add_user_to_url($user_id,$url_id=1) { - $access_url_rel_user_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); $count = UrlManager::relation_url_user_exist($user_id,$url_id); if (empty($count)) { - $sql = "INSERT INTO $access_url_rel_user_table + $sql = "INSERT INTO $table_url_rel_user SET user_id = ".Database::escape_string($user_id).", access_url_id = ".Database::escape_string($url_id); $result = api_sql_query($sql, __FILE__, __LINE__); } return $result; } - function check_status($url) + + /** + * Deletes an url and user relationship + * @author Julio Montoya + * @param int url id + * @return boolean true if success + * */ + function delete_url_rel_user($user_id, $url_id) + { + $table_url_rel_user= Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $sql= "DELETE FROM $table_url_rel_user WHERE user_id = ".Database::escape_string($user_id)." AND access_url_id=".Database::escape_string($url_id)." "; + $result = api_sql_query($sql, __FILE__, __LINE__); + return $result; + } + + /** + * Updates the url_rel_user table with a given user list + * @author Julio Montoya + * @param array user list + * @param int access_url_id + * */ + function update_urls_rel_user($user_list,$access_url_id) + { + $table_access_url = Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $table_url_rel_user = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + + $sql = "SELECT user_id FROM $table_url_rel_user WHERE access_url_id='$access_url_id'"; + $result = api_sql_query($sql,__FILE__,__LINE__ ); + $existingUsers = array(); + + while($row = Database::fetch_array($result)){ + $existingUsers[] = $row['user_id']; + } + + //adding users + foreach($user_list as $enreg_user) { + if(!in_array($enreg_user, $existingUsers)) { + UrlManager::add_user_to_url($enreg_user,$access_url_id); + } + } + //deleting old users + foreach($existingUsers as $existing_user) { + if(!in_array($existing_user, $user_list)) { + UrlManager::delete_url_rel_user($existing_user,$access_url_id); + } + } + } + /** + * + * */ + function get_url_id($url) { - $access_url_table= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); - $sql = "SELECT id FROM $access_url_table WHERE url = '".$url."'"; + $table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL); + $sql = "SELECT id FROM $table_access_url WHERE url = '".$url."'"; $result = api_sql_query($sql); $access_url_id = Database::result($result, 0, 0); return $access_url_id;