我正在使用单一登录身份验证方法,该方法位于我的rails应用程序之前。在登录企业单点登录服务之前,访问权被完全拒绝。
我现在想要将一些控制器锁定到一组选定的管理员,我想知道最好的方法是什么。
我是否应该创建管理员控制器来管理谁有权访问,然后根据此表格检查已登录的用户凭据
答案 0 :(得分:1)
查看CanCan
答案 1 :(得分:1)
答案 2 :(得分:0)
看看我的新宝石Authority。它的访问控制是通过简单的Ruby方法完成的,因此你可以绝对使用任何你知道如何在Ruby中运行的逻辑。
您描述的情况是我们为此制作的原始情况:我们已经有一个SSO应用程序负责创建用户和分配角色的CRUD,例如“Carla是App X中的管理员;在App Y中她是工人和销售人员。“
当Carla试图访问App Y时,如果她已登录,它会告诉App Y“这是Carla:她已登录,她有以下角色。”然后由App Y决定这些角色实际上让她做了什么。这个逻辑根本没有打到数据库;我们实际上比较了YAML文件中提供的角色列表和权限。
这只是您可以使用Authority实现的逻辑的一个示例,但实际上它是开放的。
在您的情况下,如果您使用了权限,我建议您在StandardAuthorizer下对某些模型进行分组,在AdminAuthorizer下对其他模型进行分组。有关详细说明,请查看README。