代码之家  ›  专栏  ›  技术社区  ›  salt.racer

如何设置用户首选项

  •  3
  • salt.racer  · 技术社区  · 16 年前

    我使用Ruby on Rails作为内部站点。该站点的不同用户可以访问各种各样的数据和高度不同的数据透视图。在这些不同的用户类别中,需要有访问级别。在访问级别中,我需要能够添加来自其他类别用户的功能。

    在intranet站点发布的“1.0版”中,我实现了用户的一般类。我现在需要实现对用户访问的更细粒度控制。

    问题是怎么做?

    对用户首选项进行编码(显示地图(或不显示地图);访问此功能,但不显示此功能)而不爆炸数据库架构并在视图代码中填充<%if feature允许在任何位置使用%>标记的普遍做法是什么。

    4 回复  |  直到 16 年前
        1
  •  3
  •   Christian Lescuyer    16 年前

    另一种完全不同的方法是使用acts_作为认证和授权插件。这些表将由插件(即 用户 , 角色 角色 _用户)。从文档:

    授权插件提供以下功能:

    • 在类或实例方法上检查授权的简单方法 使用许可证和许可证的级别?

    • 对整个应用程序、模型类或 模型的实例(即特定对象)。

    • 一些喜欢英语的动态方法,利用已定义的角色。你会的 能够使用“用户是安吉丽娜的粉丝”或“安吉丽娜有粉丝吗?”, 其中“fan”仅在roles表中定义。

    • 选择和选择一个MIXIN来满足数据库复杂度的要求。为了 所有的功能,您都需要使用“对象角色表”(见下文)

        2
  •  2
  •   Mike Woodhouse    16 年前

    使用<%填充视图代码 允许在任何位置使用功能标记。

    我想你不想那样做。假设所建议的替代方案都不可行,那么至少应该考虑将这些检查转移到控制器中,在控制器中可以将它们重构为prefore_过滤器。

    请参阅“使用Rails的敏捷Web开发”中的第11.3节(第2版我的副本中的第158页)。

        3
  •  1
  •   Community CDub    8 年前

    看看这个 permissions topic

        4
  •  0
  •   salt.racer    16 年前

    这是我要找的更多。。。贴在这里以备将来参考。

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