MDL-30789 add new update_status() method to enrol plugins and improve enrol cache invalidation

This commit is contained in:
Petr Skoda 2011-12-18 17:02:16 +01:00
parent f89a83b87b
commit af7177dbcb
2 changed files with 30 additions and 9 deletions

View file

@ -1553,6 +1553,26 @@ abstract class enrol_plugin {
return null;
}
/**
* Update instance status
*
* Override when plugin needs to do some action when enabled or disabled.
*
* @param stdClass $instance
* @param int $newstatus ENROL_INSTANCE_ENABLED, ENROL_INSTANCE_DISABLED
* @return void
*/
public function update_status($instance, $newstatus) {
global $DB;
$instance->status = $newstatus;
$DB->update_record('enrol', $instance);
// invalidate all enrol caches
$context = context_course::instance($instance->courseid);
$context->mark_dirty();
}
/**
* Delete course enrol plugin instance, unenrol all users.
* @param object $instance
@ -1579,6 +1599,10 @@ abstract class enrol_plugin {
// finally drop the enrol row
$DB->delete_records('enrol', array('id'=>$instance->id));
// invalidate all enrol caches
$context = context_course::instance($instance->courseid);
$context->mark_dirty();
}
/**