diff --git a/app/views/issues/_bulk_edit_deliverable.html.erb b/app/views/issues/_bulk_edit_deliverable.html.erb index 2224cb2..f4a0e97 100644 --- a/app/views/issues/_bulk_edit_deliverable.html.erb +++ b/app/views/issues/_bulk_edit_deliverable.html.erb @@ -1,4 +1,4 @@ -<% if project.module_enabled?(:contracts) %> +<% if project.module_enabled?(:contracts) && User.current.allowed_to?(:assign_deliverable_to_issue, project) %>
<%= label_tag(:deliverable_id, l(:field_deliverable)) %> <% options = project.contracts.inject([]) {|data, contract| diff --git a/test/integration/redmine_contracts/hooks/view_issues_bulk_edit_details_bottom_hook_test.rb b/test/integration/redmine_contracts/hooks/view_issues_bulk_edit_details_bottom_hook_test.rb index 2f4432b..fd28f57 100644 --- a/test/integration/redmine_contracts/hooks/view_issues_bulk_edit_details_bottom_hook_test.rb +++ b/test/integration/redmine_contracts/hooks/view_issues_bulk_edit_details_bottom_hook_test.rb @@ -23,22 +23,39 @@ class RedmineContracts::Hooks::ViewIssuesBulkEditDetailsBottomHookTest < ActionC end context "with Contracts Enabled" do - setup do - visit_issue_bulk_edit_page([@issue, @issue2, @issue3]) - end - - should "render the a select field for the deliverables with all of the deliverables grouped by contract" do + context "with permission to Assign Deliverable" do + setup do + @role.permissions << :assign_deliverable_to_issue + @role.save! + visit_issue_bulk_edit_page([@issue, @issue2, @issue3]) + end - assert_select "select#deliverable_id" do - assert_select "optgroup[label=?]", @contract1.name do - assert_select "option", :text => /#{@deliverable1.title}/ - end + should "render the a select field for the deliverables with all of the deliverables grouped by contract" do - assert_select "optgroup[label=?]", @contract2.name do - assert_select "option", :text => /#{@deliverable2.title}/ + assert_select "select#deliverable_id" do + assert_select "optgroup[label=?]", @contract1.name do + assert_select "option", :text => /#{@deliverable1.title}/ + end + + assert_select "optgroup[label=?]", @contract2.name do + assert_select "option", :text => /#{@deliverable2.title}/ + end end end end + + context "with no permission to Assign Deliverable" do + setup do + @role.permissions.delete(:assign_deliverable_to_issue) + @role.save! + visit_issue_bulk_edit_page([@issue, @issue2, @issue3]) + end + + should "not render the deliverable select field" do + assert_select 'select#deliverable_id', :count => 0 + end + end + end context "with Contracts Disabled" do