summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Davis <edavis@littlestreamsoftware.com>2010-10-15 23:11:00 +0000
committerEric Davis <edavis@littlestreamsoftware.com>2010-10-15 23:11:00 +0000
commit5823a71c1851a331a8a28c1255809efe4386fe0d (patch)
tree1a1029a59323913ad4459c73f21965c1041acf91
parent06c0e5ad1c4450013456b45f0af21de35fa894aa (diff)
downloadredmine-5823a71c1851a331a8a28c1255809efe4386fe0d.tar.gz
redmine-5823a71c1851a331a8a28c1255809efe4386fe0d.zip
Revert part of r4064.
Having link_to_if_authorized support urls has too many edge cases and isn't working with sub-uris. #6195 #6513 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4257 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/helpers/application_helper.rb18
-rw-r--r--test/unit/helpers/application_helper_test.rb9
2 files changed, 2 insertions, 25 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 6ba40eb45..e2255da30 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -34,25 +34,11 @@ module ApplicationHelper
# Display a link if user is authorized
#
# @param [String] name Anchor text (passed to link_to)
- # @param [Hash, String] options Hash params or url for the link target (passed to link_to).
- # This will checked by authorize_for to see if the user is authorized
+ # @param [Hash] options Hash params. This will checked by authorize_for to see if the user is authorized
# @param [optional, Hash] html_options Options passed to link_to
# @param [optional, Hash] parameters_for_method_reference Extra parameters for link_to
def link_to_if_authorized(name, options = {}, html_options = nil, *parameters_for_method_reference)
- if options.is_a?(String)
- begin
- route = ActionController::Routing::Routes.recognize_path(options.gsub(/\?.*/,''), :method => options[:method] || :get)
- link_controller = route[:controller]
- link_action = route[:action]
- rescue ActionController::RoutingError # Parse failed, not a route
- link_controller, link_action = nil, nil
- end
- else
- link_controller = options[:controller] || params[:controller]
- link_action = options[:action]
- end
-
- link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(link_controller, link_action)
+ link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(options[:controller] || params[:controller], options[:action])
end
# Display a link to remote if user is authorized
diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb
index 2906ec6e4..d44bc0045 100644
--- a/test/unit/helpers/application_helper_test.rb
+++ b/test/unit/helpers/application_helper_test.rb
@@ -49,15 +49,6 @@ class ApplicationHelperTest < ActionView::TestCase
assert_match /href/, response
end
- should "allow using the url for the target link" do
- User.current = User.find_by_login('admin')
-
- @project = Issue.first.project # Used by helper
- response = link_to_if_authorized("By url",
- new_issue_move_path(:id => Issue.first.id))
- assert_match /href/, response
- end
-
end
def test_auto_links