Ограничить вход только для арендаторов Ruby on Rails - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть мультитенантное приложение, созданное с помощью Apartment gem и Devise.

Я хочу, чтобы URL-адреса с поддоменом могли иметь доступ к /users/sign_in при возврате 404, если к нему обращались в корневом домене.

Это должно быть действительно:

http://subdomain.lvh.me:3000/users/sign_in

Это не должно быть:

http://lvh.me:3000/users/sign_in

В моем rout.rb :

require 'root_domain_constraint'

Rails.application.routes.draw do

  constraints RootDomainConstraint do
    root 'pages#guest_landing'
  end

  devise_for :users

  root 'pages#tenant_landing'

end

В моем root_domain_constraint.rb :

class RootDomainConstraint

  def self.matches? request
    subdomains = ['www']

    request.subdomain.blank? || subdomains.include?(request.subdomain)
  end

end

Эта текущая настройка позволяет пользователю входить в систему как с субдомена, так и без субдомена (корневой домен).

ЕслиЯ перемещаю devise :users внутри constraints RootDomainConstraint блока.Это позволит войти в корневой домен, а не в поддомен.Но я хочу по-другому.

Гостевая посадка и посадка арендатора работает просто отлично.Я считаю, что я что-то упустил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...