From cb5c33b23520a94fee1e2ce8dae9b86447d24677 Mon Sep 17 00:00:00 2001 From: tjhunt Date: Fri, 1 May 2009 10:21:58 +0000 Subject: [PATCH] adminlib: MDL-19038 lazy-load the list of users in admin_setting_users_with_capability --- lib/adminlib.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/adminlib.php b/lib/adminlib.php index 112166fd03a..e4bbee6bd49 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -2572,16 +2572,24 @@ class admin_setting_users_with_capability extends admin_setting_configmultiselec * @param string $capability string capability name. */ function admin_setting_users_with_capability($name, $visiblename, $description, $defaultsetting, $capability) { + $this->capability = $capability; + parent::admin_setting_configmultiselect($name, $visiblename, $description, $defaultsetting, NULL); + } + + function load_choices() { + if (is_array($this->choices)) { + return true; + } $users = get_users_by_capability(get_context_instance(CONTEXT_SYSTEM), - $capability, 'u.id,u.username,u.firstname,u.lastname', 'u.lastname,u.firstname'); - $choices = array( + $this->capability, 'u.id,u.username,u.firstname,u.lastname', 'u.lastname,u.firstname'); + $this->choices = array( '$@NONE@$' => get_string('nobody'), - '$@ALL@$' => get_string('everyonewhocan', 'admin', get_capability_string($capability)), + '$@ALL@$' => get_string('everyonewhocan', 'admin', get_capability_string($this->capability)), ); foreach ($users as $user) { - $choices[$user->username] = fullname($user); + $this->choices[$user->username] = fullname($user); } - parent::admin_setting_configmultiselect($name, $visiblename, $description, $defaultsetting, $choices); + return true; } function get_defaultsetting() {