使用redmine

时间:2016-05-19 13:42:47

标签: permissions redmine redmine-plugins

我有一个自定义组,其中包含成员,我希望该组能够访问该插件。

在我的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管理面板中,在角色和权限中,我添加的组具有插件操作的权限。这不是任何项目的一部分,而是一个全局插件。

1 个答案:

答案 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。 我希望这能帮到你。