diff --git a/repository/lib.php b/repository/lib.php index 6f6759c0475..95976657352 100644 --- a/repository/lib.php +++ b/repository/lib.php @@ -2004,6 +2004,8 @@ abstract class repository implements cacheable_object { global $DB; if ($downloadcontents) { $this->convert_references_to_local(); + } else { + $this->remove_files(); } cache::make('core', 'repositories')->purge(); try { @@ -2668,6 +2670,17 @@ abstract class repository implements cacheable_object { } } + /** + * Find all external files linked to this repository and delete them. + */ + public function remove_files() { + $fs = get_file_storage(); + $files = $fs->get_external_files($this->id); + foreach ($files as $storedfile) { + $storedfile->delete(); + } + } + /** * Function repository::reset_caches() is deprecated, cache is handled by MUC now. * @deprecated since Moodle 2.6 MDL-42016 - please do not use this function any more.