Session: Fix subscription users to new course in session - refs BT#21644

pull/5500/head
christianbeeznst 1 year ago
parent 29ac1aa991
commit f8ed5cc10c
  1. 23
      public/main/inc/lib/sessionmanager.lib.php

@ -2893,7 +2893,7 @@ class SessionManager
// Subscribe all the users from the session to this course inside the session // Subscribe all the users from the session to this course inside the session
self::insertUsersInCourse( self::insertUsersInCourse(
array_column($user_list, 'id'), array_column($user_list, 'user_id'),
$courseId, $courseId,
$sessionId, $sessionId,
['visibility' => $sessionVisibility], ['visibility' => $sessionVisibility],
@ -9840,6 +9840,9 @@ class SessionManager
} }
} }
/**
* @throws \Doctrine\ORM\Exception\ORMException
*/
public static function insertUsersInCourse( public static function insertUsersInCourse(
array $studentIds, array $studentIds,
int $courseId, int $courseId,
@ -9856,25 +9859,17 @@ class SessionManager
foreach ($studentIds as $studentId) { foreach ($studentIds as $studentId) {
$user = api_get_user_entity($studentId); $user = api_get_user_entity($studentId);
$session->addUserInCourse($relationInfo['status'], $user, $course)
->setVisibility($relationInfo['visibility']);
if (!$session->hasUserInCourse($user, $course)) { Event::logUserSubscribedInCourseSession($user, $course, $session);
$session->addUserInCourse($relationInfo['status'], $user, $course)
->setVisibility($relationInfo['visibility']);
Event::logUserSubscribedInCourseSession($user, $course, $session);
}
$subscription = new SessionRelUser();
$subscription->setUser($user);
$subscription->setSession($session);
$subscription->setRelationType(Session::STUDENT);
if ($updateSession && !$session->hasUser($subscription)) { if ($updateSession) {
$session->addUserInSession(Session::STUDENT, $user); $session->addUserInSession(Session::STUDENT, $user);
} }
} }
try { try {
$em->persist($session); $em->persist($session);
$em->flush(); $em->flush();
} catch (\Exception $e) { } catch (\Exception $e) {

Loading…
Cancel
Save