[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