加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 一起使用Devise / Cancan / Rolify

发布时间:2020-12-16 23:13:29 所属栏目:百科 来源:网络整理
导读:我正在尝试建立授权/身份验证系统,我感到困惑,所以我有几个问题: 在很多教程中,人们建立了用户/角色HABTM关系. 我知道这允许每个用户拥有多个角色,但是如果 你希望每个用户只有一个角色,这是必要的吗?如果我想为“活跃”和“非活动”用户提供选项,那应该是
我正在尝试建立授权/身份验证系统,我感到困惑,所以我有几个问题:

>在很多教程中,人们建立了用户/角色HABTM关系.
我知道这允许每个用户拥有多个角色,但是如果
你希望每个用户只有一个角色,这是必要的吗?如果我想为“活跃”和“非活动”用户提供选项,那应该是那些
是角色还是其他什么?
>在Cancan wiki中,它表示如果您希望一个用户拥有一个角色,您应该将其设为属性然后使用“can”
:manage,:all if user.role ==“admin”“,但不是那样
危险因为每次“admin”只是一个字符串?做这个
物?有什么更好的方法来解决这个问题?

我已经尽力阅读所有涉及的文档,我从本教程开始

http://railsapps.github.com/tutorial-rails-bootstrap-devise-cancan.html

虽然我也读过
http://starqle.com/articles/rails-3-authentication-and-authorization-with-devise-and-cancan-part-1/和
tonyamoyal.com/2010/09/29/rails-authentication-with-devise-and-cancan-part-2-restful-resources-for-administrators/

我真的不能按照我想要的方式工作.我该怎么做呢?

解决方法

1.您不需要多个角色或角色表

CanCan与您在应用程序中定义角色的方式无关.您可以在用户模型中轻松拥有角色字段.

对于“活动”和“非活动”用户,您有两种选择.您可以拥有该状态的字段,或者您可以拥有“非活动”角色并将任何其他角色视为“活动”.这取决于“活动”的含义以及您在应用程序中使用该信息的方式.

2.将用户角色存储在字符串中没有任何问题.

角色存储为字符串这一事实并不会降低安全性.但是,您应该使用attr_protected to prevent mass assignment的用户角色.

attr_protected :role

这样,用户将无法更新自己的角色.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读