From b44488b61893cd581beba573d866d98c8ded4d62 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9gis=20Hanol?= <regis@hanol.fr>
Date: Wed, 20 May 2015 14:55:42 +0200
Subject: [PATCH] FIX: keep to old attachment route

---
 app/controllers/uploads_controller.rb | 2 +-
 config/routes.rb                      | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/app/controllers/uploads_controller.rb b/app/controllers/uploads_controller.rb
index 212c923c468..1f3a7be4787 100644
--- a/app/controllers/uploads_controller.rb
+++ b/app/controllers/uploads_controller.rb
@@ -29,7 +29,7 @@ class UploadsController < ApplicationController
       return render_404 unless Discourse.store.internal?
       return render_404 if SiteSetting.prevent_anons_from_downloading_files && current_user.nil?
 
-      if upload = Upload.find_by(sha1: params[:sha])
+      if upload = Upload.find_by(sha1: params[:sha]) || Upload.find_by(id: params[:id], url: request.fullpath)
         opts = { filename: upload.original_filename }
         opts[:disposition] = 'inline' if params[:inline]
         send_file(Discourse.store.path_for(upload), opts)
diff --git a/config/routes.rb b/config/routes.rb
index 48faa1f9ef9..ff2a2edec46 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -295,6 +295,8 @@ Discourse::Application.routes.draw do
   get "uploads/:site/:sha" => "uploads#show", constraints: { site: /\w+/, sha: /[a-f0-9]{40}/ }
   # used to download attachments
   get "uploads/:site/original/:dir1/:dir2/:sha.:extension" => "uploads#show", constraints: { site: /\w+/, dir1: /[a-f0-9]/, dir2: /[a-f0-9]/, sha: /[a-f0-9]{40}/, extension: /\w{2,}/ }
+  # used to download attachments (old route)
+  get "uploads/:site/:id/:sha.:extension" => "uploads#show", constraints: { site: /\w+/, id: /\d+/, sha: /[a-f0-9]{15}/, extension: /\w{2,}/ }
 
   get "posts" => "posts#latest"
   get "posts/by_number/:topic_id/:post_number" => "posts#by_number"