【问题标题】:Restricting access on the rails admin gem限制对 rails admin gem 的访问
【发布时间】:2020-10-21 11:36:39
【问题描述】:

我有 rails admin gem 来查看我的应用程序的用户友好数据库。在这个数据库中,我有很多库,我想知道是否有一种方法只能让某些管理员访问某些库。 例如,具有电子邮件 library123@admin.com 的管理员用户只能在 rails admin DB 中查看库 123 的详细信息,因此该管理员将只能访问该 URL https://my-app.com/admin/library/35 而不是 https://my-app.com/admin/libraryhttps://my-app.com/admin.

我使用 devise 对 rails 管理员进行身份验证,我不使用任何 gem 进行授权。

我正在考虑向与图书馆相关的用户添加一列,以了解每个用户属于哪个图书馆,但是,我一直在想我该如何对 rails 管理员说只允许查看该用户所属的图书馆.

【问题讨论】:

  • 您是如何处理身份验证的?设计?你使用任何授权宝石吗?
  • 我使用 devise 对 rails 管理员进行身份验证,并且我不使用任何 gem 进行授权。
  • 您还需要使用授权 gem。像 CanCan,并为每个用户定义一些自定义权限。

标签: ruby-on-rails ruby rails-admin


【解决方案1】:

假设您在用户模型中实现了#admin?(或类似的):

  authenticate :user, ->(user) { user.admin? } do
    # mount your restricted routes
  end

【讨论】:

  • 我的用户模型中确实有一个管理员列,但是,我怎么能用电子邮件 123@admin.com 说用户管理员为真将只能看到 /admin/libraries/123并且用户 admin true 使用电子邮件 456@admin.com 将只能看到 /admin/libraries/456
  • 我明白你的意思。那么是的,您应该考虑 Mohsen 的回答并实施授权,这正是它的用途。
猜你喜欢
  • 2018-09-02
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
相关资源
最近更新 更多