diff --git a/whoisonlinesession.php b/whoisonlinesession.php index 259e85abf1..d6c4b68b11 100755 --- a/whoisonlinesession.php +++ b/whoisonlinesession.php @@ -15,8 +15,16 @@ if (empty($userId)) { api_not_allowed(true); } -$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); -$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); +$sessionId = api_get_session_id(); +$courseId = api_get_course_int_id(); + +$allow = api_is_platform_admin(true) || + api_is_coach($sessionId, $courseId, false) || + SessionManager::get_user_status_in_course_session(api_get_user_id(), $courseId, $sessionId) == 2; + +if (!$allow) { + api_not_allowed(true); +} /** * Header @@ -46,35 +54,6 @@ Display::display_header(get_lang('UserOnlineListSession')); = '$current_date' - $urlCondition - GROUP BY login_user_id"; - $result = Database::query($sql); - while ($user_list = Database::fetch_array($result)) { - $students_online[$user_list['login_user_id']] = $user_list; - } +$sql = "SELECT DISTINCT last_access.login_user_id, + last_access.login_date, + last_access.c_id, + last_access.session_id, + ".(api_is_western_name_order() ? "CONCAT(user.firstname,' ',user.lastname)" : "CONCAT(user.lastname,' ',user.firstname)")." as name, + user.email + FROM ".Database::get_main_table(TABLE_STATISTIC_TRACK_E_ONLINE)." AS last_access + INNER JOIN ".Database::get_main_table(TABLE_MAIN_USER)." AS user + ON user.id = last_access.login_user_id + $urlJoin + WHERE + session_id ='".$sessionId."' AND + login_date >= '$current_date' + $urlCondition + GROUP BY login_user_id"; + +$result = Database::query($sql); +while ($user_list = Database::fetch_array($result)) { + $students_online[$user_list['login_user_id']] = $user_list; } if (count($students_online) > 0) {