ruby-on-rails - Rails Admin -> 仅当用户具有角色 admin 时才能访问
问题描述
您好,我刚刚发现了 gem railsadmin,我对其进行了配置,但目前所有用户都可以通过在其 url 中键入 admin 来访问管理部分,我想限制访问权限并仅允许具有管理员角色的用户访问。
在我的用户表中,我已经有一个角色列,我写了“admin”来创建一个用户 -> 超级用户
RailsAdmin.config do |config|
## == Devise ==
config.authenticate_with do
warden.authenticate! scope: :user
end
config.current_user_method(&:current_user)
end
实际上所有用户都可以访问管理仪表板
解决方案
如果您使用的是设计,您可以通过以下方式限制访问routes.rb
authenticate :user, lambda { |u| u.role == "admin" } do
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
end
或者您可以使用授权宝石,例如cancancan
(如何使用)
推荐阅读
- iphone - 来自网络摄像头的 WebRTC 快照并将其保存到 PHP 中的服务器:iPhone Safari 在分辨率高于 2096 时崩溃
- algorithm - 计算形成字符串的连续子串的有序可能不连续子串的数量
- linux-kernel - ebpf:关闭 bpf 对象并链接实例
- sql-server - 仅在日期时间列中显示日期然后将其转换为 Varchar 的最有效方法
- php - Laravel 护照 - 中间件 client_credentials 不记名令牌不起作用
- c++ - 如何使用析构函数删除在类构造函数中分配的动态内存
- splunk - 如何使用 Multisearch 在两个搜索查询之间进行交叉验证和计数
- angular - Angular,如何在没有更改检测问题的情况下将值从 HTML 模板传递到组件
- firebase - Facebook 登录弹出窗口不会显示在我的 React Native Expo 应用程序上(使用 Firebase)
- python - 如何在django的博客文章中指定用户?