如何设置用户首选项

时间:2020-03-05 18:44:34  来源:igfitidea点击:

我在内部站点上使用Ruby on Rails。站点的不同用户可以访问各种数据以及数据的高度不同的观点。在这些不同类别的用户中,需要具有访问级别。在访问级别内,我需要能够添加其他类别用户的功能。

在发布的Intranet网站的" 1.0版"中,我实现了用户的一般类别。现在,我需要对用户访问实施更细粒度的控制。

问题是如何?

编码用户首选项(显示地图(显示)(或者不显示地图;访问此功能,但不访问此功能))而无需展开数据库架构并在各处到处填充<%(如果feature_allowed%>标签)的普遍接受的惯例是什么。

解决方案

回答

看看这个权限主题

回答

另一种完全不同的方法是使用act_as_authenticated和授权插件。这些表将由插件(即用户,角色和Roles_users)构建。从文档中:

The authorization plugin provides the following:
  • 使用#permit和#permit在类或者实例方法级别检查授权的简单方法?
  • 使用整个应用程序,模型类或者模型实例(即特定对象)的角色进行授权。
  • 一些利用英语定义的角色的动态方法。我们将能够使用" user.is_fan_of angelina"或者" angelina.has_fans?"之类的方法,其中仅在角色表中定义了" fan"。
  • 选择并选择所需的数据库复杂性级别的混合。对于所有功能,我们将要使用"对象角色表"(请参见下文)

回答

populating the view code with <% if
  feature_allowed %> tags everywhere.

我想你不想那样做。假设建议的替代方法都不可行,那么至少我们应该考虑将这些检查转移到控制器中,然后在其中将其重构为before_filter。

请参阅"使用Rails进行敏捷Web开发"中的第11.3节(在我的第二版副本中的第158页)中它们的确切位置。

回答

这是我一直在寻找的更多内容...在此处发布以供将来参考。

http://metautonomo.us/2008/09/30/easy-role-based-authorization/