【发布时间】:2019-07-19 12:48:37
【问题描述】:
我现在真的很傻。我正在使用 ActiveAdmin 来控制我的 NGO 中的不同事物:成员、员工、捐赠等,每一个都定义为 ActiveAdmin 资源(即具有不同视图、操作等的选项卡)。
但是,我似乎无法实现正确的授权,因为 ActiveAdmin 不允许 Resource 成为其自定义 AuthorizationAdapters 中的功能。也就是授权的主体?方法是 Rails 模型(如用户或捐赠)或 ActiveAdmin::Page 但不是 ActiveAdmin 资源。
实际上使用 ActiveAdmin::Page 进行授权比没用更糟糕,因为无论有人试图访问成员、员工还是捐款,subject.name 都会显示“仪表板”。此外,使用命名空间不起作用,因为所有三个都分配给 :admin 命名空间。我一直无法获得授权?方法告诉我该命名空间中的控制器名称,根据文档,它应该是 Admin::StaffController 或类似名称(知道控制器名称可以解决问题)。有些人使用 Rails 模型进行授权可能没问题,但我的 Members 资源和我的 Staff 资源都是基于 User 模型的,它们只是提供了截然不同的管理体验、不同的操作,而且不同的人应该可以访问这些管理页面.
真的没有办法实现基于Resource或者controller的访问吗??这似乎是限制对站点区域的访问的最常识性方法,早在我们谈论某人是否应该能够删除用户之前......
我的生产环境目前有 ActiveAdmin 1.4.3 和 Rails 5.1。
【问题讨论】:
标签: ruby-on-rails-5 activeadmin