Tag: activeadmin pundit

在Active Admin中切换公寓租户

这是我上一篇文章的扩展: 活跃的管理员和公寓gem 我以为我有这个工作,但我被卡住了。 我在公共架构中有一个Company模型作为租户模型和各个租户的Locations 。 这是我的Active Admin location.rb文件: ActiveAdmin.register Location do #Apartment::Tenant.switch!(‘abc’) controller do #Apartment::Tenant.switch!(‘abc’) before_filter do Apartment::Tenant.switch!(‘abc’) skip_authorization skip_policy_scope end end end skip_authorization skip_policy_scope来自我仍然使用AA的一些Pundit问题。 正如您所看到的,我尝试在几个地方添加Apartment::Tenant.switch 。 在控制器块内是我可以让它工作的唯一地方。 当我加载Locations索引页面时,它工作正常,我看到我的租户位置。 问题是,如果我回到仪表板或其他页面并返回位置并致电Apartment::Tenant.switch我会被踢回AA登录屏幕,我无法重新登录。我必须手动进入AA注销路径以强制注销。 这很奇怪,不知道如何解决这个问题。 日志显示不多。 我打算在这里添加一些逻辑菜单下拉菜单以设置会话变量等,然后在需要时让资源页面调用Apartment::Tenant.switch ,但这是一个截止的截止现在。 不知道它是Devise,Pundit,Apartment,Active Admin还是组合。 UPDATE 一些进步 – 试图添加开关的输出! 调用记录器调试并“解决”问题。 如果我将开关调用设置为变量,它也会消失: logger.debug “Apartment Switch: #{Apartment::Tenant.switch!(‘abc’).inspect}” new_tenant = Apartment::Tenant.switch!(‘abc’) 更新2 我之前的更新是错误的 – 问题仍然存在。 我把它缩小到了Devise。 第二个switch! […]

如何让Active Admin在登录后与Pundit合作

我已将配置权威addapter授权添加到我的应用程序中 config.authorization_adapter = ActiveAdmin::PunditAdapter 当我使用admin@example.com凭据登录时,我收到此错误。 Pundit::NotDefinedError in Admin::Dashboard#index unable to find policy AdminUserPolicy Extracted source (around line #2): insert_tag active_admin_application.view_factory[“page”] 所以我在policies / active_admin文件夹中创建了这些文件 adminuser_policy.rb module ActiveAdmin class AdminUserPolicy < ApplicationPolicy class Scope < Struct.new(:user, :scope) def resolve scope end end def home? true end def index? true end def show? true end def new? true […]