gpt4 book ai didi

ruby-on-rails - Rails 3 事件管理员。如何为非管理员角色的用户禁用仪表板?

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:51 26 4
gpt4 key购买 nike

这就是我查看用户角色的方式:current_admin_user.role

我正在使用 CanCan

我怎么能

  1. 隐藏仪表板按钮
  2. 限制对仪表板的访问,以防用户发现它的 url

-我试过这个但不起作用。

dashboard_controller.rb
if current_admin_user.role == 'customer'
redirect_to shipments_path
end

我在 admin/dashboards.rb 中试过这个

controller do
def scoped_collection
if current_admin_user.role == 'customer'
redirect_to shipments_path
end
end
end

但产生错误 undefined method 'controller' for ActiveAdmin::Dashboards:Module (NoMethodError)

最佳答案

我猜你知道这个地方:https://github.com/gregbell/active_admin/issues/501 ,那里有一些关于仪表板的好主意。

在你的 dashboards.rb 文件中渲染一个像这样的部分:

ActiveAdmin::Dashboards.build do

section 'Common', :priority => 1 do
div do
render 'common_dashboard'
end
end
...
end

然后从您应该在 app/views/admin/dashboard/_common_dashboard.html.erb 创建的部分中,您可以访问 current_admin_user 对象:

<ul>
<li><%= current_admin_user.role %></li>
</ul>

另一种从 dashboards.rb '''environment''' 访问 current_admin_user 的方法是使用 arbre 语法并像这样制定你的仪表板部分

section "Common",:priority => 1 do 
div do
if current_admin_user.role == "customer"
li "You are a customer"
end
end
''
end

关于ruby-on-rails - Rails 3 事件管理员。如何为非管理员角色的用户禁用仪表板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8948925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com