如何允许管理员用户访问客户用户对象导轨

问题描述 投票:1回答:1

我有一个属于客户(用户类型)的报告对象。 我进行了设置,以便客户能够授予或删除管理员查看客户报告的权限。 我需要知道我需要采取什么步骤或方向才能使报告对管理员用户可见。 管理员用户应该只能查看报告(显示)并查看他们有权访问的报告索引。

我在想也许我应该创建一个新的控制器,但是我不确定这是否正确,或者不确定如何与已具有控制器的对象绑定另一个控制器。

ruby-on-rails devise mongoid
1个回答
2
投票

我强烈建议您调查CanCanCan宝石(不再支持CanCan宝石的延续)。 这样,您的代码最终将看起来像这样(您没有发布任何代码,因此我必须对变量等进行假设):

<% if current_user.admin? %>
    <% if can? :view_report, @customer %>
      <!-- Render the report to this admin -->
      <!--  .............................  -->
    <% end %>
<% end %>

然后,您将在控制器中拥有类似的权限,以授予管理员查看用户报告的权限:

def handle_report
  can [:show], Report, :user_id => user.id
  if current_user.admin?
    can :manage, :current_report
  end
end

再次道歉,猜测这些变量。

© www.soinside.com 2019 - 2024. All rights reserved.