$a->id = $roleid;
$a->name = $roles[$roleid]->name;
$a->shortname = $roles[$roleid]->shortname;
- notice_yesno(get_string('resetrolesure', 'role', $a), 'manage.php', 'manage.php', $optionsyes, $optionsno, 'post', 'get');
+ $a->legacytype = get_legacy_type($roleid);
+ if (empty($a->legacytype)) {
+ $warning = get_string('resetrolesurenolegacy', 'role', $a);
+ } else {
+ $warning = get_string('resetrolesure', 'role', $a);
+ }
+ notice_yesno($warning, 'manage.php', 'manage.php', $optionsyes, $optionsno, 'post', 'get');
admin_externalpage_print_footer($adminroot);
die;
}
$string['question:import'] = 'Import questions';
$string['question:manage'] = 'Manage questions';
$string['question:managecategory'] = 'Manage question category';
-$string['resetrolesure'] = 'Are you sure that you want to reset role \"$a->name ($a->shortname)\" to defaults?<p></p>The defaults are taken from the selected legacy capability.';
+$string['resetrolesure'] = 'Are you sure that you want to reset role \"$a->name ($a->shortname)\" to defaults?<p></p>The defaults are taken from the selected legacy capability ($a->legacytype).';
+$string['resetrolesurenolegacy'] = 'Are you sure that you want to removed all permissions defined in this role \"$a->name ($a->shortname)\"?';
$string['risks'] = 'Risks';
$string['role:assign'] = 'Assign roles to users';
$string['role:manage'] = 'Create and manage roles';
);
}
+function get_legacy_type($roleid) {
+ $sitecontext = get_context_instance(CONTEXT_SYSTEM);
+ $legacyroles = get_legacy_roles();
+
+ $result = '';
+ foreach($legacyroles as $ltype=>$lcap) {
+ $localoverride = get_local_override($roleid, $sitecontext->id, $lcap);
+ if (!empty($localoverride->permission) and $localoverride->permission == CAP_ALLOW) {
+ //choose first selected legacy capability - reset the rest
+ if (empty($result)) {
+ $result = $ltype;
+ } else {
+ delete_records('role_capabilities', 'roleid', $roleid, 'contextid', $sitecontext->id, 'capability', $lcap);
+ }
+ }
+ }
+
+ return $result;
+}
+
/**
* Assign the defaults found in this capabality definition to roles that have
* the corresponding legacy capabilities assigned to them.