cfasanando před 15 roky
rodič
revize
9fca61be94
46 změnil soubory, kde provedl 128 přidání a 121 odebrání
  1. 1 0
      index.php
  2. 1 1
      main/admin/add_courses_to_session.php
  3. 1 1
      main/admin/add_users_to_session.php
  4. 2 2
      main/admin/course_edit.php
  5. 1 1
      main/admin/course_information.php
  6. 1 1
      main/admin/course_user_import.php
  7. 1 2
      main/admin/dashboard_add_users_to_user.php
  8. 1 1
      main/admin/ldap_synchro.php
  9. 3 3
      main/admin/resume_session.php
  10. 2 2
      main/admin/session_export.php
  11. 2 2
      main/admin/statistics/statistics.lib.php
  12. 1 1
      main/admin/user_export.php
  13. 1 1
      main/admin/user_information.php
  14. 1 1
      main/announcements/announcements.php
  15. 9 7
      main/auth/courses.php
  16. 1 1
      main/auth/ldap/authldap.php
  17. 1 1
      main/auth/my_progress.php
  18. 1 1
      main/chat/chat_whoisonline.php
  19. 1 1
      main/dropbox/dropbox_submit.php
  20. 2 2
      main/exercice/exercice.php
  21. 2 2
      main/exercice/exercise_result.class.php
  22. 3 0
      main/forum/forumfunction.inc.php
  23. 1 1
      main/gradebook/lib/be/result.class.php
  24. 1 1
      main/gradebook/lib/gradebook_functions_users.inc.php
  25. 1 1
      main/inc/ajax/message.ajax.php
  26. 12 12
      main/inc/lib/course.lib.php
  27. 11 5
      main/inc/lib/main_api.lib.php
  28. 2 2
      main/inc/lib/online.inc.php
  29. 0 5
      main/inc/lib/sessionmanager.lib.php
  30. 2 2
      main/inc/lib/social.lib.php
  31. 2 2
      main/inc/lib/tracking.lib.php
  32. 8 8
      main/inc/lib/usermanager.lib.php
  33. 5 2
      main/inc/local.inc.php
  34. 2 2
      main/mySpace/index.php
  35. 2 2
      main/mySpace/myStudents.php
  36. 1 1
      main/online/online_master.php
  37. 1 1
      main/online/online_whoisonline.php
  38. 1 1
      main/tracking/courseLog.php
  39. 4 4
      main/tracking/courseLogCSV.php
  40. 1 1
      main/tracking/logins_details.php
  41. 2 2
      main/tracking/userLog.php
  42. 2 2
      main/tracking/userlogCSV.php
  43. 23 27
      main/user/subscribe_user.php
  44. 1 1
      main/user/user.php
  45. 1 1
      main/user/userInfoLib.php
  46. 3 1
      user_portal.php

+ 1 - 0
index.php

@@ -855,6 +855,7 @@ function get_courses_of_user($user_id) {
 										$table_course_user  course_rel_user
 								WHERE course.code = course_rel_user.course_code
 								AND   course_rel_user.user_id = '".$user_id."'
+								AND course_rel_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 								ORDER BY course_rel_user.sort ASC";
 	$result = Database::query($sql_select_courses);
 	while ($row = Database::fetch_array($result)) {

+ 1 - 1
main/admin/add_courses_to_session.php

@@ -121,7 +121,7 @@ if ($_POST['formSent']) {
 
 	$sql="SELECT id_user
 		FROM $tbl_session_rel_user
-		WHERE id_session = $id_session";
+		WHERE id_session = $id_session AND relation_type=".COURSE_RELATION_TYPE_RRHH." ";
 	$result=Database::query($sql);
 	$UserList=Database::store_result($result);
 

+ 1 - 1
main/admin/add_users_to_session.php

@@ -92,7 +92,7 @@ function search_users($needle,$type)
 		if (!empty($id_session)) {
 		$id_session = Database::escape_string($id_session);
 			// check id_user from session_rel_user table
-			$sql = 'SELECT id_user FROM '.$tbl_session_rel_user.' WHERE id_session ="'.(int)$id_session.'"';
+			$sql = 'SELECT id_user FROM '.$tbl_session_rel_user.' WHERE id_session ="'.(int)$id_session.'" AND relation_type<>'.SESSION_RELATION_TYPE_RRHH.' ';
 			$res = Database::query($sql);
 			$user_ids = array();
 			if (Database::num_rows($res) > 0) {

+ 2 - 2
main/admin/course_edit.php

@@ -279,11 +279,11 @@ if( $form->validate())
 		foreach($teachers as $key){
 
 			//We check if the teacher is already subscribed in this course
-			$sql_select_teacher = 'SELECT 1 FROM '.$course_user_table.' WHERE user_id = "'.$key.'" AND course_code = "'.$course_code.'"';
+			$sql_select_teacher = 'SELECT 1 FROM '.$course_user_table.' WHERE user_id = "'.$key.'" AND course_code = "'.$course_code.'" ';
 			$result = Database::query($sql_select_teacher);
 
 			if(Database::num_rows($result) == 1){
-				$sql = 'UPDATE '.$course_user_table.' SET status = "1" WHERE course_code = "'.$course_code.'" AND user_id = "'.$key.'"';
+				$sql = 'UPDATE '.$course_user_table.' SET status = "1" WHERE course_code = "'.$course_code.'" AND user_id = "'.$key.'"  ';
 			}
 			else{
 				$sql = "INSERT INTO ".$course_user_table . " SET

+ 1 - 1
main/admin/course_information.php

@@ -105,7 +105,7 @@ echo '<h4>'.get_lang('Users').'</h4>';
 echo '<blockquote>';
 $table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
 $table_user = Database :: get_main_table(TABLE_MAIN_USER);
-$sql = "SELECT *,cu.status as course_status FROM $table_course_user cu, $table_user u WHERE cu.user_id = u.user_id AND cu.course_code = '".$code."'";
+$sql = "SELECT *,cu.status as course_status FROM $table_course_user cu, $table_user u WHERE cu.user_id = u.user_id AND cu.course_code = '".$code."' AND cu.relation_type <> ".COURSE_RELATION_TYPE_RRHH." ";
 $res = Database::query($sql);
 $is_western_name_order = api_is_western_name_order();
 if (Database::num_rows($res) > 0)

+ 1 - 1
main/admin/course_user_import.php

@@ -75,7 +75,7 @@ function save_data($users_courses) {
 		$res = Database::query($sql);
 		$obj = Database::fetch_object($res);
 		$user_id = $obj->user_id;
-		$sql = "SELECT * FROM $course_user_table cu WHERE cu.user_id = $user_id";
+		$sql = "SELECT * FROM $course_user_table cu WHERE cu.user_id = $user_id AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
 		$res = Database::query($sql);
 		$db_subscriptions = array();
 		while($obj = Database::fetch_object($res)) {

+ 1 - 2
main/admin/dashboard_add_users_to_user.php

@@ -34,7 +34,6 @@ $interbreadcrumb[] = array('url' => 'user_list.php','name' => get_lang('UserList
 
 // Database Table Definitions
 $tbl_user 			= 	Database::get_main_table(TABLE_MAIN_USER);
-$tbl_user_rel_user 	= 	Database::get_main_table(TABLE_MAIN_USER_REL_USER);
 
 // setting the name of the tool
 $tool_name= get_lang('AssignUsersToHumanResourcesManager');
@@ -56,7 +55,7 @@ if (!api_is_platform_admin()) {
 }
 
 function search_users($needle,$type) {
-	global $tbl_user, $tbl_user_rel_user, $user_anonymous, $current_user_id, $hrm_id;
+	global $tbl_user, $user_anonymous, $current_user_id, $hrm_id;
 
 	$xajax_response = new XajaxResponse();
 	$return = '';

+ 1 - 1
main/admin/ldap_synchro.php

@@ -181,7 +181,7 @@ foreach($Sessions as $session){
 		}
 		$sql = "SELECT COUNT(id_user) as nbUsers " .
 				"FROM $tbl_session_rel_user " .
-				"WHERE id_session='$id_session'";
+				"WHERE id_session='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."";
 		$rs = Database::query($sql);
 		list($nbr_users) = Database::fetch_array($rs);
 		$sql = "UPDATE $tbl_session SET nbr_users=$nbr_users WHERE id='$id_session'";

+ 3 - 3
main/admin/resume_session.php

@@ -94,7 +94,7 @@ if($_GET['action'] == 'delete')
 	}
 
 	if (!empty($_GET['user'])) {
-		Database::query("DELETE FROM $tbl_session_rel_user WHERE id_session='$id_session' AND id_user=".intval($_GET['user']));
+		Database::query("DELETE FROM $tbl_session_rel_user WHERE relation_type<>".SESSION_RELATION_TYPE_RRHH." AND id_session='$id_session' AND id_user=".intval($_GET['user']));
 		$nbr_affected_rows=Database::affected_rows();
 		Database::query("UPDATE $tbl_session SET nbr_users=nbr_users-$nbr_affected_rows WHERE id='$id_session'");
 
@@ -215,7 +215,7 @@ else {
 
 		$sql = " SELECT count(*) FROM $tbl_session_rel_user sru, $tbl_session_rel_course_rel_user srcru
 				WHERE srcru.id_user = sru.id_user AND srcru.id_session = sru.id_session AND srcru.course_code = '".Database::escape_string($course['code'])."'
-				AND srcru.id_session = '".intval($id_session)."'";
+				AND sru.relation_type<>".SESSION_RELATION_TYPE_RRHH." AND srcru.id_session = '".intval($id_session)."'";
 
 		$rs = Database::query($sql);
 		$course['nbr_users'] = Database::result($rs,0,0);
@@ -284,7 +284,7 @@ else {
 	$sql = 'SELECT '.$tbl_user.'.user_id, lastname, firstname, username
 			FROM '.$tbl_user.'
 			INNER JOIN '.$tbl_session_rel_user.'
-				ON '.$tbl_user.'.user_id = '.$tbl_session_rel_user.'.id_user
+				ON '.$tbl_user.'.user_id = '.$tbl_session_rel_user.'.id_user AND '.$tbl_session_rel_user.'.relation_type<>'.SESSION_RELATION_TYPE_RRHH.'
 				AND '.$tbl_session_rel_user.'.id_session = '.$id_session.$order_clause;
 
 	$result=Database::query($sql);

+ 2 - 2
main/admin/session_export.php

@@ -158,7 +158,7 @@ if ($_POST['formSent'] )
 			//users
 			$sql = "SELECT DISTINCT $tbl_user.username FROM $tbl_user
 					INNER JOIN $tbl_session_user
-						ON $tbl_user.user_id = $tbl_session_user.id_user
+						ON $tbl_user.user_id = $tbl_session_user.id_user AND $tbl_session_user.relation_type<>".SESSION_RELATION_TYPE_RRHH."
 						AND $tbl_session_user.id_session = '".$row['id']."'";
 
 			$rsUsers = Database::query($sql);
@@ -219,7 +219,7 @@ if ($_POST['formSent'] )
 				// rel user courses
 				$sql = "SELECT DISTINCT u.username
 						FROM $tbl_session_course_user scu
-						INNER JOIN $tbl_session_user su ON scu.id_user = su.id_user AND scu.id_session = su.id_session
+						INNER JOIN $tbl_session_user su ON scu.id_user = su.id_user AND scu.id_session = su.id_session AND su.relation_type<>".SESSION_RELATION_TYPE_RRHH."
 						INNER JOIN $tbl_user u
 						ON scu.id_user = u.user_id
 						AND scu.course_code='".$rowCourses['code']."'

+ 2 - 2
main/admin/statistics/statistics.lib.php

@@ -55,7 +55,7 @@ class Statistics
 		$sql = "SELECT COUNT(DISTINCT(user_id)) AS number FROM $user_table WHERE status = ".intval(Database::escape_string($status))." ";
 		if (isset ($category_code))
 		{
-			$sql = "SELECT COUNT(DISTINCT(cu.user_id)) AS number FROM $course_user_table cu, $course_table c WHERE cu.status = ".intval(Database::escape_string($status))." AND c.code = cu.course_code AND c.category_code = '".Database::escape_string($category_code)."'";
+			$sql = "SELECT COUNT(DISTINCT(cu.user_id)) AS number FROM $course_user_table cu, $course_table c WHERE cu.status = ".intval(Database::escape_string($status))." AND c.code = cu.course_code AND c.category_code = '".Database::escape_string($category_code)."'  ";
 		}
 		$res = Database::query($sql);
 		$obj = Database::fetch_object($res);
@@ -470,7 +470,7 @@ class Statistics
 		$user_friend_table = Database::get_main_table(TABLE_MAIN_USER_REL_USER);
 		$user_table = Database::get_main_table(TABLE_MAIN_USER);
 		$sql = "SELECT lastname, firstname, username, COUNT(friend_user_id) AS count_friend
-					FROM ".$user_friend_table." uf LEFT JOIN ".$user_table." u ON uf.user_id = u.user_id
+					FROM ".$user_friend_table." uf LEFT JOIN ".$user_table." u ON uf.user_id = u.user_id WHERE uf.relation_type <> '".USER_RELATION_TYPE_RRHH."'
 				GROUP BY uf.user_id";
 		$res = Database::query($sql);
 		$list_friends = array();

+ 1 - 1
main/admin/user_export.php

@@ -100,7 +100,7 @@ if ($form->validate())
 					u.official_code	AS OfficialCode,
 					u.phone		AS Phone";
 	if (strlen($course_code) > 0) {
-		$sql .= " FROM $user_table u, $course_user_table cu WHERE u.user_id = cu.user_id AND course_code = '$course_code' ORDER BY lastname,firstname";
+		$sql .= " FROM $user_table u, $course_user_table cu WHERE u.user_id = cu.user_id AND course_code = '$course_code' AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." ORDER BY lastname,firstname";
 		$filename = 'export_users_'.$course_code.'_'.date('Y-m-d_H-i-s');
 	} else {
 		global $_configuration;

+ 1 - 1
main/admin/user_information.php

@@ -213,7 +213,7 @@ echo '</blockquote>';
 /**
  * Show the courses in which this user is subscribed
  */
-$sql = 'SELECT * FROM '.$table_course_user.' cu, '.$table_course.' c WHERE cu.user_id = '.$user['user_id'].' AND cu.course_code = c.code';
+$sql = 'SELECT * FROM '.$table_course_user.' cu, '.$table_course.' c WHERE cu.user_id = '.$user['user_id'].' AND cu.course_code = c.code AND cu.relation_type <> '.COURSE_RELATION_TYPE_RRHH.' ';
 $res = Database::query($sql);
 if (Database::num_rows($res) > 0)
 {

+ 1 - 1
main/announcements/announcements.php

@@ -663,7 +663,7 @@ if (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_ed
 				    		$sqlmail = "SELECT user.user_id, user.email, user.lastname, user.firstname
 					                     FROM $tbl_course_user, $tbl_user
 					                     WHERE course_code='".Database::escape_string($_course['sysCode'])."'
-					                     AND course_rel_user.user_id = user.user_id";
+					                     AND course_rel_user.user_id = user.user_id AND relation_type <>".COURSE_RELATION_TYPE_RRHH." ";
 			    		} else {
 			    			$sqlmail = "SELECT user.user_id, user.email, user.lastname, user.firstname
 					                     FROM $tbl_user

+ 9 - 7
main/auth/courses.php

@@ -284,7 +284,7 @@ function remove_user_from_course($user_id, $course_code) {
 	// we check (once again) if the user is not course administrator
 	// because the course administrator cannot unsubscribe himself
 	// (s)he can only delete the course
-	$sql_check = "SELECT * FROM $tbl_course_user WHERE user_id='".$user_id."' AND course_code='".$course_code."' AND status='1'";
+	$sql_check = "SELECT * FROM $tbl_course_user WHERE user_id='".$user_id."' AND course_code='".$course_code."' AND status='1' ";
 	$result_check = Database::query($sql_check);
 	$number_of_rows = Database::num_rows($result_check);
 	if ($number_of_rows > 0) {
@@ -586,7 +586,7 @@ function delete_course_category($id) {
 	$TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER);
 	$id = intval($id);
 	$sql_delete = "DELETE FROM $tucc WHERE id='".$id."' and user_id='".$_user['user_id']."'";
-	$sql_update = "UPDATE $TABLECOURSUSER SET user_course_cat='0' WHERE user_course_cat='".$id."' AND user_id='".$_user['user_id']."'";
+	$sql_update = "UPDATE $TABLECOURSUSER SET user_course_cat='0' WHERE user_course_cat='".$id."' AND user_id='".$_user['user_id']."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
 	Database::query($sql_delete);
 	Database::query($sql_update);
 	return get_lang('CourseCategoryDeleted');
@@ -668,7 +668,7 @@ function store_changecoursecategory($course_code, $newcategory) {
 	$TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER);
 
 	$max_sort_value = api_max_sort_value($newcategory, $_user['user_id']); // max_sort_value($newcategory);
-	$sql = "UPDATE $TABLECOURSUSER SET user_course_cat='".$newcategory."', sort='".($max_sort_value + 1)."' WHERE course_code='".$course_code."' AND user_id='".$_user['user_id']."'";
+	$sql = "UPDATE $TABLECOURSUSER SET user_course_cat='".$newcategory."', sort='".($max_sort_value + 1)."' WHERE course_code='".$course_code."' AND user_id='".$_user['user_id']."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
 	$result = Database::query($sql);
 	return get_lang('EditCourseCategorySucces');
 }
@@ -708,8 +708,8 @@ function move_course($direction, $course2move, $category) {
 	}
 
 	if (count($target_course) > 0 && count($source_course) > 0) {
-		$sql_update1 = "UPDATE $TABLECOURSUSER SET sort='".$target_course['sort']."' WHERE course_code='".$source_course['code']."' AND user_id='".$_user['user_id']."'";
-		$sql_update2 = "UPDATE $TABLECOURSUSER SET sort='".$source_course['sort']."' WHERE course_code='".$target_course['code']."' AND user_id='".$_user['user_id']."'";
+		$sql_update1 = "UPDATE $TABLECOURSUSER SET sort='".$target_course['sort']."' WHERE course_code='".$source_course['code']."' AND user_id='".$_user['user_id']."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
+		$sql_update2 = "UPDATE $TABLECOURSUSER SET sort='".$source_course['sort']."' WHERE course_code='".$target_course['code']."' AND user_id='".$_user['user_id']."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
 		Database::query($sql_update2);
 		Database::query($sql_update1);
 		return get_lang('CourseSortingDone');
@@ -844,8 +844,9 @@ function display_courses_in_category($user_category_id, $showicons) {
 		                        FROM    $TABLECOURS       course,
 										$TABLECOURSUSER  course_rel_user
 		                        WHERE course.code = course_rel_user.course_code
-		                        AND   course_rel_user.user_id = '".$_user['user_id']."'
-		                        AND course_rel_user.user_course_cat='".$user_category_id."' $without_special_courses
+		                        AND  course_rel_user.user_id = '".$_user['user_id']."'
+		                        AND  course_rel_user.relation_type <> ".COURSE_RELATION_TYPE_RRHH."
+		                        AND  course_rel_user.user_course_cat='".$user_category_id."' $without_special_courses
 		                        ORDER BY course_rel_user.user_course_cat, course_rel_user.sort ASC";
 	$result = Database::query($sql_select_courses);
 	$number_of_courses = Database::num_rows($result);
@@ -1132,6 +1133,7 @@ function get_courses_of_user($user_id) {
 		                        FROM    $TABLECOURS       course,
 										$TABLECOURSUSER  course_rel_user
 		                        WHERE course.code = course_rel_user.course_code
+		                        AND   course_rel_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 		                        AND   course_rel_user.user_id = '".$user_id."' $without_special_courses
 		                        ORDER BY course_rel_user.sort ASC";
 	$result = Database::query($sql_select_courses);

+ 1 - 1
main/auth/ldap/authldap.php

@@ -692,7 +692,7 @@ function ldap_add_user_to_session($UserList, $id_session)
 				"VALUES('$id_session','$enreg_user')");
 	}
 	// On mets a jour le nombre d'utilisateurs dans la session
-	$sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_user WHERE id_session='$id_session'";
+	$sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_user WHERE id_session='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH." ";
 	$rs = Database::query($sql);
 	list($nbr_users) = Database::fetch_array($rs);
 	Database::query("UPDATE $tbl_session SET nbr_users=$nbr_users WHERE id='$id_session'");

+ 1 - 1
main/auth/my_progress.php

@@ -34,7 +34,7 @@ $tbl_course_lp_item 		= Database :: get_course_table(TABLE_LP_ITEM);
 $tbl_course_quiz 			= Database :: get_course_table(TABLE_QUIZ_TEST);
 
 // get course list
-$sql = 'SELECT course_code FROM '.$tbl_course_user.' WHERE user_id='.intval($_user['user_id']);
+$sql = 'SELECT course_code FROM '.$tbl_course_user.' WHERE user_id='.intval($_user['user_id']).' AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' ';
 $rs = Database::query($sql);
 $courses = array();
 while($row = Database :: fetch_array($rs)) {

+ 1 - 1
main/chat/chat_whoisonline.php

@@ -73,7 +73,7 @@ if (!empty($course))
 
 	if(empty($session_id))
 	{
-		$query="SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri,t3.status FROM $tbl_user t1,$tbl_chat_connected t2,$tbl_course_user t3 WHERE t1.user_id=t2.user_id AND t3.user_id=t2.user_id AND t3.course_code = '".$_course['sysCode']."' AND t2.last_connection>'".$date_inter."' $extra_condition ORDER BY username";
+		$query="SELECT DISTINCT t1.user_id,username,firstname,lastname,picture_uri,t3.status FROM $tbl_user t1,$tbl_chat_connected t2,$tbl_course_user t3 WHERE t1.user_id=t2.user_id AND t3.user_id=t2.user_id AND t3.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND t3.course_code = '".$_course['sysCode']."' AND t2.last_connection>'".$date_inter."' $extra_condition ORDER BY username";
 		$result=Database::query($query);
 		$Users=Database::store_result($result);
 	}

+ 1 - 1
main/dropbox/dropbox_submit.php

@@ -325,7 +325,7 @@ if ( isset( $_GET['mailingIndex']))  // examine or send
 		$sel = "SELECT u.user_id, u.lastname, u.firstname, cu.status
 				FROM `".$_configuration['main_database']."`.`user` u
 				LEFT JOIN $course_user cu
-				ON cu.user_id = u.user_id AND cu.course_code = '".$_course['sysCode']."'";
+				ON cu.user_id = u.user_id AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND cu.course_code = '".$_course['sysCode']."'";
 		$sel .= " WHERE u.".dropbox_cnf("mailingWhere".$var)." = '";
 
         function getUser($thisRecip)

+ 2 - 2
main/exercice/exercice.php

@@ -1150,7 +1150,7 @@ if ($_configuration['tracking_enabled'] && ($show == 'result')) {
 			$sql="SELECT ".(api_is_western_name_order() ? "CONCAT(firstname,' ',lastname)" : "CONCAT(lastname,' ',firstname)")." as users, ce.title, te.exe_result ,
 								 te.exe_weighting, UNIX_TIMESTAMP(te.exe_date), te.exe_id, email, UNIX_TIMESTAMP(te.start_date), steps_counter,cuser.user_id,te.exe_duration
 						  FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te, $TBL_USER AS user,$tbl_course_rel_user AS cuser
-						  WHERE  user.user_id=cuser.user_id AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($_cid) . "'
+						  WHERE  user.user_id=cuser.user_id AND cuser.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($_cid) . "'
 						  AND cuser.status<>1 $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
 						  AND cuser.course_code=te.exe_cours_id ORDER BY users, te.exe_cours_id ASC, ce.title ASC, te.exe_date DESC";
 
@@ -1168,7 +1168,7 @@ if ($_configuration['tracking_enabled'] && ($show == 'result')) {
 							 te.exe_weighting, UNIX_TIMESTAMP(te.exe_date), te.exe_id, email, UNIX_TIMESTAMP(te.start_date), steps_counter,cuser.user_id,te.exe_duration, ce.results_disabled
 						  FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te, $TBL_USER AS user,$tbl_course_rel_user AS cuser
 						  WHERE  user.user_id=cuser.user_id AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($_cid) . "'
-						  AND cuser.status<>1 $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
+						  AND cuser.status<>1 AND cuser.relation_type<>".COURSE_RELATION_TYPE_RRHH." $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
 						  AND cuser.course_code=te.exe_cours_id ORDER BY users, te.exe_cours_id ASC, ce.title ASC, te.exe_date DESC";
 
 		$hpsql = "SELECT '',exe_name, exe_result , exe_weighting, UNIX_TIMESTAMP(exe_date)

+ 2 - 2
main/exercice/exercise_result.class.php

@@ -132,7 +132,7 @@ class ExerciseResult
 			$sql="SELECT ".(api_is_western_name_order() ? "CONCAT(firstname,' ',lastname)" : "CONCAT(lastname,' ',firstname)").", ce.title, te.exe_result ,
 								 te.exe_weighting, UNIX_TIMESTAMP(te.exe_date), te.exe_id, user.email, user.user_id
 						  FROM $TBL_EXERCISES AS ce , $TBL_TRACK_EXERCISES AS te, $TBL_USER AS user,$TBL_COURSE_REL_USER AS cuser
-						  WHERE  user.user_id=cuser.user_id AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($cid) . "'
+						  WHERE  user.user_id=cuser.user_id AND cuser.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($cid) . "'
 						  AND cuser.status<>1 $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
 						  AND cuser.course_code=te.exe_cours_id ORDER BY te.exe_cours_id ASC, ce.title ASC, te.exe_date ASC";
 
@@ -150,7 +150,7 @@ class ExerciseResult
 					$sql="SELECT '', ce.title, te.exe_result ,
 								 te.exe_weighting, UNIX_TIMESTAMP(te.exe_date), te.exe_id
 							  FROM $TBL_EXERCISES AS ce , $TBL_TRACK_EXERCISES AS te, $TBL_USER AS user,$TBL_COURSE_REL_USER AS cuser
-							  WHERE  user.user_id=cuser.user_id AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($cid) . "'
+							  WHERE  user.user_id=cuser.user_id AND cuser.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($cid) . "'
 							  AND cuser.status<>1 AND te.exe_user_id='".Database::escape_string($user_id)."' $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
 							  AND cuser.course_code=te.exe_cours_id ORDER BY te.exe_cours_id ASC, ce.title ASC, te.exe_date DESC";
 

+ 3 - 0
main/forum/forumfunction.inc.php

@@ -1555,6 +1555,7 @@ function get_thread_users_details($thread_id, $db_name = null) {
 			  FROM $t_posts , $t_users user, $t_course_user course_user
 			  WHERE poster_id = user.user_id
 			  AND user.user_id = course_user.user_id
+			  AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 			  AND thread_id = '".Database::escape_string($thread_id)."'
 			  AND course_user.status NOT IN('1')
 			  AND course_code = '".api_get_course_id()."'";
@@ -1587,6 +1588,7 @@ function get_thread_users_qualify($thread_id, $db_name = null) {
 						     post.poster_id = user.user_id
 						     AND post.poster_id = qualify.user_id
 						     AND user.user_id = course_user.user_id
+						     AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 						     AND qualify.thread_id = '".Database::escape_string($thread_id)."'
 						     AND course_user.status not in('1')
 						     AND course_code = '".api_get_course_id()."'
@@ -1626,6 +1628,7 @@ function get_thread_users_not_qualify($thread_id, $db_name = null) {
 			  WHERE post.poster_id = user.user_id
 			  AND user.user_id NOT IN (".$cad.")
 			  AND user.user_id = course_user.user_id
+			  AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 			  AND post.thread_id = '".Database::escape_string($thread_id)."'
 			  AND course_user.status not in('1')
 			  AND course_code = '".api_get_course_id()."'";

+ 1 - 1
main/gradebook/lib/be/result.class.php

@@ -109,7 +109,7 @@ class Result
 				if (api_get_session_id()) {
 					$sql_course_rel_user = 'SELECT course_code,id_user,status FROM '.$tbl_session_rel_course_user.' WHERE status=0 AND course_code="'.api_get_course_id().' AND id_session='.api_get_session_id().'"';
 				} else {
-					$sql_course_rel_user = 'SELECT course_code,user_id,status FROM '.$tbl_course_rel_course.' WHERE status="5" AND course_code="'.api_get_course_id().'"; ';
+					$sql_course_rel_user = 'SELECT course_code,user_id,status FROM '.$tbl_course_rel_course.' WHERE status="'.STUDENT.'" AND course_code="'.api_get_course_id().'"; ';
 				}
 
 				$res_course_rel_user=Database::query($sql_course_rel_user);

+ 1 - 1
main/gradebook/lib/gradebook_functions_users.inc.php

@@ -133,7 +133,7 @@ function find_students($mask= '') {
 	$sql .= ' OR user.firstname LIKE '."'%" . $mask . "%')";
 
 	if (!api_is_platform_admin()) {
-		$sql .= ' AND user.user_id = cru.user_id' . ' AND cru.course_code in' . ' (SELECT course_code' . ' FROM ' . $tbl_cru . ' WHERE user_id = ' . api_get_user_id() . ' AND status = ' . COURSEMANAGER . ')';
+		$sql .= ' AND user.user_id = cru.user_id AND cru.relation_type<>'.COURSE_RELATION_TYPE_RRHH.' ' . ' AND cru.course_code in' . ' (SELECT course_code' . ' FROM ' . $tbl_cru . ' WHERE user_id = ' . api_get_user_id() . ' AND status = ' . COURSEMANAGER . ')';
 	}
 	$sql .= ' ORDER BY lastname';
 	$result= Database::query($sql);

+ 1 - 1
main/inc/ajax/message.ajax.php

@@ -35,7 +35,7 @@ switch ($action) {
 				$sql = 'SELECT DISTINCT u.user_id as id, '.($is_western_name_order ? 'concat(u.firstname," ",u.lastname," ","( ",u.email," )")' : 'concat(u.lastname," ",u.firstname," ","( ",u.email," )")').' as name
 				FROM '.$tbl_my_user_friend.' uf ' .
 		 		'INNER JOIN '.$tbl_my_user.' AS u  ON uf.friend_user_id = u.user_id ' .
-		 		'WHERE u.status <> 6 AND relation_type<>6 AND friend_user_id<>'.(int)$user_id.' AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' like CONCAT("%","'.$search.'","%") ';
+		 		'WHERE u.status <> 6 AND relation_type NOT IN('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.') AND friend_user_id<>'.(int)$user_id.' AND '.($is_western_name_order ? 'concat(u.firstname, " ", u.lastname)' : 'concat(u.lastname, " ", u.firstname)').' like CONCAT("%","'.$search.'","%") ';
 			}
 
 		} elseif (api_get_setting('allow_social_tool')=='false' && api_get_setting('allow_message_tool')=='true') {

+ 12 - 12
main/inc/lib/course.lib.php

@@ -121,8 +121,7 @@ define('NOT_VISIBLE_SUBSCRIPTION_ALLOWED', 1);
 define('VISIBLE_SUBSCRIPTION_ALLOWED', 2);
 define('VISIBLE_NO_SUBSCRIPTION_ALLOWED', 3);
 
-// Relation type between courses
-define('COURSE_RELATION_TYPE_RRHH',	1);
+
 
 /*
 -----------------------------------------------------------
@@ -335,7 +334,7 @@ class CourseManager {
 		} else {
 
 			Database::query("DELETE FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
-					WHERE user_id IN (".$user_ids.") AND course_code = '".$course_code."'");
+					WHERE user_id IN (".$user_ids.") AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_code = '".$course_code."'");
 
 			// add event to system log
 			$time = time();
@@ -376,7 +375,7 @@ class CourseManager {
 		// Check whether the user has not been already subscribed to the course.
 		if (empty($_SESSION['id_session'])) {
 			if (Database::num_rows(@Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
-					WHERE user_id = '$user_id' AND course_code = '$course_code'")) > 0) {
+					WHERE user_id = '$user_id' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_code = '$course_code'")) > 0) {
 				return false; // The user has been already subscribed to the course.
 			}
 		}
@@ -465,7 +464,7 @@ class CourseManager {
 		}
 
 		// Check whether the user has already been subscribed to this course.
-		if (Database::num_rows(Database::query("SELECT * FROM ".$course_user_table." WHERE user_id = '$user_id' AND course_code = '$course_code'")) > 0) {
+		if (Database::num_rows(Database::query("SELECT * FROM ".$course_user_table." WHERE user_id = '$user_id' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_code = '$course_code'")) > 0) {
 			return false; // The user has been subscribed to the course.
 		}
 
@@ -616,7 +615,7 @@ class CourseManager {
 
 		//is the user registered in the real course?
 		$result = Database::fetch_array(Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
-				WHERE user_id = '$user_id' AND course_code = '$real_course_real_code'"));
+				WHERE user_id = '$user_id' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_code = '$real_course_real_code'"));
 		$user_is_registered_in_real_course = !empty($result);
 
 		//get a list of virtual courses linked to the current real course and to which the current user is subscribed
@@ -786,7 +785,7 @@ class CourseManager {
 		$course_code = Database::escape_string($course_code);
 
 		$result = Database::fetch_array(Database::query("SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
-				WHERE user_id = $user_id AND course_code = '$course_code'"));
+				WHERE user_id = $user_id AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_code = '$course_code'"));
 		if (!empty($result)) {
 			return true; // The user has been registered in this course.
 		}
@@ -854,7 +853,7 @@ class CourseManager {
 					FROM ".Database::get_main_table(TABLE_MAIN_COURSE)." course
 					LEFT JOIN ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." course_user
 					ON course.code = course_user.course_code
-					WHERE course_user.user_id = '$user_id' AND ( course.code = '$course_code' OR target_course_code = '$course_code')"));
+					WHERE course_user.user_id = '$user_id' AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND ( course.code = '$course_code' OR target_course_code = '$course_code')"));
 			return !empty($result);
 		}
 
@@ -935,7 +934,7 @@ class CourseManager {
 
 		if ($session_id == 0) {
 			$sql .= ' LEFT JOIN '.Database::get_main_table(TABLE_MAIN_COURSE_USER).' as course_rel_user
-						ON user.user_id = course_rel_user.user_id
+						ON user.user_id = course_rel_user.user_id AND course_rel_user.relation_type<>'.COURSE_RELATION_TYPE_RRHH.'
 						AND course_rel_user.course_code="'.$course_code.'"';
 			$where[] = ' course_rel_user.course_code IS NOT NULL ';
 		}
@@ -1127,7 +1126,7 @@ class CourseManager {
 				FROM ".Database::get_main_table(TABLE_MAIN_COURSE)." course
 				LEFT JOIN ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." course_user
 				ON course.code = course_user.course_code
-				WHERE course.target_course_code = '$real_course_code' AND course_user.user_id = '$user_id'");
+				WHERE course.target_course_code = '$real_course_code' AND course_user.user_id = '$user_id' AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." ");
 
 		while ($result = Database::fetch_array($sql_result)) {
 			$result_array[] = $result;
@@ -1552,6 +1551,7 @@ class CourseManager {
 		$result = Database::query('SELECT course.code as code, course.title as title, cu.sort as sort FROM '.$TABLECOURSUSER.' as cu, '.$TABLECOURSE.' as course
 				WHERE course.code = cu.course_code
 				AND user_id = "'.$user_id.'"
+				AND cu.relation_type<>'.COURSE_RELATION_TYPE_RRHH.'
 				AND user_course_cat=0 ORDER BY cu.sort');
 
 		$course_title_precedent = '';
@@ -1571,10 +1571,10 @@ class CourseManager {
 				$course_sort = $courses['sort'];
 
 				if ($counter == 0) {
-					$sql = 'UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND user_course_cat="0" AND sort > "'.$course_sort.'"';
+					$sql = 'UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' AND user_course_cat="0" AND sort > "'.$course_sort.'"';
 					$course_sort++;
 				} else {
-					$sql = 'UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND user_course_cat="0" AND sort >= "'.$course_sort.'"';
+					$sql = 'UPDATE '.$TABLECOURSUSER.' SET sort = sort+1 WHERE user_id= "'.$user_id.'" AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' AND user_course_cat="0" AND sort >= "'.$course_sort.'"';
 				}
 
 				Database::query($sql);

+ 11 - 5
main/inc/lib/main_api.lib.php

@@ -229,12 +229,16 @@ define('WEB_AJAX_PATH', 'WEB_AJAX_PATH');
 define('TO_WEB', 'TO_WEB');
 define('TO_SYS', 'TO_SYS');
 define('TO_REL', 'TO_REL');
+
 // Paths to regidtered specific resource files (scripts, players, etc.)
 define('FLASH_PLAYER_AUDIO', '{FLASH_PLAYER_AUDIO}');
 define('FLASH_PLAYER_VIDEO', '{FLASH_PLAYER_VIDEO}');
 define('SCRIPT_SWFOBJECT', '{SCRIPT_SWFOBJECT}');
 define('SCRIPT_ASCIIMATHML', '{SCRIPT_ASCIIMATHML}');
 
+// Relations type with Human resources manager
+define('COURSE_RELATION_TYPE_RRHH',	1);
+define('SESSION_RELATION_TYPE_RRHH', 1);
 
 /*
 ==============================================================================
@@ -772,7 +776,7 @@ function api_get_user_courses($userid, $fetch_session = true) {
 									FROM    $t_course       cc,
 											$t_course_user   cu
 									WHERE cc.code = cu.course_code
-									AND   cu.user_id = '".$userid."'";
+									AND   cu.user_id = '".$userid."' AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
 	$result = Database::query($sql_select_courses);
 	if ($result === false) { return array(); }
 	while ($row = Database::fetch_array($result)) {
@@ -2740,7 +2744,7 @@ function api_return_html_area($name, $content = '', $height = '', $width = '100%
  */
 function api_max_sort_value($user_course_category, $user_id) {
 	$tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
-	$sql_max = "SELECT max(sort) as max_sort FROM $tbl_course_user WHERE user_id='".$user_id."' AND user_course_cat='".$user_course_category."'";
+	$sql_max = "SELECT max(sort) as max_sort FROM $tbl_course_user WHERE user_id='".$user_id."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND user_course_cat='".$user_course_category."'";
 	$result_max = Database::query($sql_max);
 	if (Database::num_rows($result_max) == 1) {
 		$row_max = Database::fetch_array($result_max);
@@ -3705,7 +3709,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
 
 		$sql = "SELECT tutor_id, status
 				FROM $course_user_table
-				WHERE user_id  = '$userid'
+				WHERE user_id  = '$userid' AND relation_type<>".COURSE_RELATION_TYPE_RRHH."
 				AND   course_code = '$cid'
 				LIMIT 1";
 
@@ -3736,7 +3740,9 @@ function api_is_course_visible_for_user($userid = null, $cid = null) {
 				WHERE
 					user_id  = '$userid'
 				AND
-					course_code = '$cid'
+					relation_type <> '".COURSE_RELATION_TYPE_RRHH."'
+				AND
+					course_code = '$cid'				
 				LIMIT 1";
 
 		$result = Database::query($sql);
@@ -4133,7 +4139,7 @@ function api_is_valid_secret_key($original_key_secret, $security_key) {
  */
 function api_is_user_of_course($course_id, $user_id) {
 	$tbl_course_rel_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
-	$sql = 'SELECT user_id FROM '.$tbl_course_rel_user.' WHERE course_code="'.Database::escape_string($course_id).'" AND user_id="'.Database::escape_string($user_id).'"';
+	$sql = 'SELECT user_id FROM '.$tbl_course_rel_user.' WHERE course_code="'.Database::escape_string($course_id).'" AND user_id="'.Database::escape_string($user_id).'" AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' ';
 	$result = Database::query($sql);
 	return Database::num_rows($result) == 1;
 }

+ 2 - 2
main/inc/lib/online.inc.php

@@ -137,7 +137,7 @@ function WhoIsOnline($valid, $friends = false)
 		$query = "	SELECT distinct login_user_id,login_date
 					FROM $track_online_table
 					INNER JOIN $friend_user_table ON (friend_user_id = login_user_id)
-					WHERE DATE_ADD(login_date,INTERVAL $valid MINUTE) >= '".$current_date."' AND friend_user_id <> '".api_get_user_id()."'  AND relation_type=3 AND user_id = '".api_get_user_id()."' ";
+					WHERE DATE_ADD(login_date,INTERVAL $valid MINUTE) >= '".$current_date."' AND friend_user_id <> '".api_get_user_id()."'  AND relation_type='".USER_RELATION_TYPE_FRIEND."' AND user_id = '".api_get_user_id()."' ";
 	} else {
 		// all users online
 		$query = "SELECT login_user_id,login_date FROM ".$track_online_table ." WHERE DATE_ADD(login_date,INTERVAL $valid MINUTE) >= '".$current_date."'  ";
@@ -154,7 +154,7 @@ function WhoIsOnline($valid, $friends = false)
 							FROM $track_online_table
 							INNER JOIN $tbl_user_rel_access_url user_rel_url ON (user_rel_url.user_id = track.login_user_id)
 							INNER JOIN $friend_user_table ON (friend_user_id = login_user_id)
-							WHERE access_url_id =  $access_url_id AND DATE_ADD(login_date,INTERVAL $valid MINUTE) >= '".$current_date."' AND friend_user_id <> '".api_get_user_id()."' AND relation_type=3 AND user_id = '".api_get_user_id()."' ";
+							WHERE access_url_id =  $access_url_id AND DATE_ADD(login_date,INTERVAL $valid MINUTE) >= '".$current_date."' AND friend_user_id <> '".api_get_user_id()."' AND relation_type='".USER_RELATION_TYPE_FRIEND."' AND user_id = '".api_get_user_id()."' ";
 			} else {
 				// all users online
 				$query = "	SELECT login_user_id,login_date FROM ".$track_online_table ." track

+ 0 - 5
main/inc/lib/sessionmanager.lib.php

@@ -11,11 +11,6 @@
 /* LIBRARIES */
 require_once 'display.lib.php';
 
-/* CONSTANTS */
-
-// Relation type between sessions
-define('SESSION_RELATION_TYPE_RRHH',	1);
-
 /**
 ==============================================================================
 *	This class provides methods for sessions management.

+ 2 - 2
main/inc/lib/social.lib.php

@@ -71,7 +71,7 @@ class SocialManager extends UserManager {
 		$tbl_my_friend_relation_type = Database :: get_main_table(TABLE_MAIN_USER_FRIEND_RELATION_TYPE);
 		$tbl_my_friend = Database :: get_main_table(TABLE_MAIN_USER_REL_USER);
 		$sql= 'SELECT rt.id as id FROM '.$tbl_my_friend_relation_type.' rt ' .
-			  'WHERE rt.id=(SELECT uf.relation_type FROM '.$tbl_my_friend.' uf WHERE  user_id='.((int)$user_id).' AND friend_user_id='.((int)$user_friend).')';
+			  'WHERE rt.id=(SELECT uf.relation_type FROM '.$tbl_my_friend.' uf WHERE  user_id='.((int)$user_id).' AND friend_user_id='.((int)$user_friend).' AND uf.relation_type <> '.USER_RELATION_TYPE_RRHH.' )';
 		$res=Database::query($sql);
 		$row=Database::fetch_array($res,'ASSOC');
 		if (Database::num_rows($res)>0) {
@@ -95,7 +95,7 @@ class SocialManager extends UserManager {
 		$list_ids_friends=array();
 		$tbl_my_friend = Database :: get_main_table(TABLE_MAIN_USER_REL_USER);
 		$tbl_my_user = Database :: get_main_table(TABLE_MAIN_USER);
-		$sql='SELECT friend_user_id FROM '.$tbl_my_friend.' WHERE relation_type<>6 AND friend_user_id<>'.((int)$user_id).' AND user_id='.((int)$user_id);
+		$sql='SELECT friend_user_id FROM '.$tbl_my_friend.' WHERE relation_type NOT IN ('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.') AND friend_user_id<>'.((int)$user_id).' AND user_id='.((int)$user_id);
 		if (isset($id_group) && $id_group>0) {
 			$sql.=' AND relation_type='.$id_group;
 		}

+ 2 - 2
main/inc/lib/tracking.lib.php

@@ -193,7 +193,7 @@ class Tracking {
 
 		$sql = 'SELECT DISTINCT course_code
 						FROM ' . $tbl_course_rel_user . '
-						WHERE user_id = ' . $user_id;
+						WHERE user_id = ' . $user_id.' AND relation_type<>'.COURSE_RELATION_TYPE_RRHH;
 		$rs = Database::query($sql);
 		$nb_courses = Database::num_rows($rs);
 
@@ -1120,7 +1120,7 @@ class Tracking {
 		if ($since == 'never') {
 			$sql = 'SELECT course_user.user_id FROM '.$table_course_rel_user.' course_user
 						LEFT JOIN '. $tbl_track_login.' stats_login
-						ON course_user.user_id = stats_login.user_id'.
+						ON course_user.user_id = stats_login.user_id AND relation_type<>'.COURSE_RELATION_TYPE_RRHH.' '.
 						$inner.'
 					WHERE course_user.course_code = \''.Database::escape_string($course_code).'\'
 					AND stats_login.login_course_date IS NULL

+ 8 - 8
main/inc/lib/usermanager.lib.php

@@ -37,7 +37,7 @@ define('USER_RELATION_TYPE_FRIEND',		3);
 define('USER_RELATION_TYPE_GOODFRIEND',	4); // should be deprecated is useless
 define('USER_RELATION_TYPE_ENEMY',		5); // should be deprecated is useless
 define('USER_RELATION_TYPE_DELETED',	6);
-define('USER_RELATION_TYPE_RRHH',		7);
+define('USER_RELATION_TYPE_RRHH',		7); 
 
 class UserManager
 {
@@ -198,7 +198,7 @@ class UserManager
 		$table_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
 
 		// Unsubscribe the user from all groups in all his courses
-		$sql = "SELECT * FROM $table_course c, $table_course_user cu WHERE cu.user_id = '".$user_id."' AND c.code = cu.course_code";
+		$sql = "SELECT * FROM $table_course c, $table_course_user cu WHERE cu.user_id = '".$user_id."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND c.code = cu.course_code";
 		$res = Database::query($sql);
 		while ($course = Database::fetch_object($res)) {
 			$table_group = Database :: get_course_table(TABLE_GROUP_USER, $course->db_name);
@@ -1724,7 +1724,7 @@ class UserManager
 				LEFT JOIN ".$tbl_user_course_category." user_course_category
 					ON course_rel_user.user_course_cat = user_course_category.id
 				$join_access_url
-			WHERE  course_rel_user.user_id = '".$user_id."'  $where_access_url
+			WHERE  course_rel_user.user_id = '".$user_id."' AND course_rel_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."  $where_access_url
 										ORDER BY user_course_category.sort, course_rel_user.sort, course.title ASC";
 
 		$course_list_sql_result = api_sql_query($personal_course_list_sql);
@@ -2815,7 +2815,7 @@ class UserManager
 		$my_user_id = intval($my_user_id);
 		$relation_type = intval($relation_type);
 
-		$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE friend_user_id=' .$friend_id.' AND user_id='.$my_user_id;
+		$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE friend_user_id=' .$friend_id.' AND user_id='.$my_user_id.' AND relation_type <> '.USER_RELATION_TYPE_RRHH.' ';
 		$result = Database::query($sql);
 		$row = Database :: fetch_array($result, 'ASSOC');
 		$current_date=date('Y-m-d H:i:s');
@@ -2825,7 +2825,7 @@ class UserManager
 			Database::query($sql_i);
 			return true;
 		} else {
-			$sql = 'SELECT COUNT(*) as count, relation_type  FROM ' . $tbl_my_friend . ' WHERE friend_user_id=' . $friend_id . ' AND user_id='.$my_user_id;
+			$sql = 'SELECT COUNT(*) as count, relation_type  FROM ' . $tbl_my_friend . ' WHERE friend_user_id=' . $friend_id . ' AND user_id='.$my_user_id.' AND relation_type <> '.USER_RELATION_TYPE_RRHH.' ';
 			$result = Database::query($sql);
 			$row = Database :: fetch_array($result, 'ASSOC');
 			if ($row['count'] == 1) {
@@ -2866,14 +2866,14 @@ class UserManager
 			if ($with_status_condition != '') {
 				$extra_condition = ' AND relation_type = '.intval($with_status_condition);
 			}
-			$sql_delete_relationship1 = 'DELETE FROM ' . $tbl_my_friend .'  WHERE friend_user_id='.$friend_id.' '.$extra_condition;
-			$sql_delete_relationship2 = 'DELETE FROM ' . $tbl_my_friend . ' WHERE user_id=' . $friend_id.' '.$extra_condition;
+			$sql_delete_relationship1 = 'DELETE FROM ' . $tbl_my_friend .'  WHERE relation_type <> '.USER_RELATION_TYPE_RRHH.' AND friend_user_id='.$friend_id.' '.$extra_condition;
+			$sql_delete_relationship2 = 'DELETE FROM ' . $tbl_my_friend . ' WHERE relation_type <> '.USER_RELATION_TYPE_RRHH.' AND user_id=' . $friend_id.' '.$extra_condition;
 			Database::query($sql_delete_relationship1);
 			Database::query($sql_delete_relationship2);
 
 		} else {
 			$user_id = api_get_user_id();
-			$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE user_id=' . $user_id . ' AND relation_type <>'.USER_RELATION_TYPE_DELETED.' AND friend_user_id='.$friend_id;
+			$sql = 'SELECT COUNT(*) as count FROM ' . $tbl_my_friend . ' WHERE user_id=' . $user_id . ' AND relation_type NOT IN('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.') AND friend_user_id='.$friend_id;
 			$result = Database::query($sql);
 			$row = Database :: fetch_array($result, 'ASSOC');
 			if ($row['count'] == 1) {

+ 5 - 2
main/inc/local.inc.php

@@ -157,6 +157,9 @@ The course id is stored in $_cid session variable.
 		variables should be initialised here
 ==============================================================================
 */
+
+require_once (api_get_path(LIBRARY_PATH).'course.lib.php');
+
 // verified if exists the username and password in session current
 if (isset($_SESSION['info_current_user'][1]) && isset($_SESSION['info_current_user'][2])) {
 	require_once (api_get_path(LIBRARY_PATH).'usermanager.lib.php');
@@ -918,7 +921,7 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
 
 	    	$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
 	        $sql = "SELECT * FROM $course_user_table
-	               WHERE user_id  = '".$_user['user_id']."'
+	               WHERE user_id  = '".$_user['user_id']."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH."
 	               AND course_code = '$cidReq'";
 
 	        $result = Database::query($sql);
@@ -944,7 +947,7 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
 			$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
 
  			$sql = "SELECT * FROM ".$tbl_course_user."
-               WHERE user_id  = '".$_user['user_id']."'
+               WHERE user_id  = '".$_user['user_id']."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH."
                AND course_code = '$cidReq'";
 
 	        $result = Database::query($sql);

+ 2 - 2
main/mySpace/index.php

@@ -760,7 +760,7 @@ function export_tracking_user_overview() {
 	// the other lines (the data)
 	foreach ($user_data as $key => $user) {
 		// getting all the courses of the user
-		$sql = "SELECT * FROM $tbl_course_user WHERE user_id = '".Database::escape_string($user[4])."'";
+		$sql = "SELECT * FROM $tbl_course_user WHERE user_id = '".Database::escape_string($user[4])."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
 		$result = Database::query($sql);
 		while ($row = Database::fetch_row($result)) {
 			$csv_row = array();
@@ -955,7 +955,7 @@ function course_info_tracking_filter($user_id, $url_params, $row) {
 	$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
 
 	// getting all the courses of the user
-	$sql = "SELECT * FROM $tbl_course_user WHERE user_id = '".Database::escape_string($user_id)."'";
+	$sql = "SELECT * FROM $tbl_course_user WHERE user_id = '".Database::escape_string($user_id)."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
 	$result = Database::query($sql);
 	while ($row = Database::fetch_row($result)) {
 		$return .= '<tr>';

+ 2 - 2
main/mySpace/myStudents.php

@@ -169,7 +169,7 @@ Display :: display_header($nameTools);
 function is_teacher($course_code) {
 	global $_user;
 	$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
-	$sql = "SELECT 1 FROM $tbl_course_user WHERE user_id='" . $_user["user_id"] . "' AND course_code='" . Database :: escape_string($course_code) . "' AND status='1'";
+	$sql = "SELECT 1 FROM $tbl_course_user WHERE user_id='" . $_user["user_id"] . "' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_code='" . Database :: escape_string($course_code) . "' AND status='1'";
 	$result = Database::query($sql);
 	if (Database :: result($result) != 1) {
 		return true;
@@ -253,7 +253,7 @@ if (!empty ($_GET['student'])) {
 	}
 
 	$avg_student_progress = $avg_student_score = $nb_courses = 0;
-	$sql = 'SELECT course_code FROM ' . $tbl_course_user . ' WHERE user_id=' . Database :: escape_string($info_user['user_id']);
+	$sql = 'SELECT course_code FROM ' . $tbl_course_user . ' WHERE relation_type<>'.COURSE_RELATION_TYPE_RRHH.' AND user_id=' . Database :: escape_string($info_user['user_id']);
 	$rs = Database::query($sql);
 	$courses = array ();
 	while ($row = Database :: fetch_array($rs)) {

+ 1 - 1
main/online/online_master.php

@@ -44,7 +44,7 @@ $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
 $tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
 $tbl_online_link=Database::get_course_table(TABLE_ONLINE_LINK);
 
-$query="SELECT t1.user_id,username,picture_uri,t2.status FROM $tbl_user t1,$tbl_course_user t2 WHERE t1.user_id=t2.user_id AND course_code='$_cid' AND (t1.user_id='".$_user['user_id']."' OR t2.status='1')";
+$query="SELECT t1.user_id,username,picture_uri,t2.status FROM $tbl_user t1,$tbl_course_user t2 WHERE t1.user_id=t2.user_id AND t2.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_code='$_cid' AND (t1.user_id='".$_user['user_id']."' OR t2.status='1')";
 $result=Database::query($query);
 
 while($row=Database::fetch_array($result))

+ 1 - 1
main/online/online_whoisonline.php

@@ -59,7 +59,7 @@ if(!$isAllowed)
 
 $pictureURL=api_get_path(WEB_CODE_PATH).'upload/users/';
 
-$query="SELECT t1.user_id,t1.username,t1.firstname,t1.lastname,t1.picture_uri,t3.status FROM $tbl_user t1,$tbl_online_connected t2,$tbl_course_user t3 WHERE t1.user_id=t2.user_id AND t3.user_id=t1.user_id AND t3.course_code = '".$_course[sysCode]."'  AND t2.last_connection>'".date('Y-m-d H:i:s',time()-60*5)."' ORDER BY t1.username";
+$query="SELECT t1.user_id,t1.username,t1.firstname,t1.lastname,t1.picture_uri,t3.status FROM $tbl_user t1,$tbl_online_connected t2,$tbl_course_user t3 WHERE t1.user_id=t2.user_id AND t3.user_id=t1.user_id AND t3.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND t3.course_code = '".$_course[sysCode]."'  AND t2.last_connection>'".date('Y-m-d H:i:s',time()-60*5)."' ORDER BY t1.username";
 $result=Database::query($query);
 
 $Users=Database::store_result($result);

+ 1 - 1
main/tracking/courseLog.php

@@ -240,7 +240,7 @@ if ($_GET['studentlist'] == 'false') {
 	if (Database::num_rows($rs) > 0) {
 		// gets course actual administrators
 		$sql = "SELECT user.user_id FROM $table_user user, $TABLECOURSUSER course_user
-			WHERE course_user.user_id=user.user_id AND course_user.course_code='".api_get_course_id()."' AND course_user.status <> '1' ";
+			WHERE course_user.user_id=user.user_id AND course_user.course_code='".api_get_course_id()."' AND course_user.status <> '1' AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." ";
 		$res = Database::query($sql);
 
 		$student_ids = array();

+ 4 - 4
main/tracking/courseLogCSV.php

@@ -142,10 +142,10 @@ if($is_allowedToTrack && $_configuration['tracking_enabled'])
     	$tempView[6] = '0';
 
         //--------------------------------BEGIN users in this course
-        $sql = "SELECT $TABLECOURSUSER.`user_id`, $table_user.`lastname`, $table_user.`firstname`
+        $sql = "SELECT $TABLECOURSUSER.user_i, $table_user.lastname, $table_user.firstname
                     FROM $TABLECOURSUSER, $table_user
-                    WHERE $TABLECOURSUSER.course_code = '".$_cid."' AND $TABLECOURSUSER.`user_id` = $table_user.`user_id`
-                    ORDER BY $table_user.`lastname`";
+                    WHERE $TABLECOURSUSER.course_code = '".$_cid."' AND $TABLECOURSUSER.user_id = $table_user.user_id AND $TABLECOURSUSER.relation_type<>".COURSE_RELATION_TYPE_RRHH."
+                    ORDER BY $table_user.lastname";
         $results = getManyResults3Col($sql);
 
         //BUGFIX: get visual code instead of real course code. Scormpaths use the visual code... (should be fixed in future versions)
@@ -232,7 +232,7 @@ if($is_allowedToTrack && $_configuration['tracking_enabled'])
 
         $sql = "SELECT count(*)
                     FROM $TABLECOURSUSER
-                    WHERE course_code = '".$_cid."'";
+                    WHERE course_code = '".$_cid."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH."";
         $count = getOneResult($sql);
 
 		$title_line = get_lang('CountUsers')." ; ".$count."\n";

+ 1 - 1
main/tracking/logins_details.php

@@ -104,7 +104,7 @@ if( ( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse ) && $_configura
     {
         $sql = "SELECT `u`.`firstname`,`u`.`lastname`, `u`.`email`
                     FROM $TABLECOURSUSER cu , $TABLEUSER u
-                    WHERE `cu`.`user_id` = `u`.`user_id`
+                    WHERE `cu`.`user_id` = `u`.`user_id` AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH."
                         AND `cu`.`course_code` = '$_cid'
                         AND `u`.`user_id` = '$uInfo'";
     }

+ 2 - 2
main/tracking/userLog.php

@@ -201,7 +201,7 @@ if( ( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse ) && $_configura
 			if(api_get_setting('use_session_mode')) {
 				$sql = "SELECT count(user_id)
 						FROM $TABLECOURSUSER
-						WHERE course_code = '".Database::escape_string($_cid)."'";
+						WHERE course_code = '".Database::escape_string($_cid)."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH."";
 			} else {
 				$sql = "SELECT count(id_user)
 						FROM $tbl_session_course_user
@@ -251,7 +251,7 @@ if( ( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse ) && $_configura
 			// list of users in this course
 			$sql = "SELECT u.user_id, u.firstname,u.lastname
 						FROM $TABLECOURSUSER cu , $TABLEUSER u
-						WHERE cu.user_id = u.user_id
+						WHERE cu.user_id = u.user_id AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 							AND cu.course_code = '".Database::escape_string($_cid)."'
 						LIMIT $offset,$step";
 		}

+ 2 - 2
main/tracking/userlogCSV.php

@@ -190,7 +190,7 @@ if( ( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse ) && $_configura
 			if(api_get_setting('use_session_mode')) {
 				$sql = "SELECT count(user_id)
 							FROM $TABLECOURSUSER
-							WHERE `course_code` = '$_cid'";
+							WHERE `course_code` = '$_cid' AND relation_type<>".COURSE_RELATION_TYPE_RRHH."";
 			}
 			else {
 				$sql = "SELECT count(id_user)
@@ -242,7 +242,7 @@ if( ( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse ) && $_configura
 			// list of users in this course
 			$sql = "SELECT `u`.`user_id`, `u`.`firstname`,`u`.`lastname`
 						FROM $TABLECOURSUSER cu , $TABLEUSER u
-						WHERE `cu`.`user_id` = `u`.`user_id`
+						WHERE `cu`.`user_id` = `u`.`user_id` AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 							AND `cu`.`course_code` = '$_cid'
 						LIMIT $offset,$step";
 		}

+ 23 - 27
main/user/subscribe_user.php

@@ -223,8 +223,8 @@ function get_number_of_users() {
 		} else {
 			$sql = "SELECT 	u.user_id
 			FROM $user_table u
-			LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'
-			WHERE cu.user_id IS NULL";
+			LEFT JOIN $course_user_table cu on u.user_id = cu.user_id  and course_code='".$_SESSION['_course']['id']."'
+			WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
 
 			if ($_configuration['multiple_access_urls']==true) {
 				$url_access_id = api_get_current_access_url_id();
@@ -237,7 +237,7 @@ function get_number_of_users() {
 						LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'
 						INNER JOIN  $tbl_url_rel_user as url_rel_user
 						ON (url_rel_user.user_id = u.user_id)
-						WHERE cu.user_id IS NULL AND access_url_id= $url_access_id ";
+						WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
 				}
 			}
 		}
@@ -250,7 +250,7 @@ function get_number_of_users() {
 						u.user_id
 						FROM $user_table u
 						LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."' AND id_session ='".$_SESSION["id_session"]."'
-						WHERE cu.id_user IS NULL AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
+						WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
 				if ($_configuration['multiple_access_urls']==true) {
 					$url_access_id = api_get_current_access_url_id();
 					if ($url_access_id !=-1) {
@@ -261,7 +261,7 @@ function get_number_of_users() {
 							LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."' AND id_session ='".$_SESSION["id_session"]."'
 							INNER JOIN  $tbl_url_rel_user as url_rel_user
 							ON (url_rel_user.user_id = u.user_id)
-							WHERE cu.user_id IS NULL AND access_url_id= $url_access_id AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
+							WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
 					}
 				}
 
@@ -278,11 +278,11 @@ function get_number_of_users() {
 					$sql .=	"
 						LEFT JOIN $table_user_field_values field_values
 							ON field_values.user_id = u.user_id
-						WHERE cu.user_id IS NULL
+						WHERE cu.user_id IS NULL AND u.status<>".DRH."
 							AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
 							AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
 				} else	{
-					$sql .=	"WHERE cu.user_id IS NULL";
+					$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
 				}
 
 				if ($_configuration['multiple_access_urls']==true) {
@@ -296,7 +296,7 @@ function get_number_of_users() {
 							LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'
 							INNER JOIN  $tbl_url_rel_user as url_rel_user
 							ON (url_rel_user.user_id = u.user_id)
-							WHERE cu.user_id IS NULL AND access_url_id= $url_access_id ";
+							WHERE cu.user_id IS NULL AND access_url_id= $url_access_id AND u.status<>".DRH." ";
 					}
 				}
 
@@ -346,7 +346,7 @@ function get_number_of_users() {
  * Get the users to display on the current page.
  */
 function get_user_data($from, $number_of_items, $column, $direction) {
-	global $_course;
+	global $_course, $_configuration;;
 
 	// Database table definitions
 	$user_table = Database :: get_main_table(TABLE_MAIN_USER);
@@ -407,15 +407,13 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 					$sql .=	"
 						LEFT JOIN $table_user_field_values field_values
 							ON field_values.user_id = u.user_id
-						WHERE cu.user_id IS NULL
+						WHERE cu.user_id IS NULL AND u.status<>".DRH."
 							AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
 							AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
 				} else	{
-					$sql .=	"WHERE cu.user_id IS NULL";
+					$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
 				}
-				//showing only the courses of the current Dokeos access_url_id
-				global $_configuration;
-
+				
 				// adding a teacher NOT trough a session on a portal with multiple URLs
 				if ($_configuration['multiple_access_urls']==true) {
 					$url_access_id = api_get_current_access_url_id();
@@ -434,10 +432,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 						u.user_id   AS col6
 						FROM $user_table u
 						LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'
-						INNER JOIN  $tbl_url_rel_user as url_rel_user
-					ON (url_rel_user.user_id = u.user_id)
-					WHERE cu.user_id IS NULL AND access_url_id= $url_access_id ";
-
+						INNER JOIN  $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) ";
 
 					// applying the filter of the additional user profile fields
 					if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){
@@ -445,11 +440,11 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 						$sql .=	"
 							LEFT JOIN $table_user_field_values field_values
 								ON field_values.user_id = u.user_id
-							WHERE cu.user_id IS NULL
+							WHERE cu.user_id IS NULL AND u.status<>".DRH."
 								AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
 								AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
 					} else	{
-						$sql .=	"WHERE cu.user_id IS NULL AND access_url_id= $url_access_id ";
+						$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
 					}
 				}
 			}
@@ -477,13 +472,14 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 				$sql .=	"
 					LEFT JOIN $table_user_field_values field_values
 						ON field_values.user_id = u.user_id
-					WHERE cu.id_user IS NULL AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL)
+					WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL)
 						AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
 						AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
 			} else	{
-				$sql .=	"WHERE cu.id_user IS NULL AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
+				$sql .=	"WHERE cu.id_user IS NULL AND u.status<>".DRH." AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
 			}
 		} else {
+			
 		$sql = "SELECT
 					u.user_id AS col0,
 					u.official_code   AS col1,
@@ -504,11 +500,11 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 				$sql .=	"
 					LEFT JOIN $table_user_field_values field_values
 						ON field_values.user_id = u.user_id
-					WHERE cu.user_id IS NULL
+					WHERE cu.user_id IS NULL AND u.status<>".DRH."
 						AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
 						AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
 			} else	{
-				$sql .=	"WHERE cu.user_id IS NULL";
+				$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
 			}
 
 			//showing only the courses of the current Dokeos access_url_id
@@ -532,7 +528,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 					LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'
 					INNER JOIN  $tbl_url_rel_user as url_rel_user
 					ON (url_rel_user.user_id = u.user_id)
-					WHERE cu.user_id IS NULL AND access_url_id= $url_access_id ";
+					WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
 
 
 					// applying the filter of the additional user profile fields
@@ -541,11 +537,11 @@ function get_user_data($from, $number_of_items, $column, $direction) {
 						$sql .=	"
 							LEFT JOIN $table_user_field_values field_values
 								ON field_values.user_id = u.user_id
-							WHERE cu.user_id IS NULL
+							WHERE cu.user_id IS NULL AND u.status<>".DRH."
 								AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
 								AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
 					} else	{
-						$sql .=	"WHERE cu.user_id IS NULL AND access_url_id= $url_access_id ";
+						$sql .=	"WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id ";
 					}
 
 				}

+ 1 - 1
main/user/user.php

@@ -121,7 +121,7 @@ if (api_is_allowed_to_edit()) {
 					// users directly subscribed to the course
 					$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
 					$sql_query = "SELECT DISTINCT user.user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").", user.email, user.official_code
-						FROM $table_course_user as course_user, $table_users as user WHERE `course_code` = '$currentCourseID' AND course_user.user_id = user.user_id ".($sort_by_first_name ? "ORDER BY user.firstname, user.lastname" : "ORDER BY user.lastname, user.firstname");
+						FROM $table_course_user as course_user, $table_users as user WHERE `course_code` = '$currentCourseID' AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_user.user_id = user.user_id ".($sort_by_first_name ? "ORDER BY user.firstname, user.lastname" : "ORDER BY user.lastname, user.firstname");
 					$rs = Database::query($sql_query);
 					while ($user = Database::fetch_array($rs, 'ASSOC')) {
 						$data[] = $user;

+ 1 - 1
main/user/userInfoLib.php

@@ -476,7 +476,7 @@ function get_main_user_info($user_id, $courseCode)
 	                u.email, u.picture_uri picture, cu.role,
 	                cu.status status, cu.tutor_id
 	        FROM    $table_user u, $table_course_user cu
-	        WHERE   u.user_id = cu.user_id
+	        WHERE   u.user_id = cu.user_id AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 	        AND     u.user_id = '$user_id'
 	        AND     cu.course_code = '$courseCode'";
 

+ 3 - 1
user_portal.php

@@ -222,7 +222,8 @@ function get_personal_course_list($user_id) {
 										course_rel_user.user_course_cat user_course_cat
 										FROM    ".$main_course_table."       course,".$main_course_user_table."   course_rel_user
 										WHERE course.code = course_rel_user.course_code"."
-										AND   course_rel_user.user_id = '".$user_id."'
+										AND   course_rel_user.user_id = '".$user_id."' 
+										AND course_rel_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 										ORDER BY course_rel_user.user_course_cat, course_rel_user.sort ASC,i";
 
 	$course_list_sql_result = Database::query($personal_course_list_sql);
@@ -437,6 +438,7 @@ function display_courses_in_category($user_category_id) {
 										$TABLECOURSUSER  course_rel_user
 		                        WHERE course.code = course_rel_user.course_code
 		                        AND   course_rel_user.user_id = '".$_user['user_id']."'
+		                        AND course_rel_user.relation_type<>".COURSE_RELATION_TYPE_RRHH."
 		                        AND course_rel_user.user_course_cat='".$user_category_id."' $without_special_courses
 		                        ORDER BY course_rel_user.user_course_cat, course_rel_user.sort ASC";
 	$result = Database::query($sql_select_courses);