Commit f919a26e0e4881ace844362a272202c928f35b11

Authored by Larissa Reis
1 parent 34ebf858

federation: Search external env by domain when loggin in

app/models/concerns/external_user.rb
... ... @@ -18,7 +18,7 @@ module ExternalUser
18 18 module ClassMethods
19 19 def webfinger_lookup(login, domain, environment)
20 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 22 scheme = "http#{external_environment.uses_ssl? ? 's' : ''}"
23 23 url = URI.parse(scheme+"://"+ domain +'/.well-known/webfinger?resource=acct:'+
24 24 login+'@'+domain)
... ... @@ -51,7 +51,7 @@ module ExternalUser
51 51 result = nil
52 52 response = nil
53 53 redirections_allowed = 3
54   - external_environment = ExternalEnvironment.find_by_url(domain)
  54 + external_environment = ExternalEnvironment.find_by_domain(domain)
55 55 scheme = "http#{external_environment.uses_ssl? ? 's' : ''}"
56 56 location = scheme + '://' + domain + '/api/v1/login'
57 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 11 url.starts_with? 'https'
12 12 end
13 13  
  14 + def self.find_by_domain(domain)
  15 + where(url: ['http://' + domain + '/', 'https://' + domain + '/']).first
  16 + end
  17 +
14 18 end
... ...