Ruby on Rails的授权模型

时间:2009-12-17 15:27:46

标签: ruby-on-rails ruby authentication authorization

我正在构建一个项目管理应用程序,我不确定哪个是最好/正确的授权模型,因为我是Rails的新手(以及一般的编程)。这是我想要做的。

我希望能够将“客户端”添加到应用程序,然后将多个项目添加到客户端。我希望能够添加用户(实际上是客户端的代表)来查看客户端多个项目而不是其他客户端。我打算让时间跟踪,注释,注释和图像的控制器都与客户端和客户的项目相关联。

此外,我想设置帐户来控制谁可以拥有一个帐户。我不需要用户自己建立帐户。

这有意义吗?

6 个答案:

答案 0 :(得分:4)

我相信你提到的内容称为授权而非身份验证,无论如何:

我建议acl9进行授权,authlogic进行身份验证。

答案 1 :(得分:3)

这些(免费)Railscasts应该给你一些思考的食物。对于这类事情,有很多很棒的RubyGems /插件。

答案 2 :(得分:2)

The Ruby Toolbox为您提供工具及其在rails社区中的受欢迎程度的概述(由GitHub上的观察者和分析者评定)。正如您所看到的,建议的插件restful_authentication和authlogic几乎处于同一级别。

答案 3 :(得分:1)

Restful Authentication仍然是ruby on rails上用户身份验证的黄金标准。

答案 4 :(得分:1)

我过去曾使用Authorization plug-in并喜欢它,因为它提供了一些不错的元方法,例如:

  user.is_eligible_for_what   --> returns array of authorizable objects for which user has role "eligible"
  user.is_moderator_of? group --> returns true/false
  user.is_moderator_of group  --> sets user to have role "moderator" for object group.
  user.is_administrator       --> sets user to have role "administrator" not really tied to any object.

还有一个全新的RailsCast on CanCan

答案 5 :(得分:0)

我使用AuthLogic进行身份验证(登录用户并确保他们是他们声称的人)和declarative_authorization进行授权(确保他们可以访问资源)。有关详细信息,请参阅Ryan Bates在AuthLogicrestful_authentication上出色的Railscast。