From f708a5b016d518b186eb0d4682152d81cb0c607c Mon Sep 17 00:00:00 2001 From: hannes Date: Fri, 29 Jan 2016 00:36:30 +0000 Subject: [PATCH] Never save our /attachment/{file_id} links as links in the file table, return the old file --- classes/File.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/classes/File.php b/classes/File.php index 6cad978a70..428eb9f285 100644 --- a/classes/File.php +++ b/classes/File.php @@ -106,6 +106,19 @@ class File extends Managed_DataObject // We don't have the file's URL since before, so let's continue. } + // if the given url is an local attachment url and the id already exists, don't + // save a new file record. This should never happen, but let's make it foolproof + $attachment_path = common_path('attachment/'); + if(strpos($given_url,$attachment_path) == 0) { + $possible_file_id = substr($given_url,strlen($attachment_path)); + if(is_numeric($possible_file_id)) { + $file = File::getKV('id',$possible_file_id); + if($file instanceof File) { + return $file; + } + } + } + $file = new File; $file->url = $given_url; if (!empty($redir_data['protected'])) $file->protected = $redir_data['protected'];