如何允许管理员用户访问客户用户对象 rails
How to allow Admin user to access customer user objects rails
我有一个报告对象 belongs_to 一个客户(user_type)。我对其进行了设置,以便客户能够授予或删除管理员查看客户报告的权限。我需要知道我需要采取哪些步骤或方向才能让管理员用户查看报告。管理员用户应该只能查看报告(显示)并查看他们有权访问的报告索引。
我在想也许我应该创建一个新控制器,但我不确定这是否正确或如何将另一个控制器绑定到已有控制器的对象上。
我强烈建议查看 CanCanCan gem(不再支持 CanCan gem 的延续)。这样你的代码最终看起来像这样(你没有 post 任何代码,所以我必须对你的变量等做出假设):
<% 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
再次为猜测变量道歉。
我有一个报告对象 belongs_to 一个客户(user_type)。我对其进行了设置,以便客户能够授予或删除管理员查看客户报告的权限。我需要知道我需要采取哪些步骤或方向才能让管理员用户查看报告。管理员用户应该只能查看报告(显示)并查看他们有权访问的报告索引。
我在想也许我应该创建一个新控制器,但我不确定这是否正确或如何将另一个控制器绑定到已有控制器的对象上。
我强烈建议查看 CanCanCan gem(不再支持 CanCan gem 的延续)。这样你的代码最终看起来像这样(你没有 post 任何代码,所以我必须对你的变量等做出假设):
<% 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
再次为猜测变量道歉。