diff --git a/public/main/admin/user_information.php b/public/main/admin/user_information.php index f5a8483780..97e4186e26 100644 --- a/public/main/admin/user_information.php +++ b/public/main/admin/user_information.php @@ -11,6 +11,7 @@ use Chamilo\CoreBundle\Framework\Container; * * @author Bart Mollet */ + $cidReset = true; require_once __DIR__.'/../inc/global.inc.php'; $this_section = SECTION_PLATFORM_ADMIN; @@ -20,7 +21,6 @@ if (empty($userId)) { api_not_allowed(true); } $user = api_get_user_entity($userId); -//$user = api_get_user_info($userId, true); if (null === $user) { api_not_allowed(true); @@ -145,7 +145,7 @@ $data = [ get_lang('Phone') => $user->getPhone(), get_lang('Course code') => $user->getOfficialCode(), //get_lang('Online') => !empty($user['user_is_online']) ? Display::return_icon('online.png') : Display::return_icon('offline.png'), - get_lang('Status') => 1 == $user->getStatus() ? get_lang('Trainer') : get_lang('Learner'), + get_lang('Status') => 1 === $user->getStatus() ? get_lang('Trainer') : get_lang('Learner'), ]; $params = []; @@ -229,7 +229,6 @@ foreach ($data as $label => $item) { * Show social activity. */ if ('true' === api_get_setting('allow_social_tool')) { - $userObject = api_get_user_entity($userId); $data = []; $messagesSent = ''; // Calculate values @@ -264,7 +263,9 @@ if ('true' === api_get_setting('allow_social_tool')) { /** * Show the sessions in which this user is subscribed. */ -$sessions = SessionManager::get_sessions_by_user($userId, true); +//$sessions = SessionManager::get_sessions_by_user($userId, true); +$sessions = Container::getSessionRepository()->getSessionsByUser($user, api_get_url_entity()); + $personal_course_list = []; $courseToolInformationTotal = null; $sessionInformation = ''; @@ -286,19 +287,24 @@ if (count($sessions) > 0) { $csvContent[] = []; $csvContent[] = [get_lang('Course sessions')]; - foreach ($sessions as $session_item) { + foreach ($sessions as $session) { $data = []; $personal_course_list = []; - $id_session = $session_item['session_id']; + $sessionId = $session->getId(); - $csvContent[] = [$session_item['session_name']]; + $csvContent[] = [$session->getName()]; $csvContent[] = $headerList; - foreach ($session_item['courses'] as $my_course) { - $courseInfo = api_get_course_info_by_id($my_course['real_id']); + foreach ($session->getCourses() as $sessionRelCourse) { + $course = $sessionRelCourse->getCourse(); + $courseId = $sessionRelCourse->getCourse()->getId(); + $courseCode = $sessionRelCourse->getCourse()->getCode(); + + $courseUrl = api_get_course_url($courseCode); + $sessionStatus = SessionManager::get_user_status_in_course_session( $userId, - $courseInfo['real_id'], - $id_session + $courseId, + $sessionId ); $status = null; switch ($sessionStatus) { @@ -313,39 +319,39 @@ if (count($sessions) > 0) { $tools = Display::url( Display::return_icon('statistics.png', get_lang('Statistics')), - api_get_path(WEB_CODE_PATH).'mySpace/myStudents.php?details=true&student='.$userId.'&id_session='.$id_session.'&course='.$courseInfo['code'] + api_get_path(WEB_CODE_PATH).'mySpace/myStudents.php?details=true&student='.$userId.'&id_session='.$sessionId.'&course='.$courseCode ); - $tools .= ' '. + $tools .= ' '. Display::return_icon('info2.png', get_lang('Overview')).''. - ''. + ''. Display::return_icon('course_home.png', get_lang('Course home')).''; - if (!empty($my_course['status']) && STUDENT == $my_course['status']) { + /*if (!empty($my_course['status']) && STUDENT == $my_course['status']) { $tools .= ''. + href="user_information.php?action=unsubscribe_session_course&course_id='.$courseId.'&user_id='.$userId.'&id_session='.$sessionId.'">'. Display::return_icon('delete.png', get_lang('Delete')).''; - } + }*/ $timeSpent = api_time_to_hms( Tracking::get_time_spent_on_the_course( $userId, - $courseInfo['real_id'], - $id_session + $courseId, + $sessionId ) ); - $totalForumMessages = CourseManager::getCountPostInForumPerUser( - $userId, - $courseInfo['real_id'], - $id_session + $totalForumMessages = Container::getForumPostRepository()->countUserForumPosts( + $user, + $course, + $session ); $row = [ Display::url( - $courseInfo['code'], - $courseInfo['course_public_url'].'?id_session='.$id_session + $courseCode, + $courseUrl.'?id_session='.$sessionId ), - $courseInfo['title'], + $course->getTitle(), $status, $timeSpent, $totalForumMessages, @@ -355,20 +361,22 @@ if (count($sessions) > 0) { $csvContent[] = array_map('strip_tags', $row); $data[] = $row; - $result = Tracking::getToolInformation( + /*$result = Tracking::getToolInformation( $userId, $courseInfo, - $id_session + $sessionId ); - if (!empty($result['html'])) { $courseToolInformationTotal .= $result['html']; $csvContent = array_merge($csvContent, $result['array']); - } + }*/ } $dates = array_filter( - [$session_item['access_start_date'], $session_item['access_end_date']] + [ + $session->getAccessStartDate()->format('Y-m-d H:i:s'), + $session->getAccessEndDate()->format('Y-m-d H:i:s'), + ] ); $certificateLink = Display::url( @@ -378,15 +386,15 @@ if (count($sessions) > 0) { [ 'action' => 'export_to_pdf', 'type' => 'achievement', - 'session_to_export' => $id_session, + 'session_to_export' => $sessionId, 'student' => $userId, ] ), ['target' => '_blank'] ); $sessionInformation .= Display::page_subheader( - ''. - $session_item['session_name'].'', + ''. + $session->getName().'', $certificateLink.' '.implode(' - ', $dates) ); @@ -404,16 +412,9 @@ if (count($sessions) > 0) { } $courseToolInformationTotal = ''; -/** - * Show the courses in which this user is subscribed. - */ -$sql = 'SELECT * FROM '.$table_course_user.' cu, '.$table_course.' c - WHERE - cu.user_id = '.$userId.' AND - cu.c_id = c.id AND - cu.relation_type <> '.COURSE_RELATION_TYPE_RRHH.' '; -$res = Database::query($sql); -if (Database::num_rows($res) > 0) { +$courseRelUserList = Container::getCourseRepository()->getCoursesByUser($user, api_get_url_entity()); + +if (count($courseRelUserList) > 0) { $header = [ [get_lang('Course code')], [get_lang('Title')], @@ -433,44 +434,41 @@ if (Database::num_rows($res) > 0) { $data = []; $courseToolInformationTotal = null; - while ($course = Database::fetch_object($res)) { - $courseInfo = api_get_course_info_by_id($course->c_id); - $courseCode = $courseInfo['code']; + foreach ($courseRelUserList as $courseRelUser) { + $course = $courseRelUser->getCourse(); + $courseId = $course->getId(); + $courseCode = $course->getCode(); $courseToolInformation = null; + $courseUrl = api_get_course_url($courseCode); $tools = Display::url( Display::return_icon('statistics.png', get_lang('Statistics')), api_get_path(WEB_CODE_PATH).'mySpace/myStudents.php?details=true&student='.$userId.'&id_session=0&course='.$courseCode ); - $tools .= ' '. Display::return_icon('info2.png', get_lang('Overview')).''. - ''. + ''. Display::return_icon('course_home.png', get_lang('Course home')).''. - ''. + ''. Display::return_icon('edit.png', get_lang('Edit')).''; - if (STUDENT == $course->status) { - $tools .= ''. + if (STUDENT == $courseRelUser->getStatus()) { + $tools .= ''. Display::return_icon('delete.png', get_lang('Delete')).''; } $timeSpent = api_time_to_hms( Tracking::get_time_spent_on_the_course( $userId, - $courseInfo['real_id'] + $courseId ) ); - $totalForumMessages = CourseManager::getCountPostInForumPerUser( - $userId, - $course->id, - 0 - ); + $totalForumMessages = Container::getForumPostRepository()->countUserForumPosts($user, $course); $row = [ - Display::url($courseCode, $courseInfo['course_public_url']), - $course->title, - STUDENT == $course->status ? get_lang('Learner') : get_lang('Trainer'), + Display::url($courseCode, $courseUrl), + $course->getTitle(), + STUDENT == $courseRelUser->getStatus() ? get_lang('Learner') : get_lang('Trainer'), $timeSpent, $totalForumMessages, $tools, @@ -479,13 +477,13 @@ if (Database::num_rows($res) > 0) { $csvContent[] = array_map('strip_tags', $row); $data[] = $row; - $result = Tracking::getToolInformation( + /*$result = Tracking::getToolInformation( $userId, $courseInfo, 0 ); $courseToolInformationTotal .= $result['html']; - $csvContent = array_merge($csvContent, $result['array']); + $csvContent = array_merge($csvContent, $result['array']);*/ } $courseInformation = Display::return_sortable_table( diff --git a/public/main/inc/lib/sessionmanager.lib.php b/public/main/inc/lib/sessionmanager.lib.php index e7332e1abf..b082a26f68 100644 --- a/public/main/inc/lib/sessionmanager.lib.php +++ b/public/main/inc/lib/sessionmanager.lib.php @@ -78,7 +78,7 @@ class SessionManager 'nbr_classes' => $session->getNbrClasses(), 'session_admin_id' => $session->getSessionAdmin()->getId(), 'visibility' => $session->getVisibility(), - 'promotion_id' => $session->getPromotionId(), + 'promotion_id' => $session->getPromotion() ? $session->getPromotion()->getId() : 0, 'display_start_date' => $session->getDisplayStartDate() ? $session->getDisplayStartDate()->format('Y-m-d H:i:s') : null, @@ -3576,12 +3576,19 @@ class SessionManager return Database::affected_rows($result) > 0; } + $em = Database::getManager(); + $sessionRelCourseRelUser = new SessionRelCourseRelUser(); + $sessionRelCourseRelUser + ->setSession(api_get_session_entity($sessionId)) + ->setCourse(api_get_course_entity($courseId)) + ->setUser(api_get_user_entity($userId)) + ->setStatus(2) + ->setVisibility(1) + ; + $em->persist($sessionRelCourseRelUser); + $em->flush(); - $sql = "INSERT INTO $tblSessionRelCourseRelUser(session_id, c_id, user_id, status, visibility) - VALUES($sessionId, $courseId, $userId, 2, 1)"; - $result = Database::query($sql); - - return Database::affected_rows($result) > 0; + return true; } /** @@ -4762,7 +4769,7 @@ class SessionManager return $row[0]; } - public static function cantEditSession(Session $session, bool $checkSession = true): bool + public static function cantEditSession(?Session $session = null, bool $checkSession = true): bool { if (!self::allowToManageSessions()) { return false; @@ -4788,25 +4795,20 @@ class SessionManager * * @return mixed | bool true if pass the check, api_not_allowed otherwise */ - public static function protectSession(Session $session, bool $checkSession = true) + public static function protectSession(?Session $session = null, bool $checkSession = true) { if (!self::cantEditSession($session, $checkSession)) { api_not_allowed(true); } } - /** - * @return bool - */ - public static function allowToManageSessions() + public static function allowToManageSessions(): bool { if (self::allowManageAllSessions()) { return true; } - $setting = api_get_setting('allow_teachers_to_create_sessions'); - - if (api_is_teacher() && 'true' === $setting) { + if (api_is_teacher() && 'true' === api_get_setting('allow_teachers_to_create_sessions')) { return true; } @@ -7737,14 +7739,9 @@ class SessionManager return $sessionList; } - /** - * @param array $sessionInfo - * - * @return string - */ - public static function getSessionVisibility($sessionInfo) + public static function getSessionVisibility(Session $session) : string { - switch ($sessionInfo['visibility']) { + switch ($session->getVisibility()) { case 1: return get_lang('Read only'); case 2: @@ -7757,40 +7754,35 @@ class SessionManager /** * Returns a human readable string. * - * @param array $sessionInfo An array with all the session dates - * @param bool $showTime - * * @return array */ - public static function parseSessionDates($sessionInfo, $showTime = false) + public static function parseSessionDates(Session $session, bool $showTime = false) { $displayDates = self::convertSessionDateToString( - $sessionInfo['display_start_date'], - $sessionInfo['display_end_date'], + $session->getDisplayStartDate()->format('Y-m-d H:i:s'), + $session->getDisplayEndDate()->format('Y-m-d H:i:s'), $showTime, true ); $accessDates = self::convertSessionDateToString( - $sessionInfo['access_start_date'], - $sessionInfo['access_end_date'], + $session->getAccessStartDate()->format('Y-m-d H:i:s'), + $session->getAccessEndDate()->format('Y-m-d H:i:s'), $showTime, true ); $coachDates = self::convertSessionDateToString( - $sessionInfo['coach_access_start_date'], - $sessionInfo['coach_access_end_date'], + $session->getCoachAccessStartDate()->format('Y-m-d H:i:s'), + $session->getCoachAccessEndDate()->format('Y-m-d H:i:s'), $showTime, true ); - $result = [ + return [ 'access' => $accessDates, 'display' => $displayDates, 'coach' => $coachDates, ]; - - return $result; } /** @@ -9590,32 +9582,36 @@ class SessionManager } } - private static function allowed(Session $session): bool + private static function allowed(?Session $session = null): bool { if (api_is_platform_admin()) { return true; } + if (null === $session) { + return false; + } + $userId = api_get_user_id(); if (api_is_session_admin() && 'true' !== api_get_setting('allow_session_admins_to_manage_all_sessions') ) { - if ($userId !== $session->getSessionAdmin()->getId()) { - return false; + if ($userId === $session->getSessionAdmin()->getId()) { + return true; } } if (api_is_teacher() && 'true' === api_get_setting('allow_teachers_to_create_sessions') ) { - if ($userId !== $session->getGeneralCoach()->getId()) { - return false; + if ($userId === $session->getGeneralCoach()->getId()) { + return true; } } - return true; + return false; } /** diff --git a/public/main/session/add_courses_to_session.php b/public/main/session/add_courses_to_session.php index 0e386a76d6..51a0596666 100644 --- a/public/main/session/add_courses_to_session.php +++ b/public/main/session/add_courses_to_session.php @@ -11,8 +11,8 @@ require_once __DIR__.'/../inc/global.inc.php'; $sessionId = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0; $add = isset($_GET['add']) ? Security::remove_XSS($_GET['add']) : null; - -SessionManager::protectSession($sessionId); +$session = api_get_session_entity($sessionId); +SessionManager::protectSession($session); $xajax = new xajax(); $xajax->registerFunction(['search_courses', 'AddCourseToSession', 'search_courses']); diff --git a/public/main/session/add_edit_users_to_session.php b/public/main/session/add_edit_users_to_session.php index 37c3e2d5eb..4db0e5f621 100644 --- a/public/main/session/add_edit_users_to_session.php +++ b/public/main/session/add_edit_users_to_session.php @@ -18,7 +18,8 @@ if (empty($id_session)) { } $addProcess = isset($_GET['add']) ? Security::remove_XSS($_GET['add']) : null; -SessionManager::protectSession($id_session); +$session = api_get_session_entity($id_session); +SessionManager::protectSession($session); // setting breadcrumbs $interbreadcrumb[] = ['url' => 'session_list.php', 'name' => get_lang('Session list')]; diff --git a/public/main/session/add_students_to_session.php b/public/main/session/add_students_to_session.php index 5db72ce38b..1649f9e571 100644 --- a/public/main/session/add_students_to_session.php +++ b/public/main/session/add_students_to_session.php @@ -26,7 +26,8 @@ $form_sent = 0; $errorMsg = ''; $users = $sessions = []; $id = isset($_GET['id']) ? intval($_GET['id']) : 0; -SessionManager::protectSession($id); +$session = api_get_session_entity($id); +SessionManager::protectSession($session); $htmlResult = ''; if (isset($_POST['form_sent']) && $_POST['form_sent']) { diff --git a/public/main/session/add_teachers_to_session.php b/public/main/session/add_teachers_to_session.php index 733cde1111..33f80c98a3 100644 --- a/public/main/session/add_teachers_to_session.php +++ b/public/main/session/add_teachers_to_session.php @@ -23,7 +23,8 @@ $form_sent = 0; $errorMsg = ''; $id = isset($_GET['id']) ? (int) $_GET['id'] : 0; -SessionManager::protectSession($id); +$session = api_get_session_entity($id); +SessionManager::protectSession($session); $htmlResult = ''; if (isset($_POST['form_sent']) && $_POST['form_sent']) { diff --git a/public/main/session/add_users_to_session.php b/public/main/session/add_users_to_session.php index f7ee73c226..ecd6da5ac9 100644 --- a/public/main/session/add_users_to_session.php +++ b/public/main/session/add_users_to_session.php @@ -15,7 +15,8 @@ $this_section = SECTION_PLATFORM_ADMIN; $id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0; $addProcess = isset($_GET['add']) ? Security::remove_XSS($_GET['add']) : null; -SessionManager::protectSession($id_session); +$session = api_get_session_entity($id_session); +SessionManager::protectSession($session); // setting breadcrumbs $interbreadcrumb[] = ['url' => 'session_list.php', 'name' => get_lang('Session list')]; diff --git a/public/main/session/add_users_to_session_course.php b/public/main/session/add_users_to_session_course.php index 344347dd03..e56ac92e0d 100644 --- a/public/main/session/add_users_to_session_course.php +++ b/public/main/session/add_users_to_session_course.php @@ -21,8 +21,8 @@ if (empty($id_session) || empty($courseId)) { $addProcess = isset($_GET['add']) ? Security::remove_XSS($_GET['add']) : null; -SessionManager::protectSession($id_session); - +$session = api_get_session_entity($id_session); +SessionManager::protectSession($session); $courseInfo = api_get_course_info_by_id($courseId); // setting breadcrumbs diff --git a/public/main/session/resume_session.php b/public/main/session/resume_session.php index 84e89c1d25..a714d3dece 100644 --- a/public/main/session/resume_session.php +++ b/public/main/session/resume_session.php @@ -6,11 +6,9 @@ use Chamilo\CoreBundle\Entity\SequenceResource; use Chamilo\CoreBundle\Entity\Session; use Chamilo\CoreBundle\Entity\SessionRelCourse; use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser; +use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Repository\SequenceRepository; -/** - * @author Bart Mollet, Julio Montoya lot of fixes - */ $cidReset = true; require_once __DIR__.'/../inc/global.inc.php'; @@ -35,17 +33,8 @@ $interbreadcrumb[] = [ $orig_param = '&origin=resume_session'; -// Database Table Definitions $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session_rel_class = Database::get_main_table(TABLE_MAIN_SESSION_CLASS); -$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); -$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); -$tbl_user = Database::get_main_table(TABLE_MAIN_USER); -$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); -$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); -$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY); -$table_access_url_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); - $em = Database::getManager(); $sessionCategory = $session->getCategory(); @@ -131,11 +120,10 @@ $sessionTitle = Display::page_subheader(get_lang('General properties').$url); $sessionField = new ExtraField('session'); $extraFieldData = $sessionField->getDataAndFormattedValues($sessionId); - -$multiple_url_is_on = api_get_multiple_access_url(); $urlList = []; -if ($multiple_url_is_on) { - $urlList = UrlManager::get_access_url_from_session($sessionId); +$isMultipleUrl = api_is_multiple_url_enabled(); +if ($isMultipleUrl) { + $urlList = $session->getUrls(); } $url = Display::url( @@ -166,10 +154,12 @@ if (0 === $session->getNbrCourses()) { /** @var SessionRelCourse $sessionRelCourse */ foreach ($courses as $sessionRelCourse) { $course = $sessionRelCourse->getCourse(); + $courseId = $course->getId(); + $courseCode = $course->getCode(); // Select the number of users $numberOfUsers = SessionManager::getCountUsersInCourseSession($course, $session); - // Get coachs of the courses in session + // Get coaches of the courses in session $namesOfCoaches = []; $coachSubscriptions = $session->getUserCourseSubscriptionsByStatus($course, Session::COACH); @@ -189,7 +179,7 @@ if (0 === $session->getNbrCourses()) { ), !$count ? '#' - : api_get_self().'?id_session='.$sessionId.'&course_id='.$course->getId().'&action=move_up' + : api_get_self().'?id_session='.$sessionId.'&course_id='.$courseId.'&action=move_up' ); $orderButtons .= Display::url( @@ -199,11 +189,11 @@ if (0 === $session->getNbrCourses()) { ), $count + 1 == count($courses) ? '#' - : api_get_self().'?id_session='.$sessionId.'&course_id='.$course->getId().'&action=move_down' + : api_get_self().'?id_session='.$sessionId.'&course_id='.$courseId.'&action=move_down' ); } - $courseUrl = api_get_course_url($course->getCode(), $sessionId); + $courseUrl = api_get_course_url($courseCode, $sessionId); // hide_course_breadcrumb the parameter has been added to hide the name // of the course, that appeared in the default $interbreadcrumb @@ -222,34 +212,34 @@ if (0 === $session->getNbrCourses()) { if ($allowSkills) { $courseItem .= Display::url( Display::return_icon('skills.png', get_lang('Skills')), - $codePath.'admin/skill_rel_course.php?session_id='.$sessionId.'&course_id='.$course->getId() + $codePath.'admin/skill_rel_course.php?session_id='.$sessionId.'&course_id='.$courseId ); } $courseItem .= $orderButtons; $courseItem .= Display::url( Display::return_icon('new_user.png', get_lang('Add a user')), - $codePath."session/add_users_to_session_course.php?id_session=$sessionId&course_id=".$course->getId() + $codePath."session/add_users_to_session_course.php?id_session=$sessionId&course_id=".$courseId ); $courseItem .= Display::url( Display::return_icon('user.png', get_lang('Users')), - $codePath."session/session_course_user_list.php?id_session=$sessionId&course_code=".$course->getCode() + $codePath."session/session_course_user_list.php?id_session=$sessionId&course_code=".$courseCode ); $courseItem .= Display::url( Display::return_icon('import_csv.png', get_lang('Import users list')), - $codePath."user/user_import.php?action=import&cid={$course->getId()}&sid=$sessionId" + $codePath."user/user_import.php?action=import&cid={$courseId}&sid=$sessionId" ); $courseItem .= Display::url( Display::return_icon('export_csv.png', get_lang('Export users of a course')), - $codePath."user/user_export.php?file_type=csv&course_session={$course->getCode()}:$sessionId&addcsvheader=1" + $codePath."user/user_export.php?file_type=csv&course_session=$courseCode:$sessionId&addcsvheader=1" ); $courseItem .= Display::url( Display::return_icon('statistics.gif', get_lang('Reporting')), - $codePath."tracking/courseLog.php?sid=$sessionId&cid={$course->getId()}$orig_param&hide_course_breadcrumb=1" + $codePath."tracking/courseLog.php?sid=$sessionId&cid={$courseId}$orig_param&hide_course_breadcrumb=1" ); $courseItem .= Display::url( Display::return_icon('teacher.png', get_lang('Edit coach')), - $codePath."session/session_course_edit.php?id_session=$sessionId&page=resume_session.php&course_code={$course->getCode()}$orig_param" + $codePath."session/session_course_edit.php?id_session=$sessionId&page=resume_session.php&course_code={$courseCode}$orig_param" ); $courseItem .= Display::url( Display::return_icon('folder_document.png', get_lang('File upload')), @@ -257,12 +247,12 @@ if (0 === $session->getNbrCourses()) { [ 'class' => 'session-upload-file-btn', 'data-session' => $sessionId, - 'data-course' => $course->getId(), + 'data-course' => $courseId, ] ); $courseItem .= Display::url( Display::return_icon('delete.png', get_lang('Delete')), - api_get_self()."?id_session=$sessionId&action=delete&idChecked[]={$course->getCode()}", + api_get_self()."?id_session=$sessionId&action=delete&idChecked[]={$courseCode}", [ 'onclick' => "javascript:if(!confirm('".get_lang('Please confirm your choice')."')) return false;", ] @@ -289,53 +279,50 @@ $url .= Display::url( ); $userListToShow = Display::page_subheader(get_lang('User list').$url); -$userList = SessionManager::get_users_by_session($sessionId); +$sessionRelUsers = Container::getSessionRepository()->getUsersByAccessUrl($session, api_get_url_entity()); -if (!empty($userList)) { - $table = new HTML_Table( - ['class' => 'table table-bordered', 'id' => 'session-user-list'] - ); +if (!empty($sessionRelUsers)) { + $table = new HTML_Table(['class' => 'table table-bordered', 'id' => 'session-user-list']); $table->setHeaderContents(0, 0, '#'); $table->setHeaderContents(0, 1, get_lang('User')); $table->setHeaderContents(0, 2, get_lang('Status')); $table->setHeaderContents(0, 3, get_lang('Registration date')); $table->setHeaderContents(0, 4, get_lang('Detail')); - $row = 1; - foreach ($userList as $user) { - $userId = $user['user_id']; - $userInfo = api_get_user_info($userId); + foreach ($sessionRelUsers as $sessionRelUser) { + $user = $sessionRelUser->getUser(); + $userId = $user->getId(); $userLink = ''. - api_htmlentities($userInfo['complete_name_with_username']).''; + api_htmlentities(UserManager::formatUserFullName($user)).''; $reportingLink = Display::url( Display::return_icon('statistics.gif', get_lang('Reporting')), - $codePath.'mySpace/myStudents.php?student='.$user['user_id'].''.$orig_param.'&id_session=' + $codePath.'mySpace/myStudents.php?student='.$userId.''.$orig_param.'&id_session=' .$sessionId ); $courseUserLink = Display::url( Display::return_icon('course.png', get_lang('Block user from courses in this session')), - $codePath.'session/session_course_user.php?id_user='.$user['user_id'].'&id_session=' + $codePath.'session/session_course_user.php?id_user='.$userId.'&id_session=' .$sessionId ); $removeLink = Display::url( Display::return_icon('delete.png', get_lang('Delete')), - api_get_self().'?id_session='.$sessionId.'&action=delete&user='.$user['user_id'], + api_get_self().'?id_session='.$sessionId.'&action=delete&user='.$userId, ['onclick' => "javascript:if(!confirm('".get_lang('Please confirm your choice')."')) return false;"] ); $addUserToUrlLink = ''; - if ($multiple_url_is_on) { + /*if ($isMultipleUrl) { if ($user['access_url_id'] != $url_id) { $userLink .= ' '.Display::return_icon('warning.png', get_lang('Users not added to the URL')); $add = Display::return_icon('add.png', get_lang('Add a userToURL')); $addUserToUrlLink = ''.$add.''; } - } + }*/ $editUrl = null; /* @@ -347,7 +334,7 @@ if (!empty($userList)) { ); }*/ $link = $reportingLink.$courseUserLink.$removeLink.$addUserToUrlLink.$editUrl; - switch ($user['relation_type']) { + switch ($sessionRelUser->getRelationType()) { case 1: $status = get_lang('Human Resources Manager'); $link = Display::url( @@ -359,7 +346,7 @@ if (!empty($userList)) { $status = get_lang('Learner'); } - $registered = !empty($user['registered_at']) ? Display::dateToStringAgoAndLongDate($user['registered_at']) : ''; + $registered = Display::dateToStringAgoAndLongDate($sessionRelUser->getRegisteredAt()); $table->setCellContents($row, 0, $row); $table->setCellContents($row, 1, $userLink); @@ -389,7 +376,6 @@ if (!empty($requirementAndDependencies['dependencies'])) { $dependencies .= implode(', ', array_column($requirementAndDependencies['dependencies'], 'admin_link')); } -$promotion = $session->getPromotion(); $programmedAnnouncement = new ScheduledAnnouncement(); $programmedAnnouncement = $programmedAnnouncement->allowed(); @@ -398,10 +384,8 @@ $tpl->assign('session_header', $sessionHeader); $tpl->assign('title', $sessionTitle); $tpl->assign('session', $session); $tpl->assign('programmed_announcement', $programmedAnnouncement); -$tpl->assign('session_category', is_null($sessionCategory) ? null : $sessionCategory->getName()); -//$tpl->assign('session_dates', SessionManager::parseSessionDates($sessionInfo, true)); -//$tpl->assign('session_visibility', SessionManager::getSessionVisibility($sessionInfo)); -$tpl->assign('promotion', $promotion); +$tpl->assign('session_dates', SessionManager::parseSessionDates($session, true)); +$tpl->assign('session_visibility', SessionManager::getSessionVisibility($session)); $tpl->assign('url_list', $urlList); $tpl->assign('extra_fields', $extraFieldData); $tpl->assign('course_list', $courseListToShow); diff --git a/public/main/session/session_course_edit.php b/public/main/session/session_course_edit.php index 98946f9c98..7c026415fb 100644 --- a/public/main/session/session_course_edit.php +++ b/public/main/session/session_course_edit.php @@ -10,7 +10,8 @@ $cidReset = true; require_once __DIR__.'/../inc/global.inc.php'; $id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0; -SessionManager::protectSession($id_session); +$session = api_get_session_entity($id_session); +SessionManager::protectSession($session); $course_code = $_GET['course_code']; $course_info = api_get_course_info($_REQUEST['course_code']); diff --git a/public/main/session/session_course_list.php b/public/main/session/session_course_list.php index 2200e3b67d..95518d6be8 100644 --- a/public/main/session/session_course_list.php +++ b/public/main/session/session_course_list.php @@ -10,7 +10,8 @@ require_once __DIR__.'/../inc/global.inc.php'; $this_section = SECTION_PLATFORM_ADMIN; $id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0; -SessionManager::protectSession($id_session); +$session = api_get_session_entity($id_session); +SessionManager::protectSession($session); // Database Table Definitions $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); diff --git a/public/main/session/session_course_user.php b/public/main/session/session_course_user.php index 679f599196..c59eae3d37 100644 --- a/public/main/session/session_course_user.php +++ b/public/main/session/session_course_user.php @@ -14,7 +14,8 @@ require_once __DIR__.'/../inc/global.inc.php'; $this_section = SECTION_PLATFORM_ADMIN; $tool_name = get_lang('Edit session courses by user'); $id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0; -SessionManager::protectSession($id_session); +$session = api_get_session_entity($id_session); +SessionManager::protectSession($session); $id_user = intval($_GET['id_user']); diff --git a/public/main/session/session_course_user_list.php b/public/main/session/session_course_user_list.php index 1e323b64b3..26c33cb133 100644 --- a/public/main/session/session_course_user_list.php +++ b/public/main/session/session_course_user_list.php @@ -14,7 +14,8 @@ $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); $tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0; -SessionManager::protectSession($id_session); +$session = api_get_session_entity($id_session); +SessionManager::protectSession($session); if (empty($id_session)) { api_not_allowed(); diff --git a/public/main/session/session_edit.php b/public/main/session/session_edit.php index 8208f72e61..9ca377c5be 100644 --- a/public/main/session/session_edit.php +++ b/public/main/session/session_edit.php @@ -18,8 +18,8 @@ $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $id = (int) $_GET['id']; -SessionManager::protectSession($id); - +$session = api_get_session_entity($id); +SessionManager::protectSession($session); $sessionInfo = SessionManager::fetch($id); // Sets to local time to show it correctly when you edit a session diff --git a/public/main/session/session_user_edit.php b/public/main/session/session_user_edit.php index c2b0ceeba3..ee58a7a972 100644 --- a/public/main/session/session_user_edit.php +++ b/public/main/session/session_user_edit.php @@ -9,8 +9,8 @@ require_once __DIR__.'/../inc/global.inc.php'; $sessionId = isset($_GET['session_id']) ? $_GET['session_id'] : null; $userId = isset($_GET['user_id']) ? $_GET['user_id'] : null; -SessionManager::protectSession($sessionId); - +$session = api_get_session_entity($sessionId); +SessionManager::protectSession($session); $sessionInfo = api_get_session_info($sessionId); if (empty($sessionInfo)) { diff --git a/public/main/session/session_user_import.php b/public/main/session/session_user_import.php index 3790f6aa3f..ecb20ca33e 100644 --- a/public/main/session/session_user_import.php +++ b/public/main/session/session_user_import.php @@ -11,7 +11,8 @@ set_time_limit(0); $this_section = SECTION_PLATFORM_ADMIN; $session_id = isset($_GET['id_session']) ? intval($_GET['id_session']) : null; -SessionManager::protectSession($session_id); +$session = api_get_session_entity($session_id); +SessionManager::protectSession($session); $form_sent = 0; $tool_name = get_lang('Import users'); diff --git a/public/main/template/default/session/resume_session.html.twig b/public/main/template/default/session/resume_session.html.twig index 88a302abb7..7b314e8b25 100644 --- a/public/main/template/default/session/resume_session.html.twig +++ b/public/main/template/default/session/resume_session.html.twig @@ -8,16 +8,16 @@ - + - + - {% if session_category %} + {% if session.category %} - + {% endif %} @@ -52,7 +52,7 @@ - {% if promotion %} + {% if session.promotion %}
{{ 'Created by'|get_lang }}{{ session_admin.complete_name_with_message_link }}{{ session.sessionAdmin | user_complete_name_with_link }}
{{ 'General coach' | get_lang}} :{{ general_coach.complete_name_with_message_link }}{{ session.generalCoach | user_complete_name_with_link }}
{{ 'Session category' | get_lang}} {{ session_category }}{{ session.category.name }}
{{ 'Show description' | get_lang}} - {% if session.show_description == 1 %} + {% if session.showDescription == 1 %} {{ 'Yes' | get_lang}} {% else %} {{ 'No' | get_lang}} @@ -65,20 +65,20 @@ {{ session_visibility }}
{{ 'Career' | get_lang}} - - {{ promotion.career.name }} + + {{ session.promotion.career.name }}
{{ 'Promotion' | get_lang}} - - {{ promotion.name }} + + {{ session.promotion.name }}