/**
  * @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;
Esempio n. 3
0
 $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'];
                 }
Esempio n. 4
0
 /**
  * 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;
         }
     }
 }