我正在开发一个redmine插件,其任务是提供一些额外的允许/禁止选项,其中一个功能应该是管理员可以允许/禁止访问为持续角色发布报告。
问题是,即使您尝试在插件init.rb中重新定义redmine.rb中定义的权限,也会合并权限,这会导致另一个权限(包含在:view_issues
中)允许访问问题报告。
如何覆盖使用我的插件init.rb在redmine.rb中定义的权限
我的插件init.rb:
Redmine::Plugin.register :report_roles do
name 'Report Roles plugin'
author 'Author name'
description 'This is a plugin for Redmine'
version '0.0.1'
url 'http://example.com/path/to/plugin'
author_url 'http://example.com/about'
Redmine::AccessControl.map do |map|
map.project_module :issue_tracking do |map|
map.permission :generate_issue_reports, {:reports => [:issue_report,:issue_report_details ]},:read => true
end
end
end
我的redmine.rb的相关部分:
...
map.project_module :issue_tracking do |map|
# Issue categories
map.permission :manage_categories, {:projects => :settings, :issue_categories => [:index, :show, :new, :create, :edit, :update, :destroy]}, :require => :member
# Issues
map.permission :view_issues, {:issues => [:index, :show],
:auto_complete => [:issues],
:context_menus => [:issues],
:versions => [:index, :show, :status_by],
:journals => [:index, :diff],
:queries => :index,
:reports => [:issue_report, :issue_report_details]},
:read => true
end
...
:reports => [:issue_report, :issue_report_details]
(包含在:view_issues中)也允许访问问题报告,我只想"删除"来自:issue_views
的权限并授予他们额外的权限,因为应启用:view_issues
权限!
我还尝试在init.rb中重新定义:view_issues
,但这没有效果。