Explorar el Código

Add filtering on course code and session ID in user information page when removing from a course - loosely refs CT#8248

Yannick Warnier hace 8 años
padre
commit
34fa348ee5
Se han modificado 2 ficheros con 17 adiciones y 7 borrados
  1. 13 6
      main/admin/user_information.php
  2. 4 1
      main/inc/lib/course.lib.php

+ 13 - 6
main/admin/user_information.php

@@ -403,21 +403,28 @@ $message = null;
 if (isset($_GET['action'])) {
     switch ($_GET['action']) {
         case 'unsubscribe':
-            if (CourseManager::get_user_in_course_status($_GET['user_id'], $_GET['course_code']) == STUDENT) {
-                CourseManager::unsubscribe_user($_GET['user_id'], $_GET['course_code'], $_GET['id_session']);
+            $userId = empty($_GET['user_id']) ? 0 : intval($_GET['user_id']);
+            $courseCode = empty($_GET['course_code']) ? '' : intval($_GET['course_code']);
+            $sessionId = empty($_GET['id_session']) ? 0 : intval($_GET['id_session']);
+            if (CourseManager::get_user_in_course_status($userId, $courseCode) == STUDENT) {
+                CourseManager::unsubscribe_user($userId, $courseCode, $sessionId);
                 $message = Display::return_message(get_lang('UserUnsubscribed'));
             } else {
                 $message = Display::return_message(
                     get_lang('CannotUnsubscribeUserFromCourse'),
-                    'error'
+                    'error',
+                    false
                 );
             }
             break;
         case 'unsubscribeSessionCourse':
+            $userId = empty($_GET['user_id']) ? 0 : intval($_GET['user_id']);
+            $courseCode = empty($_GET['course_code']) ? '' : intval($_GET['course_code']);
+            $sessionId = empty($_GET['id_session']) ? 0 : intval($_GET['id_session']);
             SessionManager::removeUsersFromCourseSession(
-                array($_GET['user_id']),
-                $_GET['id_session'],
-                api_get_course_info($_GET['course_code'])
+                array($userId),
+                $sessionId,
+                api_get_course_info($courseCode)
             );
             $message = Display::return_message(get_lang('UserUnsubscribed'));
             break;

+ 4 - 1
main/inc/lib/course.lib.php

@@ -304,12 +304,15 @@ class CourseManager
      * @param   int $user_id
      * @param   string $course_code
      *
-     * @return int the status of the user in that course
+     * @return int|bool the status of the user in that course (or false if the user is not in that course)
      */
     public static function get_user_in_course_status($user_id, $course_code)
     {
         $courseInfo = api_get_course_info($course_code);
         $courseId = $courseInfo['real_id'];
+        if (empty($courseId)) {
+            return false;
+        }
         $result = Database::fetch_array(
             Database::query(
                 "SELECT status FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . "