diff --git a/app/views/line_items/_issue_form.html.erb b/app/views/line_items/_issue_form.html.erb
index 72d85c8..44f5a38 100644
--- a/app/views/line_items/_issue_form.html.erb
+++ b/app/views/line_items/_issue_form.html.erb
@@ -45,11 +45,14 @@
-
+
+ <% if User.current.allowed_to?(:add_line_items, nil, global: true) %>
+
+ <% end %>
<% end %>
diff --git a/app/views/line_items/_line_item_fields.html.erb b/app/views/line_items/_line_item_fields.html.erb
index cea0e13..c071f8b 100644
--- a/app/views/line_items/_line_item_fields.html.erb
+++ b/app/views/line_items/_line_item_fields.html.erb
@@ -35,13 +35,15 @@
0.00
- <% unless readonly %>
-
-
- |
+ <% if User.current.allowed_to?(:delete_line_items, nil, global: true) %>
+ <% unless readonly %>
+
+
+ |
+ <% end %>
<% end %>
\ No newline at end of file
diff --git a/init.rb b/init.rb
index 70852e9..76aab15 100644
--- a/init.rb
+++ b/init.rb
@@ -29,14 +29,12 @@ Redmine::Plugin.register :redmine_qbo_lineitems do
# Add safe attributes for core models
Issue.safe_attributes :line_items_attributes
-end
-# Administration menu extension
-Redmine::MenuManager.map :admin_menu do |menu|
- menu.push :redmine_qbo_lineitems, { controller: 'items', action: 'index' },
- icon: 'list',
- caption: :label_items,
- html: { class: 'icon icon-list' }
+ # Global Permissions
+ permission :view_line_items, { line_items: [:index, :show] }, global: true
+ permission :add_line_items, { line_items: [:new, :create] }, global: true
+ permission :edit_line_items, { line_items: [:edit, :update] }, global: true
+ permission :delete_line_items, { line_items: [:destroy] }, global: true
end
RedmineQboLineItems.setup
\ No newline at end of file
diff --git a/lib/line_items/hooks/view_hook_listener.rb b/lib/line_items/hooks/view_hook_listener.rb
index 914be09..b2d18a8 100644
--- a/lib/line_items/hooks/view_hook_listener.rb
+++ b/lib/line_items/hooks/view_hook_listener.rb
@@ -24,19 +24,19 @@ module LineItems
])
end
+ # Add the line items form to the issue edit page
def view_issues_edit_notes_bottom(context = {})
return if context[:issue].closed?
- context[:controller].send(:render_to_string, {
- partial: 'line_items/issue_form',
- locals: {
- f: context[:form]
- }
- }
- )
+ return unless User.current.allowed_to?(:edit_line_items, nil, global: true)
+ context[:controller].send(:render_to_string, { partial: 'line_items/issue_form', locals: { f: context[:form] } })
+ end
+
+ # Add the line items to the issue view page
+ def view_issues_show_description_bottom (context = {})
+ return unless User.current.allowed_to?(:view_line_items, nil, global: true)
+ context[:controller].send(:render_to_string, { partial: 'line_items/issue_line_items', locals: { issue: context[:issue] } })
end
- render_on :view_issues_show_description_bottom , partial: 'line_items/issue_line_items'
-
end
end
end
\ No newline at end of file
diff --git a/lib/redmine_qbo_line_items.rb b/lib/redmine_qbo_line_items.rb
index fbe8e02..1053703 100644
--- a/lib/redmine_qbo_line_items.rb
+++ b/lib/redmine_qbo_line_items.rb
@@ -12,10 +12,18 @@ module RedmineQboLineItems
def self.setup
unless Issue.ancestors.include?(LineItems::Patches::IssuePatch)
+ # Patches
Issue.prepend LineItems::Patches::IssuePatch
+
+ # Hooks
LineItems::Hooks::IssuesSaveHookListener
LineItems::Hooks::QboHookListener
LineItems::Hooks::ViewHookListener
+
+ # Administration menu extension
+ Redmine::MenuManager.map :admin_menu do |menu|
+ menu.push :redmine_qbo_lineitems, { controller: 'items', action: 'index' }, icon: 'list', caption: :label_items, html: { class: 'icon icon-list' }
+ end
end
end
end
\ No newline at end of file