diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index 41d23d2875..0f6303e07c 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -3536,7 +3536,6 @@ class SessionManager $session_id = $my_session_result['id']; if ($session_id) { - foreach ($enreg as $key => $value) { if (substr($key, 0, 6) == 'extra_') { //an extra field self::update_session_extra_field_value($session_id, substr($key, 6), $value); @@ -3628,7 +3627,6 @@ class SessionManager } $sessionList[] = $session_id; - $users = explode('|', $enreg['Users']); // Adding the relationship "Session - User" for students @@ -3675,7 +3673,7 @@ class SessionManager // See BT#6449 $onlyAddFirstCoachOrTeacher = false; - $removeAllTeachersFromCourse = false; + $removeAllTeachersFromCourse = true; if ($sessionWithCoursesModifier) { if (count($courses) >= 2) { @@ -3683,7 +3681,7 @@ class SessionManager $onlyAddFirstCoachOrTeacher = true; // Remove all teachers from course. - $removeAllTeachersFromCourse = true; + $removeAllTeachersFromCourse = false; } } @@ -3790,16 +3788,28 @@ class SessionManager SessionManager::updateCoaches($session_id, $course_code, array($teacherToAdd), true); } } + // See BT#6449#note-195 + if ($removeAllTeachersFromCourse) { + $teacherToAdd = null; + foreach ($course_coaches as $course_coach) { + $coach_id = UserManager::get_user_id_from_username( + $course_coach + ); + if ($coach_id !== false) { + $teacherToAdd[] = $coach_id; + } + } - if ($removeAllTeachersFromCourse && !empty($teacherToAdd)) { - // Deleting all course teachers and adding the only coach as teacher. - $teacherList = CourseManager::get_teacher_list_from_course_code($course_code); - if (!empty($teacherList)) { - foreach ($teacherList as $teacher) { - CourseManager::unsubscribe_user($teacher['user_id'], $course_code); + if (!empty($teacherToAdd)) { + // Deleting all course teachers and adding the only coach as teacher. + $teacherList = CourseManager::get_teacher_list_from_course_code($course_code); + if (!empty($teacherList)) { + foreach ($teacherList as $teacher) { + CourseManager::unsubscribe_user($teacher['user_id'], $course_code); + } } + CourseManager::subscribe_user($teacherToAdd, $course_code, COURSEMANAGER); } - CourseManager::subscribe_user($teacherToAdd, $course_code, COURSEMANAGER); } // Continue default behaviour.