首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共同使用Devise/Cancan/Rolify

共同使用Devise/Cancan/Rolify
EN

Stack Overflow用户
提问于 2012-06-04 14:09:35
回答 1查看 4.6K关注 0票数 6

我试图建立一个授权/身份验证系统,但我感到困惑,所以我有几个问题:

  1. 在许多教程中,人们建立了用户/角色的HABTM关系。我知道这允许每个用户都有多个角色,但是如果您希望每个用户只有一个角色,这有必要吗?如果我想拥有“活动”和“非活动”用户的选项,这些用户应该是角色还是其他什么?
  2. 在Cancan中,它说如果你想让一个用户拥有一个角色,你应该让它成为一个属性,然后使用"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/http://starqle.com/articles/rails-3-authentication-and-authorization-with-devise-and-cancan-part-1/

我只是不能让它按我想的方式工作。我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-04 21:01:04

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

CanCan不知道如何在应用程序中定义角色。您也可以在用户模型中轻松地拥有一个角色字段。

至于“活动”和“非活动”用户,您有两个选项。您可以有一个用于该状态的字段,也可以有一个“非活动”角色,并考虑任何其他角色“活动”。这取决于您所说的“活动”是什么,以及您如何在应用程序中使用这些信息。

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

角色存储为字符串的事实并不会使其安全性降低。但是,您应该使用用户角色的保护以防止大规模分配

代码语言:javascript
复制
attr_protected :role

这样,用户就无法更新自己的角色。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10882741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档