Index: lib/adminlib.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/adminlib.php,v retrieving revision 1.153.2.72 diff -u -r1.153.2.72 adminlib.php --- lib/adminlib.php 26 Mar 2009 13:17:56 -0000 1.153.2.72 +++ lib/adminlib.php 1 May 2009 03:09:21 -0000 @@ -2572,16 +2572,24 @@ * @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() {