Merge remote-tracking branch 'origin/1.10.x' into 1.10.x

1.10.x
Yannick Warnier 9 years ago
commit 66f73d1473
  1. 13
      app/Migrations/AbstractMigrationChamilo.php
  2. 20
      app/Migrations/Schema/V110/Version20150507152600.php
  3. 78
      app/Migrations/Schema/V110/Version20150522222222.php
  4. 366
      main/webservices/registration.soap.php

@ -122,4 +122,17 @@ abstract class AbstractMigrationChamilo extends AbstractMigration
}
$this->getEntityManager()->flush();
}
/**
* @param $variable
* @return mixed
*/
public function getConfigurationValue($variable)
{
global $_configuration;
if (isset($_configuration[$variable])) {
return $_configuration[$variable];
}
return false;
}
}

@ -27,7 +27,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// LDAP, CAS, Shibboleth, Facebook
// Setting $_configuration['hide_home_top_when_connected'] = true;
$value = api_get_configuration_value('hide_home_top_when_connected');
$value = $this->getConfigurationValue('hide_home_top_when_connected');
$this->addSettingCurrent(
'hide_home_top_when_connected',
@ -50,7 +50,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// Hide the global announcements for non-connected users
//$_configuration['hide_global_announcements_when_not_connected'] = true;
$value = api_get_configuration_value('hide_global_announcements_when_not_connected');
$value = $this->getConfigurationValue('hide_global_announcements_when_not_connected');
$this->addSettingCurrent(
'hide_global_announcements_when_not_connected',
'',
@ -72,7 +72,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// Use this course as template for all new courses (define course real ID as value)
//$_configuration['course_creation_use_template'] = 14;
$value = api_get_configuration_value('course_creation_use_template');
$value = $this->getConfigurationValue('course_creation_use_template');
$this->addSettingCurrent(
'course_creation_use_template',
'',
@ -94,7 +94,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// Add password strength checker
//$_configuration['allow_strength_pass_checker'] = true;
$value = api_get_configuration_value('allow_strength_pass_checker');
$value = $this->getConfigurationValue('allow_strength_pass_checker');
$this->addSettingCurrent(
'allow_strength_pass_checker',
'',
@ -116,7 +116,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// Enable captcha
// $_configuration['allow_captcha'] = true;
$value = api_get_configuration_value('allow_captcha');
$value = $this->getConfigurationValue('allow_captcha');
$this->addSettingCurrent(
'allow_captcha',
'',
@ -135,7 +135,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// Prevent account from logging in for a certain amount of time
// if captcha is wrong for the specified number of times
//$_configuration['captcha_number_mistakes_to_block_account'] = 5;
$value = api_get_configuration_value('captcha_number_mistakes_to_block_account');
$value = $this->getConfigurationValue('captcha_number_mistakes_to_block_account');
$this->addSettingCurrent(
'captcha_number_mistakes_to_block_account',
'',
@ -152,7 +152,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
);
// Prevent account from logging in for the specified number of minutes
//$_configuration['captcha_time_to_block'] = 5;//minutes
$value = api_get_configuration_value('captcha_time_to_block');
$value = $this->getConfigurationValue('captcha_time_to_block');
$this->addSettingCurrent(
'captcha_time_to_block',
'',
@ -170,7 +170,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// Allow DRH role to access all content and users from the sessions he follows
//$_configuration['drh_can_access_all_session_content'] = true;
$value = api_get_configuration_value('drh_can_access_all_session_content');
$value = $this->getConfigurationValue('drh_can_access_all_session_content');
$this->addSettingCurrent(
'drh_can_access_all_session_content',
'',
@ -189,7 +189,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// Display group's forum in general forum tool
//$_configuration['display_groups_forum_in_general_tool'] = true;
$value = api_get_configuration_value('display_groups_forum_in_general_tool');
$value = $this->getConfigurationValue('display_groups_forum_in_general_tool');
$this->addSettingCurrent(
'display_groups_forum_in_general_tool',
'',
@ -208,7 +208,7 @@ class Version20150507152600 extends AbstractMigrationChamilo
// Allow course tutors in sessions to add existing students to their session
//$_configuration['allow_tutors_to_assign_students_to_session'] = 'false';
$value = api_get_configuration_value('allow_tutors_to_assign_students_to_session');
$value = $this->getConfigurationValue('allow_tutors_to_assign_students_to_session');
$this->addSettingCurrent(
'allow_tutors_to_assign_students_to_session',
'',

@ -60,7 +60,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// LDAP, CAS, Shibboleth, Facebook
// Allow select the return link in the LP view
$value = api_get_configuration_value('allow_lp_return_link');
$value = $this->getConfigurationValue('allow_lp_return_link');
$this->addSettingCurrent(
'allow_lp_return_link',
'',
@ -78,7 +78,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
);
// If true the export link is blocked.
$value = api_get_configuration_value('hide_scorm_export_link');
$value = $this->getConfigurationValue('hide_scorm_export_link');
$this->addSettingCurrent(
'hide_scorm_export_link',
'',
@ -97,7 +97,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// If true the copy link is blocked.
//$_configuration['hide_scorm_copy_link'] = false;
$value = api_get_configuration_value('hide_scorm_copy_link');
$value = $this->getConfigurationValue('hide_scorm_copy_link');
$this->addSettingCurrent(
'hide_scorm_copy_link',
'',
@ -116,7 +116,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// If true the pdf export link is blocked.
//$_configuration['hide_scorm_pdf_link'] = false;
$value = api_get_configuration_value('hide_scorm_pdf_link');
$value = $this->getConfigurationValue('hide_scorm_pdf_link');
$this->addSettingCurrent(
'hide_scorm_pdf_link',
'',
@ -135,7 +135,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Default session days before coach access
//$_configuration['session_days_before_coach_access'] = 0;
$value = api_get_configuration_value('session_days_before_coach_access');
$value = $this->getConfigurationValue('session_days_before_coach_access');
$this->addSettingCurrent(
'session_days_before_coach_access',
'',
@ -154,7 +154,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Default session days after coach access
//$_configuration['session_days_after_coach_access'] = 0;
$value = api_get_configuration_value('session_days_after_coach_access');
$value = $this->getConfigurationValue('session_days_after_coach_access');
$this->addSettingCurrent(
'session_days_after_coach_access',
'',
@ -172,7 +172,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// PDF Logo header in app/Resources/public/css/themes/xxx/images/pdf_logo_header.png
//$_configuration['pdf_logo_header'] = false;
$value = api_get_configuration_value('pdf_logo_header');
$value = $this->getConfigurationValue('pdf_logo_header');
$this->addSettingCurrent(
'pdf_logo_header',
'',
@ -191,7 +191,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Order inscription user list by official_code
//$_configuration['order_user_list_by_official_code'] = false;
$value = api_get_configuration_value('order_user_list_by_official_code');
$value = $this->getConfigurationValue('order_user_list_by_official_code');
$this->addSettingCurrent(
'order_user_list_by_official_code',
'',
@ -210,7 +210,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Default course setting "email_alert_manager_on_new_quiz"
//$_configuration['email_alert_manager_on_new_quiz'] = 1;
$value = api_get_configuration_value('email_alert_manager_on_new_quiz');
$value = $this->getConfigurationValue('email_alert_manager_on_new_quiz');
$this->addSettingCurrent(
'email_alert_manager_on_new_quiz',
'',
@ -229,7 +229,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Show official code in exercise report list.
//$_configuration['show_official_code_exercise_result_list'] = false;
$value = api_get_configuration_value('show_official_code_exercise_result_list');
$value = $this->getConfigurationValue('show_official_code_exercise_result_list');
$this->addSettingCurrent(
'show_official_code_exercise_result_list',
'',
@ -249,7 +249,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Hide private courses from course catalog
//$_configuration['course_catalog_hide_private'] = false;
$value = api_get_configuration_value('course_catalog_hide_private');
$value = $this->getConfigurationValue('course_catalog_hide_private');
$this->addSettingCurrent(
'course_catalog_hide_private',
'',
@ -269,7 +269,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Display sessions catalog
// 0 = show only courses; 1 = show only sessions; 2 = show courses and sessions
//$_configuration['catalog_show_courses_sessions'] = 0;
$value = api_get_configuration_value('catalog_show_courses_sessions');
$value = $this->getConfigurationValue('catalog_show_courses_sessions');
$this->addSettingCurrent(
'catalog_show_courses_sessions',
'',
@ -288,7 +288,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Auto detect language custom pages.
// $_configuration['auto_detect_language_custom_pages'] = true;
$value = api_get_configuration_value('auto_detect_language_custom_pages');
$value = $this->getConfigurationValue('auto_detect_language_custom_pages');
$this->addSettingCurrent(
'auto_detect_language_custom_pages',
'',
@ -307,7 +307,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Show reduce LP report
//$_configuration['lp_show_reduced_report'] = false;
$value = api_get_configuration_value('lp_show_reduced_report');
$value = $this->getConfigurationValue('lp_show_reduced_report');
$this->addSettingCurrent(
'lp_show_reduced_report',
'',
@ -326,7 +326,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
//Allow session-to-session copy
//$_configuration['allow_session_course_copy_for_teachers'] = true;
$value = api_get_configuration_value('allow_session_course_copy_for_teachers');
$value = $this->getConfigurationValue('allow_session_course_copy_for_teachers');
$this->addSettingCurrent(
'allow_session_course_copy_for_teachers',
'',
@ -345,7 +345,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Hide the logout button
//$_configuration['hide_logout_button'] = true;
$value = api_get_configuration_value('hide_logout_button');
$value = $this->getConfigurationValue('hide_logout_button');
$this->addSettingCurrent(
'hide_logout_button',
'',
@ -364,7 +364,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Prevent redirecting admin to admin page
//$_configuration['redirect_admin_to_courses_list'] = true;
$value = api_get_configuration_value('redirect_admin_to_courses_list');
$value = $this->getConfigurationValue('redirect_admin_to_courses_list');
$this->addSettingCurrent(
'redirect_admin_to_courses_list',
'',
@ -383,7 +383,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Shows the custom course icon instead of the classic green board icon
//$_configuration['course_images_in_courses_list'] = false;
$value = api_get_configuration_value('course_images_in_courses_list');
$value = $this->getConfigurationValue('course_images_in_courses_list');
$this->addSettingCurrent(
'course_images_in_courses_list',
'',
@ -402,7 +402,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Which student publication will be taken when connected to the gradebook: first|last
//$_configuration['student_publication_to_take_in_gradebook'] = 'first';
$value = api_get_configuration_value('student_publication_to_take_in_gradebook');
$value = $this->getConfigurationValue('student_publication_to_take_in_gradebook');
$this->addSettingCurrent(
'student_publication_to_take_in_gradebook',
'',
@ -421,7 +421,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Show a filter by official code
//$_configuration['certificate_filter_by_official_code'] = false;
$value = api_get_configuration_value('certificate_filter_by_official_code');
$value = $this->getConfigurationValue('certificate_filter_by_official_code');
$this->addSettingCurrent(
'certificate_filter_by_official_code',
'',
@ -441,7 +441,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Max quantity of fkceditor allowed in the exercise result page otherwise
// Textareas are used.
//$_configuration['exercise_max_ckeditors_in_page'] = 0;
$value = api_get_configuration_value('exercise_max_ckeditors_in_page');
$value = $this->getConfigurationValue('exercise_max_ckeditors_in_page');
$this->addSettingCurrent(
'exercise_max_ckeditors_in_page',
'',
@ -460,7 +460,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Default upload option
//$_configuration['document_if_file_exists_option'] = 'rename'; // overwrite
$value = api_get_configuration_value('document_if_file_exists_option');
$value = $this->getConfigurationValue('document_if_file_exists_option');
$this->addSettingCurrent(
'document_if_file_exists_option',
'',
@ -478,7 +478,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
);
// Enable add_gradebook_certificates.php cron task
//$_configuration['add_gradebook_certificates_cron_task_enabled'] = true;
$value = api_get_configuration_value('add_gradebook_certificates_cron_task_enabled');
$value = $this->getConfigurationValue('add_gradebook_certificates_cron_task_enabled');
$this->addSettingCurrent(
'add_gradebook_certificates_cron_task_enabled',
'',
@ -497,7 +497,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Which OpenBadges backpack send the badges
//$_configuration['openbadges_backpack'] = 'https://backpack.openbadges.org/';
$value = api_get_configuration_value('openbadges_backpack');
$value = $this->getConfigurationValue('openbadges_backpack');
$this->addSettingCurrent(
'openbadges_backpack',
'',
@ -516,7 +516,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Shows a warning message explaining that the site uses cookies
//$_configuration['cookie_warning'] = false;
$value = api_get_configuration_value('cookie_warning');
$value = $this->getConfigurationValue('cookie_warning');
$this->addSettingCurrent(
'cookie_warning',
'',
@ -535,7 +535,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// If there are any tool available and the user is not registered hide the group
//$_configuration['hide_course_group_if_no_tools_available'] = false;
$value = api_get_configuration_value('hide_course_group_if_no_tools_available');
$value = $this->getConfigurationValue('hide_course_group_if_no_tools_available');
$this->addSettingCurrent(
'hide_course_group_if_no_tools_available',
'',
@ -554,7 +554,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Allow student to enroll into a session without an approval needing
//$_configuration['catalog_allow_session_auto_subscription'] = false;
$value = api_get_configuration_value('catalog_allow_session_auto_subscription');
$value = $this->getConfigurationValue('catalog_allow_session_auto_subscription');
$this->addSettingCurrent(
'catalog_allow_session_auto_subscription',
'',
@ -573,7 +573,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Decode UTF-8 from Web Services (option passed to SOAP)
//$_configuration['registration.soap.php.decode_utf8'] = false;
$value = api_get_configuration_value('registration.soap.php.decode_utf8');
$value = $this->getConfigurationValue('registration.soap.php.decode_utf8');
$this->addSettingCurrent(
'registration.soap.php.decode_utf8',
'',
@ -592,7 +592,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Show delete option in attendance
//$_configuration['allow_delete_attendance'] = false;
$value = api_get_configuration_value('allow_delete_attendance');
$value = $this->getConfigurationValue('allow_delete_attendance');
$this->addSettingCurrent(
'allow_delete_attendance',
'',
@ -611,7 +611,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Enable Gravatar profile image if no local image has been given
//$_configuration['gravatar_enabled'] = true;
$value = api_get_configuration_value('gravatar_enabled');
$value = $this->getConfigurationValue('gravatar_enabled');
$this->addSettingCurrent(
'gravatar_enabled',
'',
@ -631,7 +631,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// If Gravatar is enabled, tells which type of picture we want (default is "mm").
// Options: mm | identicon | monsterid | wavatar
//$_configuration['gravatar_type'] = 'mm';
$value = api_get_configuration_value('gravatar_type');
$value = $this->getConfigurationValue('gravatar_type');
$this->addSettingCurrent(
'gravatar_type',
'',
@ -657,7 +657,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// User block -> Add user
// Course Sessions block -> Training session list
//$_configuration['limit_session_admin_role'] = false;
$value = api_get_configuration_value('limit_session_admin_role');
$value = $this->getConfigurationValue('limit_session_admin_role');
$this->addSettingCurrent(
'limit_session_admin_role',
'',
@ -676,7 +676,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Show session description
//$_configuration['show_session_description'] = false;
$value = api_get_configuration_value('show_session_description');
$value = $this->getConfigurationValue('show_session_description');
$this->addSettingCurrent(
'show_session_description',
'',
@ -695,7 +695,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Hide only for students the link to export certificates to PDF
//$_configuration['hide_certificate_export_link_students'] = false;
$value = api_get_configuration_value('hide_certificate_export_link_students');
$value = $this->getConfigurationValue('hide_certificate_export_link_students');
$this->addSettingCurrent(
'hide_certificate_export_link_students',
'',
@ -714,7 +714,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Hide for all user roles the link to export certificates to PDF
//$_configuration['hide_certificate_export_link'] = false;
$value = api_get_configuration_value('hide_certificate_export_link');
$value = $this->getConfigurationValue('hide_certificate_export_link');
$this->addSettingCurrent(
'hide_certificate_export_link',
'',
@ -733,7 +733,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// Hide session course coach in dropbox sent to user list
//$_configuration['dropbox_hide_course_coach'] = false;
$value = api_get_configuration_value('dropbox_hide_course_coach');
$value = $this->getConfigurationValue('dropbox_hide_course_coach');
$this->addSettingCurrent(
'dropbox_hide_course_coach',
'',
@ -750,7 +750,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
[0 => ['value' => 'true', 'text' => 'Yes'], 1 => ['value' => 'false', 'text' => 'No']]
);
$value = api_get_configuration_value('dropbox_hide_general_coach');
$value = $this->getConfigurationValue('dropbox_hide_general_coach');
$this->addSettingCurrent(
'dropbox_hide_general_coach',
'',
@ -769,7 +769,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// If SSO is used, the redirection to the master server is forced.
//$_configuration['force_sso_redirect'] = false;
$value = api_get_configuration_value('force_sso_redirect');
$value = $this->getConfigurationValue('force_sso_redirect');
$this->addSettingCurrent(
'sso_force_redirect',
'',
@ -790,7 +790,7 @@ class Version20150522222222 extends AbstractMigrationChamilo
// false = alphabetic order (default)
// true = based in the session course list
//$_configuration['session_course_ordering'] = false;
$value = api_get_configuration_value('session_course_ordering');
$value = $this->getConfigurationValue('session_course_ordering');
$this->addSettingCurrent(
'session_course_ordering',
'',

@ -4935,10 +4935,6 @@ function WSUnSubscribeUserFromCourseSimple($params)
return $result;
}
$server->wsdl->addComplexType(
'subscribeUserToCourseParams',
'complexType',
@ -5057,20 +5053,18 @@ $server->register('WSSuscribeUsersToSession', // method
function WSSuscribeUsersToSession($params)
{
global $debug;
if (!WSHelperVerifyKey($params)) {
return return_error(WS_ERROR_SECRET_KEY);
}
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$userssessions_params = $params['userssessions'];
if ($debug) {
error_log('WSSuscribeUsersToSession');
error_log(print_r($params, 1));
}
$results = array();
$orig_user_id_value = array();
$orig_session_id_value = array();
@ -5091,17 +5085,16 @@ function WSSuscribeUsersToSession($params)
continue;
}
$usersList = array();
foreach ($original_user_id_values as $key => $row_original_user_list) {
$user_id = UserManager::get_user_id_from_original_id(
$row_original_user_list['original_user_id_value'],
$original_user_id_name
);
if ($debug) {
error_log(" User to subscribe: $user_id");
error_log("User to subscribe: $user_id");
}
if ($user_id == 0) {
continue; // user_id doesn't exist.
} else {
@ -5112,95 +5105,15 @@ function WSSuscribeUsersToSession($params)
if (!empty($r_check_user[0])) {
continue; // user_id is not active.
}
}
$usersList[] = $user_id;
}
if (empty($usersList)) {
$results[] = 0;
continue;
}
$orig_user_id_value[] = implode(',', $usersList);
if ($sessionId != strval(intval($sessionId))) {
$results[] = 0;
continue;
}
$sql = "SELECT user_id FROM $tbl_session_rel_user
WHERE session_id='$sessionId' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."";
$result = Database::query($sql);
$existingUsers = array();
while($row = Database::fetch_array($result)){
$existingUsers[] = $row['user_id'];
}
$sql = "SELECT c_id FROM $tbl_session_rel_course WHERE session_id='$sessionId'";
$result=Database::query($sql);
$CourseList = array();
SessionManager::suscribe_users_to_session($sessionId, $user_id);
$orig_user_id_value[] = $row_original_user_list['original_user_id_value'];
$orig_session_id_value[] = $original_session_id_value;
$results[] = 1;
while ($row = Database::fetch_array($result)) {
$CourseList[] = $row['c_id'];
}
foreach ($CourseList as $enreg_course) {
// For each course in the session...
$nbr_users = 0;
$enreg_course = Database::escape_string($enreg_course);
// insert new users into session_rel_course_rel_user and ignore if they already exist
foreach ($usersList as $enreg_user) {
if (!in_array($enreg_user, $existingUsers)) {
$enreg_user = Database::escape_string($enreg_user);
$sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(session_id, c_id, user_id)
VALUES('$sessionId', '$enreg_course', '$enreg_user')";
$result = Database::query($sql);
Event::addEvent(
LOG_SESSION_ADD_USER_COURSE,
LOG_USER_ID,
$enreg_user,
api_get_utc_datetime(),
api_get_user_id(),
$enreg_course,
$sessionId
);
if (Database::affected_rows($result)) {
$nbr_users++;
}
}
if ($debug) error_log("subscribe user:$user_id to session $sessionId");
}
// count users in this session-course relation
$sql = "SELECT COUNT(user_id) as nbUsers
FROM $tbl_session_rel_course_rel_user
WHERE session_id = '$sessionId' AND c_id='$enreg_course'";
$rs = Database::query($sql);
list($nbr_users) = Database::fetch_array($rs);
// update the session-course relation to add the users total
$update_sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users
WHERE session_id='$sessionId' AND c_id='$enreg_course'";
Database::query($update_sql);
}
// insert missing users into session
$nbr_users = 0;
foreach ($usersList as $enreg_user) {
$enreg_user = Database::escape_string($enreg_user);
$nbr_users++;
$sql = "INSERT IGNORE INTO $tbl_session_rel_user(session_id, user_id, registered_at)
VALUES ('$sessionId','$enreg_user', '" . api_get_utc_datetime() . "')";
Database::query($sql);
}
// update number of users in the session
$nbr_users = count($usersList);
$sql = "UPDATE $tbl_session SET nbr_users= $nbr_users WHERE id='$sessionId' ";
$result = Database::query($sql);
Database::affected_rows($result);
$results[] = 1;
continue;
} // end principal foreach
$count_results = count($results);
@ -5365,17 +5278,19 @@ $server->register('WSUnsuscribeUsersFromSession', /
);
// define the method WSUnsuscribeUsersFromSession
function WSUnsuscribeUsersFromSession($params) {
if(!WSHelperVerifyKey($params)) {
function WSUnsuscribeUsersFromSession($params)
{
if (!WSHelperVerifyKey($params)) {
return return_error(WS_ERROR_SECRET_KEY);
}
global $debug;
if ($debug) {
error_log('WSUnsuscribeUsersFromSession with params=[' . serialize($params). ']');
}
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$userssessions_params = $params['userssessions'];
$results = array();
@ -5400,12 +5315,12 @@ function WSUnsuscribeUsersFromSession($params) {
continue;
}
$usersList = array();
foreach ($original_user_id_values as $key => $row_original_user_list) {
$user_id = UserManager::get_user_id_from_original_id(
$original_user_id_values[$key],
$original_user_id_name[$key]
$row_original_user_list['original_user_id_value'],
$original_user_id_name
);
if ($user_id == 0) {
continue; // user_id doesn't exist.
} else {
@ -5416,103 +5331,19 @@ function WSUnsuscribeUsersFromSession($params) {
if (!empty($r_check_user[0])) {
continue; // user_id is not active.
}
}
$usersList[] = $user_id;
}
if (empty($usersList)) {
$results[] = 0;
continue;
}
$orig_user_id_value[] = implode(',', $usersList);
if ($id_session!= strval(intval($id_session))) {
$results[] = 0;
continue;
}
$sql = "SELECT user_id FROM $tbl_session_rel_user
WHERE session_id ='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."";
$result = Database::query($sql);
$existingUsers = array();
while($row = Database::fetch_array($result)){
$existingUsers[] = $row['user_id'];
}
$sql = "SELECT c_id FROM $tbl_session_rel_course WHERE session_id='$id_session'";
$result = Database::query($sql);
$CourseList = array();
while ($row = Database::fetch_array($result)) {
$CourseList[] = $row['c_id'];
}
foreach ($CourseList as $enreg_course) {
// for each course in the session
$nbr_users = 0;
$enreg_course = Database::escape_string($enreg_course);
SessionManager::unsubscribe_user_from_session(
$id_session,
$user_id
);
foreach ($existingUsers as $existing_user) {
if (!in_array($existing_user, $usersList)) {
$sql = "DELETE FROM $tbl_session_rel_course_rel_user
WHERE session_id ='$id_session' AND c_id='$enreg_course' AND user_id='$existing_user'";
$result = Database::query($sql);
$orig_user_id_value[] = $row_original_user_list['original_user_id_value'];
$orig_session_id_value[] = $original_session_id_value;
$results[] = 1;
if (Database::affected_rows($result)) {
$nbr_users--;
}
}
if ($debug) error_log("Unsubscribe user:$user_id to session:$id_session");
}
// Count users in this session-course relation.
$sql = "SELECT COUNT(user_id) as nbUsers
FROM $tbl_session_rel_course_rel_user
WHERE session_id = '$id_session' AND c_id='$enreg_course'";
$rs = Database::query($sql);
list($nbr_users) = Database::fetch_array($rs);
// update the session-course relation to add the users total
$update_sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users
WHERE session_id ='$id_session' AND c_id ='$enreg_course'";
Database::query($update_sql);
}
// Insert missing users into session.
foreach ($usersList as $enreg_user) {
$enreg_user = Database::escape_string($enreg_user);
$delete_sql = "DELETE FROM $tbl_session_rel_user
WHERE
session_id = '$id_session' AND
user_id = '$enreg_user' AND
relation_type<>".SESSION_RELATION_TYPE_RRHH."";
$result = Database::query($delete_sql);
Event::addEvent(
LOG_SESSION_DELETE_USER,
LOG_USER_ID,
$enreg_user,
api_get_utc_datetime(),
api_get_user_id(),
0,
$id_session
);
$return = Database::affected_rows($result);
}
$nbr_users = 0;
$sql = "SELECT nbr_users FROM $tbl_session WHERE id = '$id_session'";
$res_nbr_users = Database::query($sql);
$row_nbr_users = Database::fetch_row($res_nbr_users);
if (Database::num_rows($res_nbr_users) > 0) {
$nbr_users = ($row_nbr_users[0] - $return);
}
// Update number of users in the session.
$update_sql = "UPDATE $tbl_session SET nbr_users= $nbr_users WHERE id='$id_session' ";
$result = Database::query($update_sql);
$return = Database::affected_rows($result);
$results[] = 1;
continue;
} // end principal foreach
$count_results = count($results);
@ -5541,8 +5372,6 @@ array(),
array(array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'string[]')),
'xsd:string'
);*/
$server->wsdl->addComplexType(
'course_code_type',
'complexType',
@ -5661,13 +5490,6 @@ function WSSuscribeCoursesToSession($params) {
if ($debug) error_log('WSSuscribeCoursesToSession: '.print_r($params, 1));
// initialisation
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$coursessessions_params = $params['coursessessions'];
$results = array();
$orig_course_id_value = array();
@ -5680,27 +5502,15 @@ function WSSuscribeCoursesToSession($params) {
$original_course_id_values = $coursesession_param['original_course_id_values'];
$orig_session_id_value[] = $original_session_id_value;
$id_session = SessionManager::getSessionIdFromOriginalId(
$sessionId = SessionManager::getSessionIdFromOriginalId(
$original_session_id_value,
$original_session_id_name
);
if (empty($id_session)) {
$results[] = 0;
continue;
}
// Get course list from row_original_course_id_values
$course_list = [];
$courseCodeList = [];
foreach ($original_course_id_values as $row_original_course_list) {
$course_code = Database::escape_string($row_original_course_list['course_code']);
$courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id'];
$courseInfo = CourseManager::getCourseInfoFromOriginalId(
$course_code,
$row_original_course_list['course_code'],
$original_course_id_name
);
@ -5709,111 +5519,20 @@ function WSSuscribeCoursesToSession($params) {
) {
$results[] = 0;
continue; // Original_course_id_value doesn't exist.
}
$courseCodeList[] = $courseInfo['code'];
$course_list[] = $courseInfo['real_id'];
}
if (empty($course_list)) {
$results[] = 0;
continue;
}
$orig_course_id_value[] = implode(',', $courseCodeList);
// Get general coach ID
$sql = "SELECT id_coach FROM $tbl_session WHERE id='$id_session'";
$id_coach = Database::query($sql);
$id_coach = Database::fetch_array($id_coach);
$id_coach = $id_coach[0];
// get list of courses subscribed to this session
$sql = "SELECT c_id FROM $tbl_session_rel_course WHERE session_id ='$id_session'";
$rs = Database::query($sql);
$existingCourses = Database::store_result($rs);
$nbr_courses = count($existingCourses);
// get list of users subscribed to this session
$sql= "SELECT user_id FROM $tbl_session_rel_user
WHERE session_id = '$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."";
$result = Database::query($sql);
$user_list = Database::store_result($result);
$course_directory = array();
// Pass through the courses list we want to add to the session.
foreach ($course_list as $enreg_course) {
$enreg_course = Database::escape_string($enreg_course);
$exists = false;
// Check if the course we want to add is already subscribed.
foreach ($existingCourses as $existingCourse) {
if ($enreg_course == $existingCourse['c_id']) {
$exists = true;
}
}
if (!$exists) {
// if the course isn't subscribed yet
$sql = "INSERT INTO $tbl_session_rel_course (session_id, c_id)
VALUES ('$id_session','$enreg_course')";
Database::query($sql);
Event::addEvent(
LOG_SESSION_ADD_COURSE,
LOG_COURSE_ID,
$enreg_course,
api_get_utc_datetime(),
api_get_user_id(),
$enreg_course,
$id_session
} else {
$courseCode = $courseInfo['code'];
SessionManager::add_courses_to_session(
$sessionId,
array($courseCode),
false
);
if ($debug) error_log("add_courses_to_session: course:$courseCode to session:$sessionId");
// We add the current course in the existing courses array,
// to avoid adding another time the current course
$existingCourses[] = array('c_id' => $enreg_course);
$nbr_courses++;
// subscribe all the users from the session to this course inside the session
$nbr_users = 0;
foreach ($user_list as $enreg_user) {
$enreg_user_id = Database::escape_string($enreg_user['user_id']);
$sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user (session_id, c_id, user_id)
VALUES ('$id_session','$enreg_course','$enreg_user_id')";
Event::addEvent(
LOG_SESSION_ADD_USER_COURSE,
LOG_USER_ID,
$enreg_user_id,
api_get_utc_datetime(),
api_get_user_id(),
$enreg_course,
$id_session
);
$result = Database::query($sql);
if (Database::affected_rows($result)) {
$nbr_users++;
}
}
$sql = "UPDATE $tbl_session_rel_course SET
nbr_users = $nbr_users
WHERE session_id='$id_session' AND c_id='$enreg_course'";
Database::query($sql);
$sql_directory = "SELECT directory FROM $tbl_course WHERE id = '$enreg_course'";
$res_directory = Database::query($sql_directory);
$row_directory = Database::fetch_row($res_directory);
$course_directory[] = $row_directory[0];
$results[] = 1;
$orig_course_id_value[] = $original_session_id_value;
$orig_session_id_value[] = $row_original_course_list['course_code'];
}
}
Database::query("UPDATE $tbl_session SET nbr_courses=$nbr_courses WHERE id='$id_session'");
$course_directory[] = $id_session;
$cad_course_directory = implode(',', $course_directory);
$results[] = $cad_course_directory;
continue;
}
$count_results = count($results);
@ -5825,6 +5544,7 @@ function WSSuscribeCoursesToSession($params) {
'result' => $results[$i]
);
}
return $output;
}

Loading…
Cancel
Save