[Git][noosfero/noosfero][federation] 2 commits: federation: Fix url for resources in webfinger response

Larissa Reis gitlab at mg.gitlab.com
Tue Jul 26 10:05:02 BRT 2016


Larissa Reis pushed to branch federation at Noosfero / noosfero


Commits:
34ebf858 by Larissa Reis at 2016-07-26T09:44:28-03:00
federation: Fix url for resources in webfinger response

- - - - -
f919a26e by Larissa Reis at 2016-07-26T09:48:56-03:00
federation: Search external env by domain when loggin in

- - - - -


3 changed files:

- app/api/federation/webfinger.rb
- app/models/concerns/external_user.rb
- app/models/external_environment.rb


Changes:

=====================================
app/api/federation/webfinger.rb
=====================================
--- a/app/api/federation/webfinger.rb
+++ b/app/api/federation/webfinger.rb
@@ -40,9 +40,8 @@ def request_acct?
 end
 
 def acct_hash
-  rails = Rails::Server.new
   acct = Hash.new{|hash, key| hash[key] = Hash.new{|hash, key| hash[key] = Array.new}}
-  url = rails.options[:Host] + ':' + rails.options[:Port].to_s + '/'
+  url = request.host + '/'
   person = Person.find_by_identifier(extract_person_identifier)
 
   if person.nil?


=====================================
app/models/concerns/external_user.rb
=====================================
--- a/app/models/concerns/external_user.rb
+++ b/app/models/concerns/external_user.rb
@@ -18,7 +18,7 @@ module ExternalUser
   module ClassMethods
     def webfinger_lookup(login, domain, environment)
       if login && domain && environment.has_federated_network?(domain)
-        external_environment = environment.external_environments.find_by_url(domain)
+        external_environment = environment.external_environments.find_by_domain(domain)
         scheme = "http#{external_environment.uses_ssl? ? 's' : ''}"
         url = URI.parse(scheme+"://"+ domain +'/.well-known/webfinger?resource=acct:'+
                          login+'@'+domain)
@@ -51,7 +51,7 @@ module ExternalUser
       result = nil
       response = nil
       redirections_allowed = 3
-      external_environment = ExternalEnvironment.find_by_url(domain)
+      external_environment = ExternalEnvironment.find_by_domain(domain)
       scheme = "http#{external_environment.uses_ssl? ? 's' : ''}"
       location = scheme + '://' + domain + '/api/v1/login'
       request_params = CGI.unescape({ login: login, password: password }.to_query)


=====================================
app/models/external_environment.rb
=====================================
--- a/app/models/external_environment.rb
+++ b/app/models/external_environment.rb
@@ -11,4 +11,8 @@ class ExternalEnvironment < ActiveRecord::Base
     url.starts_with? 'https'
   end
 
+  def self.find_by_domain(domain)
+    where(url: ['http://' + domain + '/', 'https://' + domain + '/']).first
+  end
+
 end



View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/0a7afb0f39bee4f3cdb40562ef6fd4995f295142...f919a26e0e4881ace844362a272202c928f35b11
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20160726/f4ed84b3/attachment-0001.html>


More information about the Noosfero-dev mailing list