gpt4 book ai didi

ruby-on-rails - ActiveAdmin 中的 Multi-Tenancy 、多管理员用户

转载 作者:行者123 更新时间:2023-12-04 12:59:25 24 4
gpt4 key购买 nike

我正在构建一个以 ActiveAdmin 作为主管理界面的 Multi-Tenancy 应用程序。我已经使用了acts_as_tenant gem 来很好地完成数据分离。

我使用 AdminUser 模型作为所有用户的用户模型对象。

为了添加其他用户,AdminUser 也适用于租户。

这是放弃登录,因为当 ActiveAdmin/Devise 尝试进行身份验证时,我假设它首先点击 find_tenant 过滤器,如下所示:

class ApplicationController
set_current_tenant_through_filter

before_filter :find_tenant

def find_tenant
if admin_user_signed_in?
set_current_tenant(Company.find(current_admin_user.company_id))
end
end

不知道如何解决这个问题...我希望用户登录,然后应用程序从登录用户那里获取 company_id 并设置租户,并且 ActiveAdmin 上显示的所有数据都通过该租户进行范围限定(这部分通过如果我可以通过登录,acts_as_tenant gem)。

谢谢

最佳答案

我认为您的怀疑是正确的,并且在身份验证之前调用了 find_tenant 方法,导致 admin_user_signed_in?是假的。相反,调整它以使用后过滤器应该可以解决问题,如果确实如此(来自 http://guides.rubyonrails.org/action_controller_overview.html#after-filters-and-around-filters )。

class ApplicationController
set_current_tenant_through_filter

after_filter :find_tenant

def find_tenant
if admin_user_signed_in?
set_current_tenant(Company.find(current_admin_user.company_id))
end
end

不确定 set_current_tenant_through_filter 如何处理所有这些,您是否尝试以两种不同的方式做同样的事情?

关于ruby-on-rails - ActiveAdmin 中的 Multi-Tenancy 、多管理员用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com