0

我知道那里有许多优秀的授权宝石,例如cancan,声明式授权,cantango等等。我想知道是否有可能将模型类用作角色本身?是否有可能将模型类作为rails的角色?

喜欢例如让有两个资源导师和学生,那么是否有可能让导师和学生担任角色?我这样问,因为我对不同的资源有不同的认证页面,因为我的资源完全不同,而且我不想为单个用户类进行认证。

还指导我,如果我是完全错误的,因为我是新来的铁轨:-)。

回答

3

简短回答是“是”。对于康康来说,最终你正在定义什么是授权访问,你可以做到这一点,无论你想要的。大多数自动作品都会假设用户模型,但使用提供的帮助器并不难。您可以像往常一样在ability.rb文件中定义授权逻辑,但在控制器中手动调用authorize!

那就是说,为什么不让生活变得更简单,并使用单个用户模型,而是让用户的角色具有上下文相关性?然后,您可以从已建立的auth工作流中受益,并且可能还有更清晰的域模型。

+1

对于具有不同授权级别的单用户模型,有一个完美的解决方案。您可以简单地添加一个代表不同用户授权级别(可单独存储为常量)的位掩码整数字段。一个例子是管理员1,管理员2,管理员和经理3,员工4等。[role_model](https://github.com/martinrehfeld/role_model)gem提供开箱即用功能并恭维cancan完美。 – Noz 2013-02-20 15:13:42

+0

感谢戴夫和凯尔澄清我的疑惑。 – archit2u 2013-02-20 15:49:11

相关问题