diff --git a/main/admin/add_users_to_usergroup.php b/main/admin/add_users_to_usergroup.php index 99171ee4e2..03e6b727ff 100755 --- a/main/admin/add_users_to_usergroup.php +++ b/main/admin/add_users_to_usergroup.php @@ -112,6 +112,44 @@ function change_select(reset) { }); } +'; +$htmlHeadXtra[] = ' +'; $form_sent = 0; @@ -133,6 +171,35 @@ if (empty($id)) { api_not_allowed(true); } +if (ChamiloApi::isAjaxRequest() && $_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'get_last_ten_users') { + $excludedUsers = isset($_POST['excludedUsers']) ? $_POST['excludedUsers'] : []; + $id = isset($_POST['id']) ? intval($_POST['id']) : 0; + + $excludedIds = !empty($excludedUsers) ? implode(",", array_map('intval', $excludedUsers)) : '0'; + $sql = 'SELECT id, username, firstname, lastname + FROM user + WHERE status != '.ANONYMOUS.' + AND id NOT IN ('.$excludedIds.') + ORDER BY id DESC + LIMIT 10'; + + $result = Database::query($sql); + $users = []; + + while ($user = Database::fetch_array($result)) { + $users[] = [ + 'id' => $user['id'], + 'username' => $user['username'], + 'firstname' => $user['firstname'], + 'lastname' => $user['lastname'] + ]; + } + + header('Content-Type: application/json'); + echo json_encode($users); + die(); +} + $first_letter_user = ''; if ((isset($_POST['form_sent']) && $_POST['form_sent']) || isset($_REQUEST['firstLetterUser'])) { @@ -453,13 +520,18 @@ echo ''; placeholder="" onkeydown="return 13 !== event.keyCode;"> - - - + + + + + + registerFunction('search_users'); // setting the section (for the tabs) $this_section = SECTION_PLATFORM_ADMIN; -$id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0; -$addProcess = isset($_GET['add']) && 'true' === $_GET['add'] ? 'true' : null; +$id_session = isset($_REQUEST['id_session']) ? (int) $_REQUEST['id_session'] : 0; +$addProcess = isset($_REQUEST['add']) && 'true' === $_REQUEST['add'] ? 'true' : null; SessionManager::protectSession($id_session); @@ -65,6 +67,40 @@ if (is_array($extra_field_list)) { } } +if (ChamiloApi::isAjaxRequest() && isset($_POST['action'])) { + $id_session = isset($_POST['id_session']) ? (int) $_POST['id_session'] : 0; + $excludedUsers = isset($_POST['excludedUsers']) ? $_POST['excludedUsers'] : []; + + $excludedUsersList = count($excludedUsers) > 0 ? implode(",", array_map('intval', $excludedUsers)) : '0'; + + if ($_POST['action'] == 'get_last_ten_users') { + $sql = "SELECT u.id, u.username, u.firstname, u.lastname + FROM $tbl_user u + LEFT JOIN $tbl_session_rel_user sru ON (u.id = sru.user_id AND sru.session_id = $id_session) + WHERE sru.user_id IS NULL + AND u.id NOT IN ($excludedUsersList) + ORDER BY u.id DESC + LIMIT 10"; + } elseif ($_POST['action'] == 'get_all_users') { + $sql = "SELECT u.id, u.username, u.firstname, u.lastname + FROM $tbl_user u + LEFT JOIN $tbl_session_rel_user sru ON (u.id = sru.user_id AND sru.session_id = $id_session) + WHERE sru.user_id IS NULL + AND u.id NOT IN ($excludedUsersList) + ORDER BY u.lastname ASC, u.firstname ASC"; + } + + $result = Database::query($sql); + $users = []; + while ($row = Database::fetch_assoc($result)) { + $users[] = $row; + } + + header('Content-Type: application/json'); + echo json_encode($users); + die(); +} + function search_users($needle, $type) { global $id_session; @@ -304,6 +340,77 @@ function change_select(val) { xajax_search_users(val,"multiple"); } '; +$htmlHeadXtra[] = ' + +'; $form_sent = 0; $errorMsg = $firstLetterUser = $firstLetterSession = ''; @@ -691,6 +798,14 @@ $newLinks .= Display::url( + + + +