Commit f919a26e0e4881ace844362a272202c928f35b11
1 parent
34ebf858
Exists in
oauth_external_login
and in
1 other branch
federation: Search external env by domain when loggin in
Showing
2 changed files
with
6 additions
and
2 deletions
Show diff stats
app/models/concerns/external_user.rb
@@ -18,7 +18,7 @@ module ExternalUser | @@ -18,7 +18,7 @@ module ExternalUser | ||
18 | module ClassMethods | 18 | module ClassMethods |
19 | def webfinger_lookup(login, domain, environment) | 19 | def webfinger_lookup(login, domain, environment) |
20 | if login && domain && environment.has_federated_network?(domain) | 20 | if login && domain && environment.has_federated_network?(domain) |
21 | - external_environment = environment.external_environments.find_by_url(domain) | 21 | + external_environment = environment.external_environments.find_by_domain(domain) |
22 | scheme = "http#{external_environment.uses_ssl? ? 's' : ''}" | 22 | scheme = "http#{external_environment.uses_ssl? ? 's' : ''}" |
23 | url = URI.parse(scheme+"://"+ domain +'/.well-known/webfinger?resource=acct:'+ | 23 | url = URI.parse(scheme+"://"+ domain +'/.well-known/webfinger?resource=acct:'+ |
24 | login+'@'+domain) | 24 | login+'@'+domain) |
@@ -51,7 +51,7 @@ module ExternalUser | @@ -51,7 +51,7 @@ module ExternalUser | ||
51 | result = nil | 51 | result = nil |
52 | response = nil | 52 | response = nil |
53 | redirections_allowed = 3 | 53 | redirections_allowed = 3 |
54 | - external_environment = ExternalEnvironment.find_by_url(domain) | 54 | + external_environment = ExternalEnvironment.find_by_domain(domain) |
55 | scheme = "http#{external_environment.uses_ssl? ? 's' : ''}" | 55 | scheme = "http#{external_environment.uses_ssl? ? 's' : ''}" |
56 | location = scheme + '://' + domain + '/api/v1/login' | 56 | location = scheme + '://' + domain + '/api/v1/login' |
57 | request_params = CGI.unescape({ login: login, password: password }.to_query) | 57 | request_params = CGI.unescape({ login: login, password: password }.to_query) |
app/models/external_environment.rb
@@ -11,4 +11,8 @@ class ExternalEnvironment < ActiveRecord::Base | @@ -11,4 +11,8 @@ class ExternalEnvironment < ActiveRecord::Base | ||
11 | url.starts_with? 'https' | 11 | url.starts_with? 'https' |
12 | end | 12 | end |
13 | 13 | ||
14 | + def self.find_by_domain(domain) | ||
15 | + where(url: ['http://' + domain + '/', 'https://' + domain + '/']).first | ||
16 | + end | ||
17 | + | ||
14 | end | 18 | end |