$mform->addElement('header', 'token', get_string('token', 'webservice'));
if (empty($data->nouserselection)) {
- //user searchable selector - get all users (admin and guest included)
- //user must be confirmed, not deleted, not suspended, not guest
- $sql = "SELECT u.id, u.firstname, u.lastname
- FROM {user} u
- WHERE u.deleted = 0 AND u.confirmed = 1 AND u.suspended = 0 AND u.id != ?
- ORDER BY u.lastname";
- $users = $DB->get_records_sql($sql, array($CFG->siteguest));
- $options = array();
- foreach ($users as $userid => $user) {
- $options[$userid] = $user->firstname . " " . $user->lastname;
+
+ //check if the number of user is reasonable to be displayed in a select box
+ $usertotal = $DB->count_records('user',
+ array('deleted' => 0, 'suspended' => 0, 'confirmed' => 1));
+
+ if ($usertotal < 500) {
+ //user searchable selector - get all users (admin and guest included)
- $users = $DB->get_records('user',
- array('deleted' => 0, 'suspended' => 0, 'confirmed' => 1), 'lastname',
- 'id, firstname, lastname');
++ //user must be confirmed, not deleted, not suspended, not guest
++ $sql = "SELECT u.id, u.firstname, u.lastname
++ FROM {user} u
++ WHERE u.deleted = 0 AND u.confirmed = 1 AND u.suspended = 0 AND u.id != ?
++ ORDER BY u.lastname";
++ $users = $DB->get_records_sql($sql, array($CFG->siteguest));
++
+ $options = array();
+ foreach ($users as $userid => $user) {
+ $options[$userid] = $user->firstname . " " . $user->lastname;
+ }
+ $mform->addElement('searchableselector', 'user', get_string('user'), $options);
+ } else {
+ //simple text box for username or user id (if two username exists, a form error is displayed)
+ $mform->addElement('text', 'user', get_string('usernameorid', 'webservice'));
}
- $mform->addElement('searchableselector', 'user', get_string('user'), $options);
$mform->addRule('user', get_string('required'), 'required', null, 'client');
}