fix signup for organization user when subdomainless

pull/13445/head
Alberto Romeu 7 years ago
parent 1161a74ffa
commit 88d6da2422

@ -155,8 +155,18 @@ class SignupController < ApplicationController
end
def load_organization
subdomain = CartoDB.subdomainless_urls? ? request.host.to_s.gsub(".#{CartoDB.session_domain}", '') : CartoDB.subdomain_from_request(request)
@organization = ::Organization.where(name: subdomain).first if subdomain
if CartoDB.subdomainless_urls?
subdomain = request.host.to_s.gsub(".#{CartoDB.session_domain}", '')
if subdomain == CartoDB.session_domain
subdomain = params[:user_domain]
end
else
subdomain = CartoDB.subdomain_from_request(request)
end
if subdomain && subdomain != CartoDB.session_domain
@organization = ::Organization.where(name: subdomain).first
end
end
def check_organization_quotas

@ -14,7 +14,9 @@ CartoDB::Application.routes.draw do
root to: 'admin/pages#index'
get '/signup' => 'signup#signup', as: :signup
post '/signup' => 'signup#create', as: :signup_organization_user
post '/signup' => 'signup#create', as: :signup_organization_user
get '(/user/:user_domain)(/u/:user_domain)/signup' => 'signup#signup', as: :signup_subdomainless
post '(/user/:user_domain)(/u/:user_domain)/signup' => 'signup#create', as: :signup_subdomainless_organization_user
get '(/user/:user_domain)(/u/:user_domain)/signup_http_authentication' => 'signup#create_http_authentication', as: :signup_http_authentication
get '(/user/:user_domain)(/u/:user_domain)/signup_http_authentication_in_progress' => 'signup#create_http_authentication_in_progress', as: :signup_http_authentication_in_progress

@ -15,6 +15,26 @@ describe SignupController do
@fake_organization.delete if @fake_organization
end
it 'returns 200 when subdomainless and route is signup_subdomainless' do
@fake_organization = FactoryGirl.create(:organization_whitelist_carto)
CartoDB.stubs(:subdomainless_urls?).returns(true)
CartoDB.stubs(:session_domain).returns('localhost.lan')
Organization.stubs(:where).returns([@fake_organization])
host! "localhost.lan"
get signup_subdomainless_url(user_domain: 'organization')
response.status.should == 200
end
it 'returns 404 when subdomainless and route is signup' do
@fake_organization = FactoryGirl.create(:organization_whitelist_carto)
CartoDB.stubs(:subdomainless_urls?).returns(true)
CartoDB.stubs(:session_domain).returns('localhost.lan')
Organization.stubs(:where).returns([@fake_organization])
host! "localhost.lan"
get signup_url
response.status.should == 404
end
it 'returns 404 outside organization subdomains' do
get signup_url
response.status.should == 404

Loading…
Cancel
Save