我有一个自定义组,其中包含成员,我希望该组能够访问该插件。
在我的init.rb中:
menu :application_menu, :release_approbation, {:controller => 'release_approbation', :action => 'index'}, :if => Proc.new { User.current.allowed_to?(:release_view, nil, :global => true) }, :caption => 'Release Approbation'
permission :release_view, :release_approbation => :index, :require => :loggedin
permission :release_approve, :release_approbation => :approve, :require => :loggedin
在我的控制器中:
before_filter :authorize_global, :release_approbation => :index
before_filter :authorize_global, :release_approbation => :approve
在我的redmine管理面板中,在角色和权限中,我添加的组具有插件操作的权限。这不是任何项目的一部分,而是一个全局插件。
答案 0 :(得分:0)
让我们看看。您可以检查该权限是否属于这样的角色:
<% if User.current.allowed_to?(:permission_name, nil, :global => true) %>
这将尝试从member_roles表中找到您需要的权限。由于您已将权限添加到该组的所有用户,因此这将起到作用 要不呈现插件的链接,您可以在init.rb中执行类似的操作(取自Timesheet插件):
menu(:top_menu,
:timesheet,
{:controller => :timesheet, :action => :index},
:caption => :timesheet_title,
:if => Proc.new {
User.current.allowed_to?(:see_project_timesheets, nil, :global => true) ||
User.current.allowed_to?(:view_time_entries, nil, :global => true) ||
User.current.admin?
})
检查当前用户是否具有admin权限或具有以下任何权限:see_project_timesheets或:view_time_entries。 我希望这能帮到你。