diff --git a/enrol/self/db/access.php b/enrol/self/db/access.php index d2c59726a55..4d3481058cd 100644 --- a/enrol/self/db/access.php +++ b/enrol/self/db/access.php @@ -52,9 +52,6 @@ $capabilities = array( 'captype' => 'write', 'contextlevel' => CONTEXT_COURSE, - 'archetypes' => array( - 'manager' => CAP_PROHIBIT, - ) ), /* Voluntarily unenrol self from course - watch out for data loss. */ diff --git a/enrol/self/db/upgrade.php b/enrol/self/db/upgrade.php index 8be21eaa6e0..cfe93b77874 100644 --- a/enrol/self/db/upgrade.php +++ b/enrol/self/db/upgrade.php @@ -39,5 +39,24 @@ function xmldb_enrol_self_upgrade($oldversion) { // Moodle v3.1.0 release upgrade line. // Put any upgrade step following this. + // Moodle v3.2.0 release upgrade line. + // Put any upgrade step following this. + + if ($oldversion < 2016052301) { + global $DB; + // Get roles with manager archetype. + $managerroles = get_archetype_roles('manager'); + if (!empty($managerroles)) { + // Remove wrong CAP_PROHIBIT from self:holdkey. + foreach ($managerroles as $role) { + $DB->execute("DELETE + FROM {role_capabilities} + WHERE roleid = ? AND capability = ? AND permission = ?", + array($role->id, 'enrol/self:holdkey', CAP_PROHIBIT)); + } + } + upgrade_mod_savepoint(true, 2016052301, 'enrol_self'); + } + return true; } diff --git a/enrol/self/version.php b/enrol/self/version.php index c2d7ed91707..742231247ba 100644 --- a/enrol/self/version.php +++ b/enrol/self/version.php @@ -24,7 +24,7 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2016052300; // The current plugin version (Date: YYYYMMDDXX) +$plugin->version = 2016052301; // The current plugin version (Date: YYYYMMDDXX) $plugin->requires = 2016051900; // Requires this Moodle version $plugin->component = 'enrol_self'; // Full name of the plugin (used for diagnostics) $plugin->cron = 600;