/** * @param $params * @return null|soap_fault */ public static function WSSessionGetDetailsByUser($params) { global $debug; if ($debug) { error_log('WSUserSubscribedInCourse'); error_log('Params ' . print_r($params, 1)); } if (!WSHelperVerifyKey($params)) { return return_error(WS_ERROR_SECRET_KEY); } $result = return_error(WS_ERROR_NOT_FOUND_RESULT); // Check params if (is_array($params) && !empty($params['session_id']) && !empty($params['user_id'])) { $userId = UserManager::get_user_id_from_original_id($params['user_id'], $params['user_field']); $sessionId = (int) $params['session_id']; // Check if user exists if (UserManager::is_user_id_valid($userId) && SessionManager::isValidId($sessionId)) { // Check if student is already subscribed $plugin = AdvancedSubscriptionPlugin::create(); $isOpen = $plugin->isSessionOpen($sessionId); $status = $plugin->getQueueStatus($userId, $sessionId); $vacancy = $plugin->getVacancy($sessionId); $data = $plugin->getSessionDetails($sessionId); $isUserInTargetGroup = $plugin->isUserInTargetGroup($userId, $sessionId); if (!empty($data) && is_array($data)) { $data['status'] = $status; // Vacancy and queue status cases: if ($isOpen) { // Go to Course session $data['action_url'] = self::$plugin->getOpenSessionUrl($userId, $params); if (SessionManager::isUserSubscribedAsStudent($sessionId, $userId)) { $data['status'] = 10; } } else { if (!$isUserInTargetGroup) { $data['status'] = -2; } else { try { $isAllowed = self::$plugin->isAllowedToDoRequest($userId, $params); $data['message'] = self::$plugin->getStatusMessage($status, $isAllowed); } catch (\Exception $e) { $data['message'] = $e->getMessage(); } $params['action'] = 'subscribe'; $params['sessionId'] = intval($sessionId); $params['currentUserId'] = 0; // No needed $params['studentUserId'] = intval($userId); $params['queueId'] = 0; // No needed $params['newStatus'] = ADVANCED_SUBSCRIPTION_QUEUE_STATUS_START; if ($vacancy > 0) { // Check conditions if ($status == ADVANCED_SUBSCRIPTION_QUEUE_STATUS_NO_QUEUE) { // No in Queue, require queue subscription url action $data['action_url'] = self::$plugin->getTermsUrl($params); } elseif ($status == ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED) { // send url action $data['action_url'] = self::$plugin->getSessionUrl($sessionId); } else { // In queue, output status message, no more info. } } else { if ($status == ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED) { $data['action_url'] = self::$plugin->getSessionUrl($sessionId); } elseif ($status == ADVANCED_SUBSCRIPTION_QUEUE_STATUS_NO_QUEUE) { // in Queue or not, cannot be subscribed to session $data['action_url'] = self::$plugin->getTermsUrl($params); } else { // In queue, output status message, no more info. } } } } $result = $data; } else { // Return soap fault No result was found $result = return_error(WS_ERROR_NOT_FOUND_RESULT); } } else { // Return soap fault No result was found $result = return_error(WS_ERROR_NOT_FOUND_RESULT); } } else { // Return soap fault Not valid input params $result = return_error(WS_ERROR_INVALID_INPUT); } return $result; }
echo ' <div class="row"> <div class="col-sm-10 col-sm-offset-2"> <a class="btn btn-primary" id="send_message_link"> <em class="fa fa-envelope"></em> ' . get_lang('Send') . ' </a> </div> </div> '; } break; case 'user_id_exists': if (api_is_anonymous()) { echo ''; } else { if (UserManager::is_user_id_valid($_GET['user_id'])) { echo 1; } else { echo 0; } } break; case 'search_tags': if (api_is_anonymous()) { echo ''; } else { if (isset($_GET['tag']) && isset($_GET['field_id'])) { echo UserManager::get_tags($_GET['tag'], $_GET['field_id'], 'json', '10'); } } break;
$invalid_users = array(); $clean_users = array(); if (!empty($users)) { $empty_line = 0; foreach ($users as $user_data) { $user_id = null; $user_data = array_change_key_case($user_data, CASE_LOWER); // Checking "username" field if (isset($user_data['username']) && !empty($user_data['username'])) { $user_id = UserManager::get_user_id_from_username($user_data['username']); } // Checking "id" field if (isset($user_data['id']) && !empty($user_data['id'])) { $user_id = $user_data['id']; } if (UserManager::is_user_id_valid($user_id)) { $clean_users[] = $user_id; } else { $invalid_users[] = $user_data; } } if (empty($invalid_users)) { $type = 'confirmation'; $message = get_lang('ListOfUsersSubscribedToCourse'); if ($unsubscribe_users) { $current_user_list = CourseManager::get_user_list_from_course_code($course_code, $session_id); if (!empty($current_user_list)) { $user_ids = array(); foreach ($current_user_list as $user) { $user_ids[] = $user['user_id']; }
/** * Gets the real user id based on the user id field name and value. Note that if the user id field name is "chamilo_user_id", it will use the user id * in the system database * * @param string User id field name * @param string User id value * @return mixed System user id if the user was found, WSError otherwise */ protected function getUserId($user_id_field_name, $user_id_value) { if ($user_id_field_name == "chamilo_user_id") { if (UserManager::is_user_id_valid(intval($user_id_value))) { return intval($user_id_value); } else { return new WSError(100, "User not found"); } } else { $user_id = UserManager::get_user_id_from_original_id($user_id_value, $user_id_field_name); if ($user_id == 0) { return new WSError(100, "User not found"); } else { return $user_id; } } }