$query, 'firstname' => $query, 'lastname' => $query, ]; $users = UserManager::getUserListLike($conditions, [], false, 'OR'); $result = []; if (!empty($users)) { foreach ($users as $user) { $result[] = ['id' => $user['id'], 'text' => $user['complete_name'].' ('.$user['username'].')']; } $result['items'] = $result; } echo json_encode($result); } break; case 'get_user_popup': $courseId = isset($_REQUEST['course_id']) ? (int) $_REQUEST['course_id'] : 0; $sessionId = isset($_REQUEST['session_id']) ? (int) $_REQUEST['session_id'] : 0; $user_info = api_get_user_info($_REQUEST['user_id']); $isAnonymous = api_is_anonymous(); echo '
'; echo '
'; echo '
'; echo ' '; echo '
'; echo '
'; echo '
'; if (api_get_setting('show_email_addresses') == 'false') { $user_info['mail'] = ' '; } else { $user_info['mail'] = ' '.$user_info['mail'].' '; } if ($isAnonymous) { $user_info['mail'] = ' '; } $userData = '

'.$user_info['complete_name'].'

'.$user_info['mail'].$user_info['official_code']; if ($isAnonymous) { // Only allow anonymous users to see user popup if the popup user // is a teacher (which might be necessary to illustrate a course) if ($user_info['status'] === COURSEMANAGER) { echo $userData; } else { echo '

-

'; } } else { echo Display::url( $userData, api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$user_info['user_id'] ); } echo '
'; echo '
'; $url = api_get_path(WEB_AJAX_PATH).'message.ajax.php?a=send_message&user_id='.$user_info['user_id'].'&course_id='.$courseId.'&session_id='.$sessionId; if ($isAnonymous === false && api_get_setting('allow_message_tool') == 'true' ) { echo ''; echo MessageManager::generate_message_form(); echo '
'.get_lang('Send message').'
'; } 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': header('Content-Type: application/json'); $result = ['items' => []]; if (api_is_anonymous()) { echo json_encode($result); break; } if (!isset($_GET['q'], $_GET['field_id'])) { echo json_encode($result); break; } $result['items'] = UserManager::get_tags($_GET['q'], $_GET['field_id'], null, '10'); echo json_encode($result); break; case 'generate_api_key': if (api_is_anonymous()) { echo ''; } else { $array_list_key = []; $user_id = api_get_user_id(); $api_service = 'dokeos'; $num = UserManager::update_api_key($user_id, $api_service); $array_list_key = UserManager::get_api_keys($user_id, $api_service); ?>
SmsPlugin::ACCOUNT_APPROVED_CONNECT, 'userId' => $user_id, ]; MessageManager::send_message_simple( $user_id, $subject, $body, null, false, false, $additionalParameters ); /*$result = api_mail_html( $recipientName, $user_info['mail'], $subject, $body, $sender_name, $emailAdmin, null, null, $additionalParameters );*/ Event::addEvent(LOG_USER_ENABLE, LOG_USER_ID, $user_id); } else { Event::addEvent(LOG_USER_DISABLE, LOG_USER_ID, $user_id); } echo $status; } } else { echo '-1'; } break; case 'user_by_role': api_block_anonymous_users(false); $criteria = new Criteria(); $criteria ->where( Criteria::expr()->orX( Criteria::expr()->contains('username', $_REQUEST['q']), Criteria::expr()->contains('firstname', $_REQUEST['q']), Criteria::expr()->contains('lastname', $_REQUEST['q']) ) ) ->andWhere( Criteria::expr()->eq('status', DRH) ); $users = UserManager::getRepository()->matching($criteria); if (!$users->count()) { echo json_encode([]); break; } $items = []; /** @var User $user */ foreach ($users as $user) { $items[] = [ 'id' => $user->getId(), 'text' => UserManager::formatUserFullName($user, true), ]; } header('Content-Type: application/json'); echo json_encode(['items' => $items]); break; case 'teacher_to_basis_course': api_block_anonymous_users(false); $sortByFirstName = api_sort_by_first_name(); $urlId = api_get_current_access_url_id(); $qb = UserManager::getRepository()->createQueryBuilder('u'); $qb->where( $qb->expr()->orX( $qb->expr()->like('u.username', ':q'), $qb->expr()->like('u.firstname', ':q'), $qb->expr()->like('u.lastname', ':q') ) ); if (api_is_multiple_url_enabled()) { $qb ->innerJoin('ChamiloCoreBundle:AccessUrlRelUser', 'uru', Join::WITH, 'u.id = uru.user') ->andWhere('uru.url = '.$urlId); } $qb ->andWhere('u.status != '.DRH.' AND u.status != '.ANONYMOUS) ->orderBy( $sortByFirstName ? 'u.firstname, u.firstname' : 'u.firstname, u.lastname' ) ->setParameter('q', '%'.$_REQUEST['q'].'%'); $users = $qb->getQuery()->getResult(); if (!$users) { echo json_encode([]); break; } $items = []; /** @var User $user */ foreach ($users as $user) { $items[] = [ 'id' => $user->getId(), 'text' => UserManager::formatUserFullName($user, true), ]; } header('Content-Type: application/json'); echo json_encode(['items' => $items]); break; default: echo ''; } exit;