1

是否有任何好的 gems/plugins/extensions 可以根据用户的角色或他们拥有的包订阅有选择地为用户禁用功能?

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

注意:我已经在使用cancan来完成简单的授权任务。

谢谢你的帮助

4

3 回答 3

1

如果可能的话,我会尽量留在康康。你可能已经在使用设计进行身份验证了?如果是这样,我会尝试修改 cancan。如果该用户是超级用户(系统管理员)或高级用户或标准用户的基本情况,您可以拥有这三件事的角色。

如果用户可以注册不止一件事,我会考虑创建会员/产品注册类(user_id、package_id、membership_level_id)或向用户添加范围/条件/标志,以查看谁可以从“什么”开始做什么先交合格用户。

于 2012-07-30T16:58:30.200 回答
0

看看Rolify。这是一个很好的 gem,可以很好地集成CanCan资源范围和授权。
关于如何一起使用它们的文档教程:
https ://github.com/EppO/rolify/wiki/Tutorial

于 2012-07-30T16:49:32.580 回答
0

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

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

于 2012-07-30T21:31:07.117 回答