Skip to content

Commit

Permalink
MDL-32477 allow cloning of plugin permissions from core
Browse files Browse the repository at this point in the history
Please note it is discouraged to clone from different plugin type because the upgrade order is not guaranteed.
  • Loading branch information
skodak committed Apr 19, 2012
1 parent bd44a3b commit b3f60ef
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lib/accesslib.php
Expand Up @@ -3443,6 +3443,7 @@ function update_capabilities($component = 'moodle') {
} }
} }
// Add new capabilities to the stored definition. // Add new capabilities to the stored definition.
$existingcaps = $DB->get_records_menu('capabilities', array(), 'id', 'id, name');
foreach ($newcaps as $capname => $capdef) { foreach ($newcaps as $capname => $capdef) {
$capability = new stdClass(); $capability = new stdClass();
$capability->name = $capname; $capability->name = $capname;
Expand All @@ -3453,7 +3454,7 @@ function update_capabilities($component = 'moodle') {


$DB->insert_record('capabilities', $capability, false); $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']))){ if ($rolecapabilities = $DB->get_records('role_capabilities', array('capability'=>$capdef['clonepermissionsfrom']))){
foreach ($rolecapabilities as $rolecapability){ foreach ($rolecapabilities as $rolecapability){
//assign_capability will update rather than insert if capability exists //assign_capability will update rather than insert if capability exists
Expand Down

0 comments on commit b3f60ef

Please sign in to comment.