1

redmineでプラグインを書いています。redmine のページのボタンにアクセスするために、プラグインにプロジェクトとユーザーのアクセス許可を取得しました。

私が欲しいもの:

ユーザーとプロジェクトがそれを行う権限を持っている場合にのみ、ボタンを表示します。

私のコードの下:

_navigation.html.erb

<% if ?????? -%> Here is the codition where display or not the button.
    <div style="float: left; width: auto; padding-right: 1%">  
    <%= button_to_function l(:gerar_build_project), remote_function(:action => 'printar', :controller => 'GerarVersao')%>
    </div>
<% end -%>

init.rb

  permission :view_repository, :gerar_versao_projeto => :exec_client

  project_module :gerar_versao_projeto do
     permission :view_repository, :gerar_versao_projeto => :exec_client
  end

gerar_versao_controller.rb

before_filter :find_project, :authorize, :only => :exec_client

def exec_client
.
.
.
end

private

def find_project
  @project = Project.find(params[:project_id])
end

ユーザーまたはプロジェクトがアクセス許可を持っている場合にのみボタンを表示するには、ifに何を入れなければならないか誰でも知っていますか?

ありがとうございました。

4

2 に答える 2

1

モデルにカスタムメソッドを追加して、ユーザーが許可されているかどうかを判断できます

# model
def permittable?
  he_is_in_some_types_say_exec_client ? true :false
end

次に、ビューで、現在のユーザーでこのメソッドを呼び出します。

# view
<% if current_user.permittable? %>
   <%= show_something %>
<% end %>
于 2013-06-11T17:35:39.200 に答える
0

私は自分で問題を解決しました。答えは簡単です。「人生では何も作られず、すべてがコピーされる」ということわざに従いました:)、以下にリストされているように、redmineから既存のコードをコピーしました。

<% if User.current.allowed_to?(:view_repository, @project) -%>

この「if」を使用して、ユーザーがプロジェクト内でボタンを表示できるかどうかを確認します。:view_repository は私が設定した許可であることに注意することが重要です。

ソリューションに関するご質問は、お気軽にご相談ください。

よろしくお願いします!

于 2013-06-11T21:18:17.403 に答える