Merge pull request #3964 from christianbeeznest/ASF-19113

Session import: Fix csv and xml import when name already exists - refs BT#19147
pull/3972/head
Angel Fernando Quiroz Campos 4 years ago committed by GitHub
commit 008a2543a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      main/inc/lib/sessionmanager.lib.php
  2. 46
      main/session/session_import.php

@ -5092,7 +5092,7 @@ class SessionManager
if ($i > 1) {
$suffix = ' - '.$i;
}
$sql = 'SELECT 1 FROM '.$tbl_session.'
$sql = 'SELECT id FROM '.$tbl_session.'
WHERE name="'.Database::escape_string($session_name).$suffix.'"';
$rs = Database::query($sql);
if (Database::result($rs, 0, 0)) {
@ -5358,18 +5358,19 @@ class SessionManager
$extraFieldValueCareer = new ExtraFieldValue('career');
$careerList = isset($enreg['extra_careerid']) && !empty($enreg['extra_careerid']) ? $enreg['extra_careerid'] : [];
$careerList = str_replace(['[', ']'], '', $careerList);
$careerList = explode(',', $careerList);
$finalCareerIdList = [];
foreach ($careerList as $careerId) {
$realCareerIdList = $extraFieldValueCareer->get_item_id_from_field_variable_and_field_value(
'external_career_id',
$careerId
);
if (isset($realCareerIdList['item_id'])) {
$finalCareerIdList[] = $realCareerIdList['item_id'];
if (!empty($careerList)) {
$careerList = explode(',', $careerList);
foreach ($careerList as $careerId) {
$realCareerIdList = $extraFieldValueCareer->get_item_id_from_field_variable_and_field_value(
'external_career_id',
$careerId
);
if (isset($realCareerIdList['item_id'])) {
$finalCareerIdList[] = $realCareerIdList['item_id'];
}
}
}
foreach ($users as $user) {
$user_id = UserManager::get_user_id_from_username($user);
if ($user_id !== false) {

@ -228,10 +228,27 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
}
}
$visibility = trim(api_utf8_decode($node_session->Visibility));
$session_category_id = trim(api_utf8_decode($node_session->SessionCategory));
// Default visibility
$visibilityAfterExpirationPerSession = SESSION_VISIBLE_READ_ONLY;
if (isset($node_session->VisibilityAfterExpiration)) {
$visibility = trim(api_utf8_decode($node_session->VisibilityAfterExpiration));
switch ($visibility) {
case 'accessible':
$visibilityAfterExpirationPerSession = SESSION_VISIBLE;
break;
case 'not_accessible':
$visibilityAfterExpirationPerSession = SESSION_INVISIBLE;
break;
case 'read_only':
default:
$visibilityAfterExpirationPerSession = SESSION_VISIBLE_READ_ONLY;
break;
}
}
$session_category_id = (int) trim(api_utf8_decode($node_session->SessionCategory));
if (!$updatesession) {
if (!$isOverwrite) {
// Always create a session.
$unique_name = false; // This MUST be initializead.
$i = 0;
@ -240,7 +257,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
if ($i > 1) {
$suffix = ' - '.$i;
}
$sql = 'SELECT 1 FROM '.$tbl_session.'
$sql = 'SELECT id FROM '.$tbl_session.'
WHERE name="'.Database::escape_string($session_name.$suffix).'"';
$rs = Database::query($sql);
if (Database::result($rs, 0, 0)) {
@ -252,14 +269,15 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
}
// Creating the session.
$sql_session = "INSERT IGNORE INTO $tbl_session SET
$sql_session = "INSERT INTO $tbl_session SET
name = '".Database::escape_string($session_name)."',
id_coach = '$coach_id',
access_start_date = '$date_start',
access_end_date = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']);
visibility = '$visibilityAfterExpirationPerSession',
".(!empty($session_category_id) ? "session_category_id = '{$session_category_id}'," : "")."
session_admin_id=".api_get_user_id();
$rs_session = Database::query($sql_session);
$session_id = Database::insert_id();
$session_counter++;
@ -268,14 +286,14 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$my_session_result = SessionManager::get_session_by_name($session_name);
if ($my_session_result === false) {
// Creating the session.
$sql_session = "INSERT IGNORE INTO $tbl_session SET
$sql_session = "INSERT INTO $tbl_session SET
name = '".Database::escape_string($session_name)."',
id_coach = '$coach_id',
access_start_date = '$date_start',
access_end_date = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id',
session_admin_id=".intval($_user['user_id']);
visibility = '$visibilityAfterExpirationPerSession',
".(!empty($session_category_id) ? "session_category_id = '{$session_category_id}'," : "")."
session_admin_id=".api_get_user_id();
$rs_session = Database::query($sql_session);
$session_id = Database::insert_id();
$session_counter++;
@ -285,7 +303,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
id_coach = '$coach_id',
access_start_date = '$date_start',
access_end_date = '$date_end',
visibility = '$visibility',
visibility = '$visibilityAfterExpirationPerSession',
session_category_id = '$session_category_id'
WHERE name = '$session_name'";
$rs_session = Database::query($sql_session);
@ -335,7 +353,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
c_id = $courseId,
session_id = $session_id";
$rs_course = Database::query($sql_course);
SessionManager::installCourse($id_session, $courseId);
SessionManager::installCourse($session_id, $courseId);
}
$course_coaches = explode(',', $node_course->Coach);

Loading…
Cancel
Save