【发布时间】:2015-05-23 10:01:02
【问题描述】:
想知道使用 acl9 管理用户角色的最佳方法是什么?
这就是需要:
- 管理员应该能够更新用户的角色。
以下是问题:
- 我们如何列出所有主题角色? :admin, :manager
- 为了保持 api 端点 RESTful,我想在 user_controller 的更新方法中传递角色参数。
- 我怎样才能只为角色属性授权,以便用户对象的所有者仍然可以修改他们的名字、姓氏字段,但不能修改他们的角色字段?只允许管理员。
我可以在access_control 块之外手动检查参数:
def secure_params
if current_user.has_role?(:admin)
params.require(:user).permit(:first_name, :last_name, :role)
else
params.require(:user).permit(:first_name, :last_name)
end
end
但我想我会检查一下是否有更清洁的解决方案。
最后,使用RoleTypes.ADMIN、RoleTypes.MANAGER 代替:admin 是否可行且明智?如果是这样,最好的方法是什么?该类是否可以在整个 Rails 应用程序中访问?
【问题讨论】:
标签: ruby-on-rails acl9