5

我正在尝试基于每个请求的用户登录来为公寓实施自定义电梯。

基本上我想要实现的是:

  • 每次有请求进来,切换到正确的租户
  • 如果没有登录用户,则选择默认租户

但是,我的问题是我不如何从通用电梯提供的请求( Rack::Request )对象中检索当前用户。关于如何做到这一点的任何提示或有任何其他方法可以在没有请求的情况下获取当前用户?

我正在使用设计进行身份验证。

4

1 回答 1

6

对于那些和我有同样问题的人来说,这是我的解决方案。

配置/初始化程序/apartment.rb

#My excluded models    
config.excluded_models = %w{ User }

Rails.application.config.middleware.use 'Apartment::Elevators::Generic', lambda { |request|
      tenant_name = nil
  


  if request.env['rack.session']['warden.user.user.key'] != nil
      tenant_name = User.find(request.env['rack.session']['warden.user.user.key'][0][0]).account.name
  end

  return tenant_name
}

但是,我不确定这是 100% 防故障的,所以如果我发现它有问题,我会发布更新。

于 2015-09-02T16:57:21.790 回答