diff --git a/main/admin/user_information.php b/main/admin/user_information.php index 0f844c643a..103d09fcc3 100755 --- a/main/admin/user_information.php +++ b/main/admin/user_information.php @@ -318,7 +318,7 @@ if (count($sessions) > 0) { $csvContent[] = $headerList; foreach ($session_item['courses'] as $my_course) { $courseInfo = api_get_course_info_by_id($my_course['real_id']); - $sessionStatus = SessionManager::get_user_status_in_session( + $sessionStatus = SessionManager::get_user_status_in_course_session( $userId, $courseInfo['real_id'], $id_session diff --git a/main/course_info/legal.php b/main/course_info/legal.php index ebd0384ccc..8ab02ca623 100755 --- a/main/course_info/legal.php +++ b/main/course_info/legal.php @@ -120,7 +120,7 @@ if (empty($session_id)) { header('Location: '.$url); } - $userStatus = SessionManager::get_user_status_in_session($user_id, $course_info['real_id'], $session_id); + $userStatus = SessionManager::get_user_status_in_course_session($user_id, $course_info['real_id'], $session_id); if (isset($userStatus) || api_check_user_access_to_legal($course_info['visibility'])) { $user_accepted_legal = CourseManager::is_user_accepted_legal( diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index 3554866151..ccf69a8ca6 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -6,6 +6,7 @@ use \ExtraField as ExtraFieldModel; use Chamilo\CoreBundle\Entity\ExtraField; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\SequenceResource; +use Chamilo\CoreBundle\Entity\SessionRelUser; /** * Class SessionManager @@ -3947,32 +3948,23 @@ class SessionManager /** * Gets user status within a session + * * @param int $user_id - * @param int $courseId - * @param $session_id - * @return int - * @assert (null,null,null) === false + * @param int $session_id + * + * @return \Chamilo\CoreBundle\Entity\SessionRelUser */ - public static function get_user_status_in_session($user_id, $courseId, $session_id) + public static function get_user_status_in_session($user_id, $session_id) { - if (empty($user_id) or empty($courseId) or empty($session_id)) { - return false; - } - $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); - $tbl_user = Database::get_main_table(TABLE_MAIN_USER); - $sql = "SELECT session_rcru.status - FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user - WHERE session_rcru.user_id = user.user_id AND - session_rcru.session_id = '".intval($session_id)."' AND - session_rcru.c_id ='" . intval($courseId)."' AND - user.user_id = " . intval($user_id); - $result = Database::query($sql); - $status = false; - if (Database::num_rows($result)) { - $status = Database::fetch_row($result); - $status = $status['0']; - } - return $status; + $em = Database::getManager(); + $subscriptions = $em + ->getRepository('ChamiloCoreBundle:SessionRelUser') + ->findBy(['session' => $session_id, 'user' => $user_id]); + + /** @var SessionRelUser $subscription */ + $subscription = current($subscriptions); + + return $subscription; } /**