根据角色/订阅禁用rails应用程序的功能

时间:2012-07-30 15:21:53

标签: ruby-on-rails ruby-on-rails-3 authorization roles subscriptions

是否有任何好的gems /插件/扩展用于rails根据用户的角色或包订阅选择性地为用户禁用功能?

例如,存在两个包(标准,高级)。标准软件包允许用户在应用程序内每月最多询问20个问题,高级软件包允许用户每月提出50个问题。因此,功能限制不仅包括包订阅,还包括已提问的数量。

注意:我已经在使用cancan进行简单的授权任务。

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

如果可能,我会尝试留在康康中..你可能已经使用设计进行身份验证了吗?如果是这样,我会尝试modift cancan。如果用户是超级用户(sysadmin)或premium_user或standard_user的基本情况,您可以拥有这三件事的角色。

如果用户可以注册多个东西,我会建议创建一个成员资格/产品注册类(user_id,package_id,membership_level_id)或者向用户添加范围/条件/标志,以查看谁可以从首先是什么,然后交给合格的用户。

答案 1 :(得分:0)

看看Rolify。这是一个很好的宝石,可以很好地与CanCan集成,用于资源范围和授权 关于如何将两者结合使用的文档教程:
https://github.com/EppO/rolify/wiki/Tutorial

答案 2 :(得分:0)

您可以使用cancan定义可继承的角色。这将允许您创建两个角色,标准和高级,并且溢价继承标准的所有能力并定义您自己的。

https://github.com/ryanb/cancan/wiki/Role-Based-Authorization