]> source.dussan.org Git - redmine.git/commitdiff
"View differences" buttons are shown in the repository page even without "Browse...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 30 Mar 2019 06:13:08 +0000 (06:13 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 30 Mar 2019 06:13:08 +0000 (06:13 +0000)
Patch by Go MAEDA.

git-svn-id: http://svn.redmine.org/redmine/trunk@18013 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/repositories/_revisions.html.erb
test/functional/repositories_controller_test.rb

index 914999b342bda63229b8455492fd54ff28248d57..51438079119e6df72ec7cce679b42e9146302ba6 100644 (file)
@@ -20,7 +20,7 @@ end %>
        :repository_id => @repository.identifier_param, :path => to_path_param(path)},
       :method => :get
      ) do %>
-<% show_diff = revisions.size > 1 %>
+<% show_diff = revisions.size > 1 && User.current.allowed_to?(:browse_repository, @repository.project) %>
 <%= submit_tag(l(:label_view_diff), :name => nil) if show_diff %>
 <table class="list changesets">
 <thead><tr>
index 74701e2e80e82672b39b1b492fbc0e3f85a2969a..19debb4dc37acd11451ed0acb968c5aa7c0fc059 100644 (file)
@@ -182,6 +182,25 @@ class RepositoriesControllerTest < Redmine::RepositoryControllerTest
     end
   end
 
+  def test_show_should_show_diff_button_depending_on_browse_repository_permission
+    @request.session[:user_id] = 2
+    role = Role.find(1)
+
+    role.add_permission! :browse_repository
+    get :show, :params => {
+      :id => 1
+    }
+    assert_response :success
+    assert_select 'input[value="View differences"]'
+
+    role.remove_permission! :browse_repository
+    get :show, :params => {
+      :id => 1
+    }
+    assert_response :success
+    assert_select 'input[value="View differences"]', :count => 0
+  end
+
   def test_revisions
     get :revisions, :params => {
         :id => 1,