mirror of
https://github.com/redmine/redmine.git
synced 2026-01-20 14:33:06 +01:00
Backport r22551 from trunk to 5.0-stable (#39862).
git-svn-id: https://svn.redmine.org/redmine/branches/5.0-stable@22553 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -312,7 +312,9 @@ Rails.application.routes.draw do
|
||||
get 'attachments/download/:id', :to => 'attachments#download', :id => /\d+/
|
||||
get 'attachments/thumbnail/:id(/:size)', :to => 'attachments#thumbnail', :id => /\d+/, :size => /\d+/, :as => 'thumbnail'
|
||||
resources :attachments, :only => [:show, :update, :destroy]
|
||||
constraints object_type: /(issues|versions|news|messages|wiki_pages|projects|documents|journals)/ do
|
||||
|
||||
# register plugin object types with ObjectTypeConstraint.register_object_type(PluginModel.name.underscore.pluralize')
|
||||
constraints Redmine::Acts::Attachable::ObjectTypeConstraint do
|
||||
get 'attachments/:object_type/:object_id/edit', :to => 'attachments#edit_all', :as => :object_attachments_edit
|
||||
patch 'attachments/:object_type/:object_id', :to => 'attachments#update_all', :as => :object_attachments
|
||||
get 'attachments/:object_type/:object_id/download', :to => 'attachments#download_all', :as => :object_attachments_download
|
||||
|
||||
@@ -20,6 +20,30 @@
|
||||
module Redmine
|
||||
module Acts
|
||||
module Attachable
|
||||
|
||||
class ObjectTypeConstraint
|
||||
cattr_accessor :object_types
|
||||
|
||||
self.object_types = Concurrent::Set.new(%w[
|
||||
issues versions news messages wiki_pages projects documents journals
|
||||
])
|
||||
|
||||
class << self
|
||||
def matches?(request)
|
||||
request.path_parameters[:object_type] =~ param_expression
|
||||
end
|
||||
|
||||
def register_object_type(type)
|
||||
object_types << type
|
||||
@param_expression = nil
|
||||
end
|
||||
|
||||
def param_expression
|
||||
@param_expression ||= Regexp.new("^(#{object_types.join("|")})$")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.included(base)
|
||||
base.extend ClassMethods
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user