// This file defines settingpages and externalpages under the "appearance" category
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+
+
$ADMIN->add('appearance', new admin_category('themes', get_string('themes')));
// "themesettings" settingpage
$temp = new admin_settingpage('themesettings', get_string('themesettings', 'admin'));
// link to tag management interface
$ADMIN->add('appearance', new admin_externalpage('managetags', get_string('managetags', 'tag'), "$CFG->wwwroot/tag/manage.php"));
+
+} // end of speedup
?>
// This file defines settingpages and externalpages under the "courses" category
+if ($hassiteconfig
+ or has_capability('moodle/site:backup', $systemcontext)
+ or has_capability('moodle/category:update', $systemcontext)) { // speedup for non-admins, add all caps used on this page
+
$ADMIN->add('courses', new admin_externalpage('coursemgmt', get_string('coursemgmt', 'admin'), $CFG->wwwroot . '/course/index.php?categoryedit=on','moodle/category:update'));
$temp->add(new admin_setting_special_backupsaveto());
$ADMIN->add('courses', $temp);
+} // end of speedup
?>
if (get_site()) { //do not use during installation
$frontpagecontext = get_context_instance(CONTEXT_COURSE, SITEID);
- if (has_capability('moodle/site:config', $systemcontext)
+ if ($hassiteconfig
or has_capability('moodle/course:update', $frontpagecontext)
or has_capability('moodle/role:assign', $frontpagecontext)
or has_capability('moodle/site:restore', $frontpagecontext)
or has_capability('moodle/site:backup', $frontpagecontext)
- or has_capability('moodle/course:managefiles', $frontpagecontext)
- ) {
+ or has_capability('moodle/course:managefiles', $frontpagecontext)) {
+
// "frontpage" settingpage
$temp = new admin_settingpage('frontpagesettings', get_string('frontpagesettings','admin'), 'moodle/course:update', false, $frontpagecontext);
$temp->add(new admin_setting_sitesettext('fullname', get_string('fullsitename'), '', NULL)); // no default
// This file defines settingpages and externalpages under the "grades" section
+if (has_capability('moodle/grade:manage', $systemcontext)
+ or has_capability('moodle/grade:manageletters', $systemcontext)) { // speedup for non-admins, add all caps used on this page
+
// General settings
require_once $CFG->libdir.'/grade/constants.php';
-$temp = new admin_settingpage('gradessettings', get_string('gradessettings', 'grades'));
+$temp = new admin_settingpage('gradessettings', get_string('gradessettings', 'grades'), 'moodle/grade:manage');
// enable outcomes checkbox
$temp->add(new admin_setting_configcheckbox('enableoutcomes', get_string('enableoutcomes', 'grades'), get_string('configenableoutcomes', 'grades'), 0, PARAM_INT));
$ADMIN->add('grades', $temp);
/// Grade category settings
-$temp = new admin_settingpage('gradecategorysettings', get_string('gradecategorysettings', 'grades'));
+$temp = new admin_settingpage('gradecategorysettings', get_string('gradecategorysettings', 'grades'), 'moodle/grade:manage');
$temp->add(new admin_setting_configcheckbox('grade_hideforcedsettings', get_string('hideforcedsettings', 'grades'), get_string('confighideforcedsettings', 'grades'), 0, PARAM_INT));
if (file_exists($CFG->dirroot.'/grade/report/'.$plugin.'/settings.php')) {
- $settings = new admin_settingpage('gradereport'.$plugin, get_string('modulename', 'gradereport_'.$plugin));
+ $settings = new admin_settingpage('gradereport'.$plugin, get_string('modulename', 'gradereport_'.$plugin), 'moodle/grade:manage');
include($CFG->dirroot.'/grade/report/'.$plugin.'/settings.php');
$ADMIN->add('gradereports', $settings);
}
$first = false;
}
- $settings = new admin_settingpage('gradeimport'.$plugin, get_string('modulename', 'gradeimport_'.$plugin));
+ $settings = new admin_settingpage('gradeimport'.$plugin, get_string('modulename', 'gradeimport_'.$plugin), 'moodle/grade:manage');
include($CFG->dirroot.'/grade/import/'.$plugin.'/settings.php');
$ADMIN->add('gradeimports', $settings);
}
$first = false;
}
- $settings = new admin_settingpage('gradeexport'.$plugin, get_string('modulename', 'gradeexport_'.$plugin));
+ $settings = new admin_settingpage('gradeexport'.$plugin, get_string('modulename', 'gradeexport_'.$plugin), 'moodle/grade:manage');
include($CFG->dirroot.'/grade/export/'.$plugin.'/settings.php');
$ADMIN->add('gradeexports', $settings);
}
}
+
+} // end of speedup
+
?>
// This file defines settingpages and externalpages under the "appearance" category
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+
+
// "languageandlocation" settingpage
$temp = new admin_settingpage('langsettings', get_string('languagesettings', 'admin'));
$temp->add(new admin_setting_configselect('lang', get_string('lang', 'admin'), get_string('configlang', 'admin'), current_language(), get_list_of_languages())); // $CFG->lang might be set in installer already, default en or en_utf8 is in setup.php
$ADMIN->add('language', new admin_externalpage('langedit', get_string('langedit', 'admin'), "$CFG->wwwroot/$CFG->admin/lang.php"));
$ADMIN->add('language', new admin_externalpage('langimport', get_string('langpacks', 'admin'), "$CFG->wwwroot/$CFG->admin/langimport.php"));
+} // end of speedup
+
?>
<?php // $Id$
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+
+
// "locations" settingpage
$temp = new admin_settingpage('locationsettings', get_string('locationsettings', 'admin'));
$options = get_list_of_timezones();
$ADMIN->add('location', new admin_externalpage('timezoneimport', get_string('updatetimezones', 'admin'), "$CFG->wwwroot/$CFG->admin/timezoneimport.php"));
+} // end of speedup
+
?>
// * Miscellaneous settings
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+
+
// Experimental settings page
$temp = new admin_settingpage('experimental', get_string('experimental', 'admin'));
$temp->add(new admin_setting_configcheckbox('enableglobalsearch', get_string('enableglobalsearch', 'admin'), get_string('configenableglobalsearch', 'admin'), 0));
$ADMIN->add('misc', new admin_externalpage('upgradelogs', 'Upgrade logs', $CFG->wwwroot.'/'.$CFG->admin.'/upgradelogs.php', 'moodle/site:config', true));
$ADMIN->add('misc', new admin_externalpage('multilangupgrade', get_string('multilangupgrade', 'admin'), $CFG->wwwroot.'/'.$CFG->admin.'/multilangupgrade.php', 'moodle/site:config', !empty($CFG->filter_multilang_converted)));
+} // end of speedup
+
?>
// This file defines settingpages and externalpages under the "mnet" category
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+
+
$ADMIN->add('mnet', new admin_externalpage('net', get_string('settings', 'mnet'),
$CFG->wwwroot . '/admin/mnet/index.php',
'moodle/site:config'));
$ADMIN->add('mnet', new admin_externalpage('trustedhosts', get_string('trustedhosts', 'mnet'),
$CFG->wwwroot . '/admin/mnet/trustedhosts.php',
'moodle/site:config'));
+
+} // end of speedup
+
?>
<?php // $Id$
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
// "sitepolicies" settingpage
'actlikevirus' => get_string('configclamactlikevirus', 'admin'))));
$ADMIN->add('security', $temp);
+} // end of speedup
+
?>
// This file defines settingpages and externalpages under the "server" category
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+
+
// "systempaths" settingpage
$temp = new admin_settingpage('systempaths', get_string('systempaths','admin'));
$temp->add(new admin_setting_configselect('gdversion', get_string('gdversion','admin'), get_string('configgdversion', 'admin'), check_gd_version(), array('0' => get_string('gdnot'),
$ADMIN->add('server', new admin_externalpage('database', get_string('managedatabase'), "$CFG->wwwroot/$CFG->admin/mysql/frame.php"));
}
+} // end of speedup
+
?>
// are added to them.
$systemcontext = get_context_instance(CONTEXT_SYSTEM);
+$hassiteconfig = has_capability('moodle/site:config', $systemcontext);
$ADMIN->add('root', new admin_externalpage('adminnotifications', get_string('notifications'), "$CFG->wwwroot/$CFG->admin/index.php"));
// This file defines settingpages and externalpages in the "unsupported" hidden category, use wisely!
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+
$ADMIN->add('unsupported', new admin_externalpage('purgemoodledata', 'Purge moodledata', $CFG->wwwroot.'/'.$CFG->admin.'/delete.php'));
$ADMIN->add('unsupported', new admin_externalpage('healthcenter', get_string('healthcenter'), $CFG->wwwroot.'/'.$CFG->admin.'/health.php'));
$ADMIN->add('unsupported', new admin_externalpage('toinodb', 'Convert to InnoDB', $CFG->wwwroot.'/'.$CFG->admin.'/innodb.php'));
$ADMIN->add('unsupported', new admin_externalpage('replace', 'Search and replace', $CFG->wwwroot.'/'.$CFG->admin.'/replace.php'));
+} // end of speedup
?>
// This file defines settingpages and externalpages under the "users" category
-if (has_capability('moodle/site:config',$systemcontext)) { // speedup for non-admins
+if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$ADMIN->add('users', new admin_externalpage('userauthentication', get_string('authentication','admin'), "$CFG->wwwroot/$CFG->admin/auth.php"));
$ADMIN->add('roles', $temp);
-} // end of admin tree capability if
+} // end of speedup
?>
}
function applicable_formats() {
- if (block_admin_tree::has_admin_caps()) {
- return array('site' => true, 'admin' => true, 'my' => true);
- } else {
- return array('site' => true);
- }
+ //TODO: add 'my' only if user has role assigned in system or any course category context
+ return array('site' => true, 'admin' => true, 'my' => true);
}
function preferred_width() {
return $this->content;
}
- if (!($this->has_admin_caps())) {
+ if (isguestuser() or !isloggedin()) {
+ // these users can not change any settings
$this->content = '';
return '';
}
return $this->content;
}
-
- /**
- * Return true
- * if $USER has any caps that mean we should
- * display this block...
- */
- function has_admin_caps() {
-
- $sysctx = get_context_instance(CONTEXT_SYSTEM);
-
- return (has_capability('moodle/site:config', $sysctx)
- || has_capability('moodle/site:langeditmaster', $sysctx)
- || has_capability('moodle/site:langeditlocal', $sysctx)
- || has_capability('moodle/site:manageblocks', $sysctx)
- || has_capability('moodle/user:delete', $sysctx)
- || has_capability('moodle/user:update', $sysctx)
- || has_capability('moodle/user:create', $sysctx)
- || has_capability('moodle/grade:manage', $sysctx)
- || has_capability('moodle/grade:manageletters', $sysctx)
- || has_capability('moodle/grade:managescales', $sysctx)
- || has_capability('moodle/site:readallmessages', $sysctx));
- }
}
?>