diff --git a/main/exercise/pending.php b/main/exercise/pending.php index 31e3a2df78..2cc0d02a2a 100644 --- a/main/exercise/pending.php +++ b/main/exercise/pending.php @@ -20,7 +20,7 @@ $action = $_REQUEST['a'] ?? null; api_block_anonymous_users(); // Only teachers. -if (false === api_is_teacher()) { +if (false === api_is_teacher() && false === api_is_session_admin()) { api_not_allowed(true); } @@ -60,7 +60,8 @@ if (!empty($_GET['path'])) { if (!empty($_REQUEST['export_report']) && $_REQUEST['export_report'] == '1') { if (api_is_platform_admin() || api_is_course_admin() || - api_is_course_tutor() || api_is_session_general_coach() + api_is_course_tutor() || api_is_session_general_coach() || + api_is_session_admin() ) { $loadExtraData = false; if (isset($_REQUEST['extra_data']) && $_REQUEST['extra_data'] == 1) { diff --git a/main/inc/ajax/model.ajax.php b/main/inc/ajax/model.ajax.php index 6b84f9b8db..209b8d9a10 100755 --- a/main/inc/ajax/model.ajax.php +++ b/main/inc/ajax/model.ajax.php @@ -642,7 +642,7 @@ switch ($action) { ); break; case 'get_exercise_pending_results': - if (false === api_is_teacher()) { + if ((false === api_is_teacher()) && (false === api_is_session_admin())) { exit; } diff --git a/main/inc/lib/exercise.lib.php b/main/inc/lib/exercise.lib.php index 2b4a8c1eed..302ddda4aa 100644 --- a/main/inc/lib/exercise.lib.php +++ b/main/inc/lib/exercise.lib.php @@ -2601,11 +2601,11 @@ HOTSPOT; } } - if (false === $searchAllTeacherCourses) { + if (false === $searchAllTeacherCourses && true === api_is_teacher()) { if (empty($courseInfo)) { return []; } - } else { + } elseif (false === api_is_session_admin()) { $courses = CourseManager::get_courses_list_by_user_id(api_get_user_id(), $showAttemptsInSessions, false, false); if (empty($courses)) { @@ -2669,7 +2669,7 @@ HOTSPOT; $sessionCondition = ""; } - if (api_is_platform_admin() && $originPending) { + if ((api_is_platform_admin() || true === api_is_session_admin()) && $originPending) { $session_id_and = " AND (te.session_id = 0 OR $te_access_url_session_filter)"; $sessionCondition = ""; if (false !== $searchAllTeacherCourses) { diff --git a/main/inc/lib/userportal.lib.php b/main/inc/lib/userportal.lib.php index 926c17573a..fb8048da2a 100755 --- a/main/inc/lib/userportal.lib.php +++ b/main/inc/lib/userportal.lib.php @@ -1151,7 +1151,7 @@ class IndexManager ]; } - if (api_is_teacher()) { + if (api_is_teacher() || api_is_session_admin()) { if (api_get_configuration_value('my_courses_show_pending_work')) { $items[] = [ 'class' => 'list-pending-student-assignments',