Session: Don't subscribe all users from usergroups when importing session and classes doesn't exist - refs BT#20250

pull/4669/head
Angel Fernando Quiroz Campos 3 years ago
parent 7a1e7ced2a
commit a517729ebe
  1. 11
      main/inc/lib/sessionmanager.lib.php
  2. 2
      main/session/session_import.php

@ -5924,7 +5924,7 @@ class SessionManager
WHERE id = '$session_id'";
Database::query($sql);
self::addClassesByName($session_id, $classes, false);
self::addClassesByName($session_id, $classes, false, $error_message);
if ($debug) {
$logger->addInfo("End process session #$session_id -------------------- ");
@ -10001,7 +10001,7 @@ class SessionManager
* @param array $classesNames
* @param bool $deleteClassSessions Optional. Empty the session list for the usergroup (class)
*/
private static function addClassesByName($sessionId, $classesNames, $deleteClassSessions = true)
private static function addClassesByName($sessionId, $classesNames, $deleteClassSessions = true, ?string &$error_message = '')
{
if (!$classesNames) {
return;
@ -10014,6 +10014,13 @@ class SessionManager
continue;
}
$classIdByName = $usergroup->getIdByName($className);
if (empty($classIdByName)) {
$error_message .= sprintf(get_lang('ClassNameXDoesntExists'), $className).'<br>';
continue;
}
$usergroup->subscribe_sessions_to_usergroup(
$usergroup->getIdByName($className),
[$sessionId],

@ -459,7 +459,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
header('Location: resume_session.php?id_session='.$session_id);
exit;
} else {
Display::addFlash(Display::return_message(get_lang('FileImported').' '.$error_message));
Display::addFlash(Display::return_message(get_lang('FileImported').' '.$error_message, 'normal', false));
header('Location: session_list.php');
exit;
}

Loading…
Cancel
Save