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(
+
+
+
+