【问题标题】:Rails_admin exclude fields by authorizationRails_admin 通过授权排除字段
【发布时间】:2015-07-29 11:39:48
【问题描述】:

我有一个名为Person 的模型。它有两个子模型AdminOwner

我创建了rails_admin 仪表板,其中包含多个具有关联的模型。

我已将设计添加到Person,这就是为什么AdminOwner 可以登录到我的仪表板。

我添加了对 cancan 的授权并定义了他们的能力。管理员可以管理一切,而所有者可以管理自己的数据。

现在问题来了。当所有者登录并尝试编辑自己时,他需要编写自己的密码,这很好。

但是,当管理员登录并尝试编辑所有者时,要求写入所有者的密码

如何排除actions中的一些字段,取决于现在谁在修改它?

我虽然使用登录 mby devise 的current_person,但是当我的rails_admin do /* my code */ end 放在我的模型代码中时如何获取它?

【问题讨论】:

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


    【解决方案1】:

    这是隐藏密码字段的一种方法,因此只有编辑他/她的记录的用户才能看到它。

    edit do
      include_all_fields
      [:password, :password_confirmation].each do |f|
        field f do
          visible do           
            bindings[:object].id == bindings[:view].current_user.id         
          end
        end
      end
    end
    

    您可以创建自定义操作来重置仅限管理员使用的密码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-03
      • 1970-01-01
      • 2012-07-19
      • 2020-01-03
      • 1970-01-01
      • 2016-11-27
      • 2021-10-15
      • 2020-01-05
      相关资源
      最近更新 更多