MDL-69378 tool_uploadcourse: fix enrolment methods uploads
This commit is contained in:
@@ -980,55 +980,48 @@ class tool_uploadcourse_course {
|
||||
unset($method['delete']);
|
||||
unset($method['disable']);
|
||||
|
||||
if (!empty($instance) && $todelete) {
|
||||
if ($todelete) {
|
||||
// Remove the enrolment method.
|
||||
foreach ($instances as $instance) {
|
||||
if ($instance->enrol == $enrolmethod) {
|
||||
$plugin = $enrolmentplugins[$instance->enrol];
|
||||
if ($instance) {
|
||||
$plugin = $enrolmentplugins[$instance->enrol];
|
||||
|
||||
// Ensure user is able to delete the instance.
|
||||
if ($plugin->can_delete_instance($instance)) {
|
||||
$plugin->delete_instance($instance);
|
||||
} else {
|
||||
$this->error('errorcannotdeleteenrolment',
|
||||
new lang_string('errorcannotdeleteenrolment', 'tool_uploadcourse',
|
||||
$plugin->get_instance_name($instance)));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (!empty($instance) && $todisable) {
|
||||
// Disable the enrolment.
|
||||
foreach ($instances as $instance) {
|
||||
if ($instance->enrol == $enrolmethod) {
|
||||
$plugin = $enrolmentplugins[$instance->enrol];
|
||||
|
||||
// Ensure user is able to toggle instance status.
|
||||
if ($plugin->can_hide_show_instance($instance)) {
|
||||
$plugin->update_status($instance, ENROL_INSTANCE_DISABLED);
|
||||
} else {
|
||||
$this->error('errorcannotdisableenrolment',
|
||||
new lang_string('errorcannotdisableenrolment', 'tool_uploadcourse',
|
||||
$plugin->get_instance_name($instance)));
|
||||
}
|
||||
|
||||
break;
|
||||
// Ensure user is able to delete the instance.
|
||||
if ($plugin->can_delete_instance($instance)) {
|
||||
$plugin->delete_instance($instance);
|
||||
} else {
|
||||
$this->error('errorcannotdeleteenrolment',
|
||||
new lang_string('errorcannotdeleteenrolment', 'tool_uploadcourse',
|
||||
$plugin->get_instance_name($instance)));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Create/update enrolment.
|
||||
$plugin = $enrolmentplugins[$enrolmethod];
|
||||
|
||||
// Ensure user is able to create/update instance.
|
||||
$status = ($todisable) ? ENROL_INSTANCE_DISABLED : ENROL_INSTANCE_ENABLED;
|
||||
|
||||
// Create a new instance if necessary.
|
||||
if (empty($instance) && $plugin->can_add_instance($course->id)) {
|
||||
$instance = new stdClass();
|
||||
$instance->id = $plugin->add_default_instance($course);
|
||||
$instanceid = $plugin->add_default_instance($course);
|
||||
$instance = $DB->get_record('enrol', ['id' => $instanceid]);
|
||||
$instance->roleid = $plugin->get_config('roleid');
|
||||
$instance->status = ENROL_INSTANCE_ENABLED;
|
||||
} else if (!empty($instance) && $plugin->can_edit_instance($instance)) {
|
||||
$plugin->update_status($instance, ENROL_INSTANCE_ENABLED);
|
||||
} else {
|
||||
// On creation the user can decide the status.
|
||||
$plugin->update_status($instance, $status);
|
||||
}
|
||||
|
||||
// Check if the we need to update the instance status.
|
||||
if ($instance && $status != $instance->status) {
|
||||
if ($plugin->can_hide_show_instance($instance)) {
|
||||
$plugin->update_status($instance, $status);
|
||||
} else {
|
||||
$this->error('errorcannotdisableenrolment',
|
||||
new lang_string('errorcannotdisableenrolment', 'tool_uploadcourse',
|
||||
$plugin->get_instance_name($instance)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($instance) || !$plugin->can_edit_instance($instance)) {
|
||||
$this->error('errorcannotcreateorupdateenrolment',
|
||||
new lang_string('errorcannotcreateorupdateenrolment', 'tool_uploadcourse',
|
||||
$plugin->get_instance_name($instance)));
|
||||
|
||||
Reference in New Issue
Block a user