$mform->addElement('select', 'bui_weight', get_string('weight', 'block'), $weightoptions);
+ $pagefields = array('bui_visible', 'bui_region', 'bui_weight');
+ if (!$this->block->user_can_edit()) {
+ $mform->hardFreezeAllVisibleExcept($pagefields);
+ }
+ if (!$this->page->user_can_edit_blocks()) {
+ $mform->hardFreeze($pagefields);
+ }
+
$this->add_action_buttons();
}
* @return boolean
*/
function user_can_edit() {
- return true;
+ return has_capability('moodle/block:edit', $this->context);
}
/**
* @return boolean
*/
function user_can_addto($page) {
- return true;
+ return has_capability('moodle/block:edit', $page->context);
}
function get_extra_capabilities() {
- return array('moodle/block:view');
+ return array('moodle/block:view', 'moodle/block:edit');
}
// Methods deprecated in Moodle 2.0 ========================================
$string['blog:manageofficialtags'] = 'Manage official tags';
$string['blog:managepersonaltags'] = 'Manage personal tags';
$string['blog:view'] = 'View blog entries';
+$string['block:edit'] = 'Edit a block\'s settings';
$string['block:view'] = 'View block';
$string['calendar:manageentries'] = 'Manage any calendar entries';
$string['calendar:managegroupentries'] = 'Manage group calendar entries';
$string['site:import'] = 'Import other courses into a course';
$string['site:langeditlocal'] = 'Customize local translation';
$string['site:langeditmaster'] = 'Edit master language packages';
-$string['site:manageblocks'] = 'Manage site-level blocks';
+$string['site:manageblocks'] = 'Manage blocks on a page';
$string['site:mnetlogintoremote'] = 'Roam to a remote Moodle';
$string['site:mnetloginfromremote'] = 'Login from a remote Moodle';
$string['site:readallmessages'] = 'Read all messages on site';
$block = $this->page->blocks->find_instance($blockid);
- if (!$block->user_can_edit() || !$this->page->user_can_edit_blocks()) {
+ if (!$this->page->user_can_edit_blocks()) {
throw new moodle_exception('nopermissions', '', $this->page->url->out(), get_string('hideshowblocks'));
}
$block = $this->find_instance($blockid);
- if (!$block->user_can_edit() || !$this->page->user_can_edit_blocks()) {
+ if (!$block->user_can_edit() && !$this->page->user_can_edit_blocks()) {
throw new moodle_exception('nopermissions', '', $this->page->url->out(), get_string('editblock'));
}
'icon' => 'i/roles', 'caption' => get_string('assignroles', 'role'));
}
- if ($block->user_can_edit() && $page->user_can_edit_blocks()) {
+ if ($page->user_can_edit_blocks()) {
// Show/hide icon.
if ($block->instance->visible) {
$controls[] = array('url' => $actionurl . '&bui_hideid=' . $block->instance->id,
$controls[] = array('url' => $actionurl . '&bui_showid=' . $block->instance->id,
'icon' => 't/show', 'caption' => get_string('show'));
}
+ }
+ if ($page->user_can_edit_blocks() || $block->user_can_edit()) {
// Edit config icon - always show - needed for positioning UI.
$controls[] = array('url' => $actionurl . '&bui_editid=' . $block->instance->id,
'icon' => 't/edit', 'caption' => get_string('configuration'));
+ }
+ if ($page->user_can_edit_blocks() && $block->user_can_edit() && $block->user_can_addto($page)) {
// Delete icon.
- if ($block->user_can_addto($page)) {
- $controls[] = array('url' => $actionurl . '&bui_deleteid=' . $block->instance->id,
+ $controls[] = array('url' => $actionurl . '&bui_deleteid=' . $block->instance->id,
'icon' => 't/delete', 'caption' => get_string('delete'));
- }
+ }
+ if ($page->user_can_edit_blocks()) {
// Move icon.
$controls[] = array('url' => $page->url->out(false, array('moveblockid' => $block->instance->id)),
'icon' => 't/move', 'caption' => get_string('move'));
)
),
+ 'moodle/block:edit' => array(
+ 'riskbitmask' => RISK_SPAM | RISK_XSS,
+
+ 'captype' => 'write',
+ 'contextlevel' => CONTEXT_BLOCK,
+ 'legacy' => array(
+ 'editingteacher' => CAP_ALLOW,
+ 'coursecreator' => CAP_ALLOW
+ )
+ ),
+
'moodle/portfolio:export' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
// This is compared against the values stored in the database to determine
// whether upgrades should be performed (see lib/db/*.php)
- $version = 2009072700; // YYYYMMDD = date of the last version bump
+ $version = 2009073000; // YYYYMMDD = date of the last version bump
// XX = daily increments
$release = '2.0 dev (Build: 20090730)'; // Human-friendly version name