From: tjhunt Date: Fri, 1 May 2009 10:32:12 +0000 (+0000) Subject: adminlib: MDL-19038 lazy-load the list of users in admin_setting_users_with_capability X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=fb073f60ec8ac656e28a290728b108cfc5a1205f;p=moodle.git adminlib: MDL-19038 lazy-load the list of users in admin_setting_users_with_capability --- diff --git a/lib/adminlib.php b/lib/adminlib.php index 28ab9c3e07..b059168385 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -2161,17 +2161,25 @@ class admin_setting_users_with_capability extends admin_setting_configmultiselec * @param array $defaultsetting array of usernames * @param string $capability string capability name. */ - public function __construct($name, $visiblename, $description, $defaultsetting, $capability) { + function __construct($name, $visiblename, $description, $defaultsetting, $capability) { + $this->capability = $capability; + parent::__construct($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::__construct($name, $visiblename, $description, $defaultsetting, $choices); + return true; } public function get_defaultsetting() {