Rails_admin 通过授权排除字段
Rails_admin exclude fields by authorization
我有一个名为 Person
的模型。它有两个子模型 Admin
和 Owner
.
我已经创建了 rails_admin
仪表板,其中包含多个具有关联的模型。
我已经为 Person
添加了设计,这就是 Admin
和 Owner
可以登录到我的仪表板的原因。
我已经添加了康康授权并定义了他们的能力。管理员可以管理一切,而所有者可以管理自己的数据。
问题来了。当所有者登录并尝试编辑自己时,他需要写自己的密码,这很好。
但是,当管理员登录并尝试编辑所有者时,它要求写入所有者密码。
如何在操作中排除一些字段,这取决于现在谁在更改它?
我虽然使用了在 mby 设计中登录的 current_person
,但是当我的 rails_admin do /* my code */ end
放在我的模型代码中时如何获取它?
这是一种隐藏密码字段的方法,因此只有编辑 his/her 记录的用户才能看到它。
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
您可以创建自定义操作来重置仅限管理员的密码。
我有一个名为 Person
的模型。它有两个子模型 Admin
和 Owner
.
我已经创建了 rails_admin
仪表板,其中包含多个具有关联的模型。
我已经为 Person
添加了设计,这就是 Admin
和 Owner
可以登录到我的仪表板的原因。
我已经添加了康康授权并定义了他们的能力。管理员可以管理一切,而所有者可以管理自己的数据。
问题来了。当所有者登录并尝试编辑自己时,他需要写自己的密码,这很好。
但是,当管理员登录并尝试编辑所有者时,它要求写入所有者密码。
如何在操作中排除一些字段,这取决于现在谁在更改它?
我虽然使用了在 mby 设计中登录的 current_person
,但是当我的 rails_admin do /* my code */ end
放在我的模型代码中时如何获取它?
这是一种隐藏密码字段的方法,因此只有编辑 his/her 记录的用户才能看到它。
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
您可以创建自定义操作来重置仅限管理员的密码。