Browse Source

Added condition relation type with drh inside sessions sql querys - partial CT#540

Cristian Fasanando 15 years ago
parent
commit
0bbbe01823

+ 4 - 4
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']."'");
 

+ 3 - 3
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);
 

+ 1 - 1
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);
 

+ 3 - 3
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);

+ 1 - 1
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.'"

+ 4 - 4
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);