' . get_capability_docs_link($capability) .
'' . $capability->name . '';
/// Add the cells specific to this table.
@@ -284,7 +284,7 @@ abstract class capability_table_with_risks extends capability_table_base {
}
protected function add_header_cells() {
- echo '
' . get_string('risks','role') . '
';
+ echo '
' . get_string('risks','role') . '
';
}
protected function num_extra_columns() {
@@ -330,9 +330,11 @@ abstract class capability_table_with_risks extends capability_table_base {
}
}
-class override_permissions_capability_table extends capability_table_with_risks {
+class override_permissions_table_advanced extends capability_table_with_risks {
protected $roleid;
protected $inheritedcapabilities;
+ protected $displaypermissions;
+ protected $strnotset;
protected $localoverrides;
protected $changed = array(); // $localoverrides that were changed by the submitted data, and so need to be saved.
protected $haslockedcapabiltites = false;
@@ -353,6 +355,8 @@ class override_permissions_capability_table extends capability_table_with_risks
global $DB;
parent::__construct($context, 'overriderolestable');
$this->roleid = $roleid;
+ $this->displaypermissions = $this->allpermissions;
+ $this->strnotset = get_string('notset', 'role');
/// Get the capabiltites from the parent context, so that can be shown in the interface.
$parentcontext = get_context_instance_by_id(get_parent_contextid($context));
@@ -418,14 +422,12 @@ class override_permissions_capability_table extends capability_table_with_risks
}
protected function add_header_cells() {
- foreach ($this->strperms as $permname => $strpermname) {
- echo '
' . $strpermname . '
';
- }
+ echo '
' . get_string('permission', 'role') . '
';
parent::add_header_cells();
}
protected function num_extra_columns() {
- return count($this->strperms) + parent::num_extra_columns();
+ return count($this->displaypermissions) + parent::num_extra_columns();
}
protected function skip_row($capability) {
@@ -433,13 +435,19 @@ class override_permissions_capability_table extends capability_table_with_risks
}
protected function add_row_cells($capability) {
+ $this->add_permission_cells($capability);
+ parent::add_row_cells($capability);
+ }
+
+ protected function add_permission_cells($capability) {
$disabled = '';
if ($capability->locked || $this->inheritedcapabilities[$capability->name] == CAP_PROHIBIT) {
$disabled = ' disabled="disabled"';
}
/// One cell for each possible permission.
- foreach ($this->allpermissions as $perm => $permname) {
+ foreach ($this->displaypermissions as $perm => $permname) {
+ $strperm = $this->strperms[$permname];
$extraclass = '';
if ($perm != CAP_INHERIT && $perm == $this->inheritedcapabilities[$capability->name]) {
$extraclass = ' capcurrent';
@@ -449,11 +457,43 @@ class override_permissions_capability_table extends capability_table_with_risks
$checked = ' checked="checked"';
}
echo '