diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 19c83b37ba..4722ee080f 100644 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -319,14 +319,14 @@ class CourseManager { // Delete in table session_rel_user Database::query("DELETE FROM ".Database::get_main_table(TABLE_MAIN_SESSION_USER)." WHERE id_session ='".$my_session_id."' - AND id_user='$uid'"); + AND id_user='$uid' AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""); } } // Update the table session $row = Database::fetch_array(Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_USER)." - WHERE id_session = '".$my_session_id."'")); + WHERE id_session = '".$my_session_id."' AND relation_type<>".SESSION_RELATION_TYPE_RRHH." ")); $count = $row[0]; // number of users by session $result = Database::query("UPDATE ".Database::get_main_table(TABLE_MAIN_SESSION)." SET nbr_users = '$count' WHERE id = '".$my_session_id."'"); @@ -397,7 +397,7 @@ class CourseManager { // Check whether the user has not already been stored in the session_rel_user table if (Database::num_rows(@Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_SESSION_USER)." WHERE id_session ='".$_SESSION['id_session']."' - AND id_user = '".$user_id."'")) > 0) { + AND id_user = '".$user_id."' AND relation_type<>".SESSION_RELATION_TYPE_RRHH." ")) > 0) { return false; } } @@ -414,7 +414,7 @@ class CourseManager { id_user = '".$user_id."'"); // Update the table session - $row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_USER)." WHERE id_session = '".$_SESSION['id_session']."'")); + $row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM ".Database::get_main_table(TABLE_MAIN_SESSION_USER)." WHERE id_session = '".$_SESSION['id_session']."' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."")); $count = $row[0]; // number of users by session $result = @Database::query("UPDATE ".Database::get_main_table(TABLE_MAIN_SESSION)." SET nbr_users = '$count' WHERE id = '".$_SESSION['id_session']."'"); diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index abecec4227..fe4a4723e7 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -344,7 +344,7 @@ class SessionManager { $session_info = api_get_session_info($id_session); $session_name = $session_info['name']; - $sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session'"; + $sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""; $result = Database::query($sql); $existingUsers = array(); while($row = Database::fetch_array($result)){ @@ -433,7 +433,7 @@ class SessionManager { } // delete users from the session if ($empty_users===true){ - Database::query("DELETE FROM $tbl_session_rel_user WHERE id_session = $id_session"); + Database::query("DELETE FROM $tbl_session_rel_user WHERE id_session = $id_session AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""); } // insert missing users into session $nbr_users = 0; @@ -517,7 +517,7 @@ class SessionManager { // get list of users subscribed to this session $sql="SELECT id_user FROM $tbl_session_rel_user - WHERE id_session = $id_session"; + WHERE id_session = $id_session AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""; $result=Database::query($sql); $user_list=Database::store_result($result); diff --git a/main/inc/lib/tracking.lib.php b/main/inc/lib/tracking.lib.php index e663565ef6..81d8c220fd 100755 --- a/main/inc/lib/tracking.lib.php +++ b/main/inc/lib/tracking.lib.php @@ -525,7 +525,7 @@ class Tracking { $sql = "SELECT distinct srcru.id_user FROM $tbl_session_course_user AS srcru, $tbl_session_user sru - WHERE srcru.id_user = sru.id_user AND srcru.id_session = sru.id_session AND srcru.course_code='$course_code' AND srcru.id_session='$id_session'"; + WHERE srcru.id_user = sru.id_user AND sru.relation_type<>".SESSION_RELATION_TYPE_RRHH." AND srcru.id_session = sru.id_session AND srcru.course_code='$course_code' AND srcru.id_session='$id_session'"; $rs = Database::query($sql); diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index ec7734142d..e3bcfb2cee 100644 --- a/main/inc/lib/usermanager.lib.php +++ b/main/inc/lib/usermanager.lib.php @@ -1624,7 +1624,7 @@ class UserManager $sessions_sql = "SELECT DISTINCT id, session_category_id FROM $tbl_session_user, $tbl_session - WHERE id_session=id AND id_user=$user_id $condition_date_end + WHERE id_session=id AND id_user=$user_id AND relation_type<>".SESSION_RELATION_TYPE_RRHH." $condition_date_end ORDER BY session_category_id, date_start, date_end"; $result = Database::query($sessions_sql); @@ -1736,7 +1736,7 @@ class UserManager // get the list of sessions where the user is subscribed as student $sessions_sql = "SELECT DISTINCT id, name, date_start, date_end FROM $tbl_session_user, $tbl_session - WHERE id_session=id AND id_user=$user_id + WHERE id_session=id AND id_user=$user_id AND relation_type<>".SESSION_RELATION_TYPE_RRHH." AND (date_start <= CURDATE() AND date_end >= CURDATE() OR date_start='0000-00-00') ORDER BY date_start, date_end, name"; $result = Database::query($sessions_sql); @@ -1747,7 +1747,7 @@ class UserManager // get the list of sessions where the user is subscribed as student where visibility = SESSION_VISIBLE_READ_ONLY = 1 SESSION_VISIBLE = 2 $sessions_out_date_sql = "SELECT DISTINCT id, name, date_start, date_end FROM $tbl_session_user, $tbl_session - WHERE id_session=id AND id_user=$user_id + WHERE id_session=id AND id_user=$user_id AND relation_type<>".SESSION_RELATION_TYPE_RRHH." AND (date_end <= CURDATE() AND date_end<>'0000-00-00') AND (visibility = ".SESSION_VISIBLE_READ_ONLY." || visibility = ".SESSION_VISIBLE.") ORDER BY date_start, date_end, name"; $result_out_date = Database::query($sessions_out_date_sql); diff --git a/main/user/user.php b/main/user/user.php index a1abf6e098..84455b7a4d 100755 --- a/main/user/user.php +++ b/main/user/user.php @@ -153,7 +153,7 @@ if (api_is_allowed_to_edit()) { $sql = 'SELECT '.$tbl_user.'.user_id FROM '.$tbl_user.' user INNER JOIN '.$tbl_session_rel_user.' reluser - ON user.user_id = reluser.id_user + ON user.user_id = reluser.id_user AND reluser.relation_type<>'.SESSION_RELATION_TYPE_RRHH.' INNER JOIN '.$tbl_session_rel_course.' rel_course ON rel_course.id_session = reluser.id_session WHERE user.user_id = "'.$user_id.'" diff --git a/main/webservices/registration.soap.php b/main/webservices/registration.soap.php index 9f9734fc51..ed5d682af1 100755 --- a/main/webservices/registration.soap.php +++ b/main/webservices/registration.soap.php @@ -4095,7 +4095,7 @@ function DokeosWSSuscribeUsersToSession($params){ continue; } - $sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session'"; + $sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""; $result = Database::query($sql); $existingUsers = array(); while($row = Database::fetch_array($result)){ @@ -4311,7 +4311,7 @@ function DokeosWSUnsuscribeUsersFromSession($params) { continue; } - $sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session'"; + $sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""; $result = Database::query($sql); $existingUsers = array(); while($row = Database::fetch_array($result)){ @@ -4352,7 +4352,7 @@ function DokeosWSUnsuscribeUsersFromSession($params) { foreach ($usersList as $enreg_user) { $enreg_user = Database::escape_string($enreg_user); - $delete_sql = "DELETE FROM $tbl_session_rel_user WHERE id_session = '$id_session' AND id_user ='$enreg_user'"; + $delete_sql = "DELETE FROM $tbl_session_rel_user WHERE id_session = '$id_session' AND id_user ='$enreg_user' AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""; Database::query($delete_sql); $return = Database::affected_rows(); } @@ -4558,7 +4558,7 @@ function DokeosWSSuscribeCoursesToSession($params) { // get list of users subscribed to this session $sql="SELECT id_user FROM $tbl_session_rel_user - WHERE id_session = '$id_session'"; + WHERE id_session = '$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH.""; $result=Database::query($sql); $user_list=Database::store_result($result);