diff --git a/lib/filelib.php b/lib/filelib.php index 04e6fe9ab20..1820beac83c 100644 --- a/lib/filelib.php +++ b/lib/filelib.php @@ -839,7 +839,8 @@ function file_save_draft_area_files($draftitemid, $contextid, $component, $filea if (!$oldfile->is_directory() && ($oldfile->get_contenthash() != $newfile->get_contenthash() || $oldfile->get_filesize() != $newfile->get_filesize() || - $oldfile->get_referencefileid() != $newfile->get_referencefileid())) { + $oldfile->get_referencefileid() != $newfile->get_referencefileid() || + $oldfile->get_userid() != $newfile->get_userid())) { $oldfile->replace_file_with($newfile); // push changes to all local files that are referencing this file $fs->update_references_to_storedfile($oldfile); diff --git a/lib/filestorage/stored_file.php b/lib/filestorage/stored_file.php index 3a27e81cf70..40c5b314147 100644 --- a/lib/filestorage/stored_file.php +++ b/lib/filestorage/stored_file.php @@ -212,7 +212,7 @@ class stored_file { /** * Replaces the fields that might have changed when file was overriden in filepicker: - * reference, contenthash, filesize + * reference, contenthash, filesize, userid * * Note that field 'source' must be updated separately because * it has different format for draft and non-draft areas and @@ -240,6 +240,7 @@ class stored_file { } $filerecord->filesize = $newfile->get_filesize(); $filerecord->referencefileid = $newfile->get_referencefileid(); + $filerecord->userid = $newfile->get_userid(); $this->update($filerecord); }