Я создал плагин для redmine, который модифицирует ядро RepositoryControler.
Я добавил патч с новой функцией внутри этого контроллера, и я могу вызывать эту функцию на основе разрешений роли.
Но чтобы правильно настроить разрешения, мне нужно настроить before_filter
с авторизацией (:authorize
) для моей новой функции.
Проблема в том, что добавление before_filter в мой патч не работает, и я не знаю, как это сделать лучше всего. Следуя моему коду:
клиент.rb
module RepositoriesPatch
require_dependency 'repositories_controller'
def self.included(base)
base.send(:include, InstanceMethods)
end
end
module InstanceMethods
require_dependency 'repositories_controller'
#I THINK THE BEFORE_FILTER SHOULD BE PLACED HERE, BUT IT DIDN'T WORKED.
# before_filter :authorize, :only => :exec_client (????????)
def exec_client
begin
....
end
end
Rails.configuration.to_prepare do
RepositoriesController.send(:include, RepositoriesPatch)
end
init.rb
permission :repositories, :repositories => :exec_client
project_module :repository do
permission :exec, :repository => :exec_client
end
Rails.configuration.to_prepare do
RepositoriesController.send(:include, RepositoriesPatch)
end
settings :default => {'empty' => true}, :partial => 'settings/gerar_versao_configuration'
end