MDL-32477 allow cloning of plugin permissions from core

Please note it is discouraged to clone from different plugin type because the upgrade order is not guaranteed.
This commit is contained in:
Petr Skoda
2012-04-19 22:11:15 +02:00
parent 93fb7b528b
commit 804feede10
+2 -1
View File
@@ -2484,6 +2484,7 @@ function update_capabilities($component = 'moodle') {
}
}
// Add new capabilities to the stored definition.
$existingcaps = $DB->get_records_menu('capabilities', array(), 'id', 'id, name');
foreach ($newcaps as $capname => $capdef) {
$capability = new stdClass();
$capability->name = $capname;
@@ -2494,7 +2495,7 @@ function update_capabilities($component = 'moodle') {
$DB->insert_record('capabilities', $capability, false);
if (isset($capdef['clonepermissionsfrom']) && in_array($capdef['clonepermissionsfrom'], $storedcaps)){
if (isset($capdef['clonepermissionsfrom']) && in_array($capdef['clonepermissionsfrom'], $existingcaps)){
if ($rolecapabilities = $DB->get_records('role_capabilities', array('capability'=>$capdef['clonepermissionsfrom']))){
foreach ($rolecapabilities as $rolecapability){
//assign_capability will update rather than insert if capability exists