/** * Subscribe the user to a given course * @param string Course code * @return string Message about results */ public function subscribe_user($course_code) { $user_id = api_get_user_id(); $all_course_information = CourseManager::get_course_information($course_code); if ($all_course_information['registration_code'] == '' || $_POST['course_registration_code'] == $all_course_information['registration_code']) { if (api_is_platform_admin()) { $status_user_in_new_course = COURSEMANAGER; } else { $status_user_in_new_course = null; } if (CourseManager::add_user_to_course($user_id, $course_code, $status_user_in_new_course)) { $send = api_get_course_setting('email_alert_to_teacher_on_new_user_in_course', $course_code); if ($send == 1) { CourseManager::email_to_tutor($user_id, $course_code, $send_to_tutor_also = false); } else { if ($send == 2) { CourseManager::email_to_tutor($user_id, $course_code, $send_to_tutor_also = true); } } $url = Display::url($all_course_information['title'], api_get_course_url($course_code)); $message = sprintf(get_lang('EnrollToCourseXSuccessful'), $url); } else { $message = get_lang('ErrorContactPlatformAdmin'); } return array('message' => $message); } else { if (isset($_POST['course_registration_code']) && $_POST['course_registration_code'] != $all_course_information['registration_code']) { return false; } $message = get_lang('CourseRequiresPassword') . '<br />'; $message .= $all_course_information['title'] . ' (' . $all_course_information['visual_code'] . ') '; $action = api_get_path(WEB_CODE_PATH) . "auth/courses.php?action=subscribe_user_with_password&sec_token=" . $_SESSION['sec_token']; $form = new FormValidator('subscribe_user_with_password', 'post', $action); $form->addElement('hidden', 'sec_token', $_SESSION['sec_token']); $form->addElement('hidden', 'subscribe_user_with_password', $all_course_information['code']); $form->addElement('text', 'course_registration_code'); $form->addButton(get_lang('SubmitRegistrationCode')); $content = $form->returnForm(); return array('message' => $message, 'content' => $content); } }
function WSSubscribeUserToCourseSimple($params) { global $debug; if ($debug) { error_log('WSSubscribeUserToCourseSimple'); } if ($debug) { error_log('Params ' . print_r($params, 1)); } if (!WSHelperVerifyKey($params)) { return return_error(WS_ERROR_SECRET_KEY); } $result = array(); $course_code = $params['course']; //Course code $user_id = $params['user_id']; //chamilo user id $status = STUDENT; // Get user id $user_data = api_get_user_info($user_id); if (empty($user_data)) { // If user was not found, there was a problem $result = "User {$user_id} does not exist"; if ($debug) { error_log($result); } return $result; } if (!empty($course_code)) { $course_data = CourseManager::get_course_information($course_code); if (empty($course_data)) { // Course was not found $result = "Course {$course_code} does not exist in the platform "; if ($debug) { error_log($result); } } else { if ($debug) { error_log('Try to register: user_id= ' . $user_id . ' to course: ' . $course_data['code']); } if (!CourseManager::add_user_to_course($user_id, $course_data['code'], $status)) { $result = 'User was not registered possible reasons: User already registered to the course, Course visibility doesnt allow user subscriptions '; if ($debug) { error_log($result); } } else { if ($debug) { error_log('User registered to the course: ' . $course_data['code']); } $result = 1; } } } return $result; }
/** * Subscribe a user to a course. No checks are performed here to see if * course subscription is allowed. * @param int User ID * @param string Course code * @param int Status (STUDENT, COURSEMANAGER, COURSE_ADMIN, NORMAL_COURSE_MEMBER) * @return bool True on success, false on failure * @see add_user_to_course * @assert ('', '') === false */ public static function subscribe_user($user_id, $course_code, $status = STUDENT, $session_id = 0, $userCourseCategoryId = 0) { if ($user_id != strval(intval($user_id))) { return false; //detected possible SQL injection } $course_code = Database::escape_string($course_code); $courseInfo = api_get_course_info($course_code); $courseId = $courseInfo['real_id']; $courseCode = $courseInfo['code']; $userCourseCategoryId = intval($userCourseCategoryId); if (empty($user_id) || empty($course_code)) { return false; } if (!empty($session_id)) { $session_id = intval($session_id); } else { $session_id = api_get_session_id(); } $status = $status == STUDENT || $status == COURSEMANAGER ? $status : STUDENT; //$role_id = ($status == COURSEMANAGER) ? COURSE_ADMIN : NORMAL_COURSE_MEMBER; // A preliminary check whether the user has bben already registered on the platform. if (Database::num_rows(Database::query("SELECT status FROM " . Database::get_main_table(TABLE_MAIN_USER) . "\n WHERE user_id = '{$user_id}' ")) == 0) { return false; // The user has not been registered to the platform. } // Check whether the user has not been already subscribed to the course. if (empty($session_id)) { if (Database::num_rows(Database::query("\n SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . "\n WHERE user_id = '{$user_id}' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND c_id = '{$courseId}'")) > 0) { // The user has been already subscribed to the course. return false; } } if (!empty($session_id)) { SessionManager::subscribe_users_to_session_course(array($user_id), $session_id, $courseCode); } else { CourseManager::add_user_to_course($user_id, $courseCode, $status); // Add event to the system log Event::addEvent(LOG_SUBSCRIBE_USER_TO_COURSE, LOG_COURSE_CODE, $course_code, api_get_utc_datetime(), api_get_user_id()); $user_info = api_get_user_info($user_id); Event::addEvent(LOG_SUBSCRIBE_USER_TO_COURSE, LOG_USER_OBJECT, $user_info, api_get_utc_datetime(), api_get_user_id()); } return true; }
/** * Regiser a user to a course. * Returns true on success, false otherwise. * * @param string $course_code * @param string $registration_code * @param int $user_id * @return bool */ function subscribe_user($course_code, $registration_code = '', $user_id = null) { $course = $this->retrieve_course($course_code); $course_regisration_code = $course['registration_code']; if (!empty($course_regisration_code) && $registration_code != $course_regisration_code) { return false; } if (empty($user_id)) { global $_user; $user_id = $_user['user_id']; } return (bool) CourseManager::add_user_to_course($user_id, $course_code); }
/** * Saves imported data. */ function save_data($users_courses) { $user_table = Database::get_main_table(TABLE_MAIN_USER); $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $csv_data = array(); foreach ($users_courses as $user_course) { $csv_data[$user_course['UserName']][$user_course['CourseCode']] = $user_course['Status']; } foreach ($csv_data as $username => $csv_subscriptions) { $sql = "SELECT * FROM {$user_table} u WHERE u.username = '******'"; $res = Database::query($sql); $obj = Database::fetch_object($res); $user_id = $obj->user_id; $sql = "SELECT * FROM {$course_user_table} cu\n\t\t WHERE cu.user_id = {$user_id} AND cu.relation_type<>" . COURSE_RELATION_TYPE_RRHH . " "; $res = Database::query($sql); $db_subscriptions = array(); while ($obj = Database::fetch_object($res)) { $db_subscriptions[$obj->c_id] = $obj->status; } $csvCourseList = array(); foreach ($csv_subscriptions as $courseCode => $status) { $courseInfo = api_get_course_info($courseCode); if ($courseInfo) { $csvCourseList[$courseInfo['real_id']] = $status; } } $to_subscribe = array_diff(array_keys($csvCourseList), array_keys($db_subscriptions)); $to_unsubscribe = array_diff(array_keys($db_subscriptions), array_keys($csvCourseList)); global $inserted_in_course; if (!isset($inserted_in_course)) { $inserted_in_course = array(); } if (isset($_POST['subscribe']) && $_POST['subscribe']) { foreach ($to_subscribe as $courseId) { CourseManager::add_user_to_course($user_id, $courseId, $csvCourseList[$courseId]); $course_info = api_get_course_info_by_id($courseId); $inserted_in_course[$courseId] = $course_info['title']; } } if (isset($_POST['unsubscribe']) && $_POST['unsubscribe']) { foreach ($to_unsubscribe as $courseId) { CourseManager::unsubscribe_user($user_id, $courseId); $course_info = api_get_course_info_by_id($courseId); $inserted_in_course[$courseId] = $course_info['title']; } } } }
/** * Saves imported data. * @param array List of courses */ function save_data($courses) { global $purification_option_for_usernames; $user_table = Database::get_main_table(TABLE_MAIN_USER); $msg = ''; foreach ($courses as $index => $course) { $course_language = api_get_valid_language($course['Language']); $username = ''; $teachers = getTeacherListInArray($course['Teacher']); $teacherList = array(); $creatorId = api_get_user_id(); if (!empty($teachers)) { foreach ($teachers as $teacher) { $teacherInfo = api_get_user_info_from_username($teacher); if (!empty($teacherInfo)) { $teacherList[] = $teacherInfo; } } } $params = array(); $params['title'] = $course['Title']; $params['wanted_code'] = $course['Code']; $params['tutor_name'] = null; $params['course_category'] = $course['CourseCategory']; $params['course_language'] = $course_language; $params['user_id'] = $creatorId; $course_info = CourseManager::create_course($params); if (!empty($course_info)) { if (!empty($teacherList)) { foreach ($teacherList as $teacher) { CourseManager::add_user_to_course($teacher['user_id'], $course_info['code'], COURSEMANAGER); } } $msg .= '<a href="' . api_get_path(WEB_COURSE_PATH) . $course_info['directory'] . '/"> ' . $course_info['title'] . '</a> ' . get_lang('Created') . '<br />'; } } if (!empty($msg)) { Display::display_normal_message($msg, false); } }
/** * Saves imported data. * @param array $courses List of courses */ function save_data($courses) { $msg = ''; foreach ($courses as $course) { $course_language = $course['Language']; $teachers = getTeacherListInArray($course['Teacher']); $teacherList = array(); $creatorId = api_get_user_id(); if (!empty($teachers)) { foreach ($teachers as $teacher) { $teacherInfo = api_get_user_info_from_username($teacher); if (!empty($teacherInfo)) { $teacherList[] = $teacherInfo; } } } $params = array(); $params['title'] = $course['Title']; $params['wanted_code'] = $course['Code']; $params['tutor_name'] = null; $params['course_category'] = $course['CourseCategory']; $params['course_language'] = $course_language; $params['user_id'] = $creatorId; $addMeAsTeacher = isset($_POST['add_me_as_teacher']) ? $_POST['add_me_as_teacher'] : false; $params['add_user_as_teacher'] = $addMeAsTeacher; $courseInfo = CourseManager::create_course($params); if (!empty($courseInfo)) { if (!empty($teacherList)) { foreach ($teacherList as $teacher) { CourseManager::add_user_to_course($teacher['user_id'], $courseInfo['code'], COURSEMANAGER); } } $msg .= '<a href="' . api_get_path(WEB_COURSE_PATH) . $courseInfo['directory'] . '/"> ' . $courseInfo['title'] . '</a> ' . get_lang('Created') . '<br />'; } } if (!empty($msg)) { Display::display_normal_message($msg, false); } }
} echo '<br /><br />'; echo '<a href="ldap_import_students.php?annee=&composante=&etape=">' . get_lang('BackToNewSearch') . '</a>'; echo '<br /><br />'; echo '</div>'; } elseif (!empty($annee) && !empty($course) && $_POST['confirmed'] == 'yes') { $id = $_POST['username_form']; $UserList = array(); $userid_match_login = array(); foreach ($id as $form_index => $user_id) { if (is_array($_POST['checkboxes']) && in_array($form_index, array_values($_POST['checkboxes']))) { $tmp = ldap_add_user($user_id); $UserList[] = $tmp; $userid_match_login[$tmp] = $user_id; } } if (!empty($_POST['course'])) { foreach ($UserList as $user_id) { CourseManager::add_user_to_course($user_id, $_POST['course']); } header('Location: course_information.php?code=' . Security::remove_XSS($_POST['course'])); } else { Display::display_header($tool_name); $message = get_lang('NoUserAdded'); Display::display_normal_message($message, false); } echo '<br /><br />'; echo '<a href="ldap_import_students.php?annee=&composante=&etape=">' . get_lang('BackToNewSearch') . '</a>'; echo '<br /><br />'; } Display::display_footer();
echo '<a href="ldap_import_students.php?annee=&composante=&etape=">' . get_lang('BackToNewSearch') . '</a>'; echo '<br /><br />'; echo '</div>'; } elseif (!empty($annee) && !empty($course) && $_POST['confirmed'] == 'yes') { $id = $_POST['username_form']; $UserList = array(); $userid_match_login = array(); foreach ($id as $form_index => $user_id) { if (is_array($_POST['checkboxes']) && in_array($form_index, array_values($_POST['checkboxes']))) { $tmp = ldap_add_user($user_id); $UserList[] = $tmp; $userid_match_login[$tmp] = $user_id; } } $courseInfo = api_get_course_info($_POST['course']); if (!empty($courseInfo)) { foreach ($UserList as $user_id) { CourseManager::add_user_to_course($user_id, $courseInfo['real_id']); } header('Location: course_information.php?code=' . Security::remove_XSS($_POST['course'])); exit; } else { Display::display_header($tool_name); $message = get_lang('NoUserAdded'); Display::display_normal_message($message, false); } echo '<br /><br />'; echo '<a href="ldap_import_students.php?annee=&composante=&etape=">' . get_lang('BackToNewSearch') . '</a>'; echo '<br /><br />'; } Display::display_footer();