在我的Redmine插件上添加新权限

时间:2014-07-15 13:54:59

标签: ruby-on-rails redmine

我创建了一个Redmine插件,我想为它添加一个新的权限 我按照插件教程,但即使我以管理员身份登录并拥有完整权限,我也会收到此错误,然后尝试访问我的插件:

  

403"您无权访问此页面。"

我做错了什么?

这是我的代码:

init.rb

Redmine::Plugin.register :redmine_plugin do
      permission :my_permission, :redmine_plugin => :controller
end

controller.rb

class MyController < ApplicationController
  unloadable

  before_filter :authorize

  def controller
     ...
  end

end

2 个答案:

答案 0 :(得分:1)

我弄清楚了,我将:authorize更改为新定义:test。 我不知道这是好方法,但它有效。

<强> controller.rb

class MyController < ApplicationController
  unloadable

  before_filter :test

  def test
    @project = Project.find(params[:project_id])
    if !User.current.allowed_to?(:my_permission, @project)
      render_404
    end
  end

  def controller
     ...
  end

end

答案 1 :(得分:0)

我有同样的问题。 似乎:authorize仅在定义@project字段时才能正常工作。因此,如果项目无关紧要,那就足够了:

class SomeController < ApplicationController
  before_filter :find_project, :authorize

  def index
    # some code
  end

  def find_project
    @project = Project.new
  end
end