Commit 89a5dc2700653a3de334562bf86ee53bcd715ab9

Authored by Larissa Reis
1 parent f79340a4

Fixes rename of federated_network to external_network

app/models/concerns/external_user.rb
... ... @@ -19,7 +19,7 @@ module ExternalUser
19 19 def webfinger_lookup(login, domain, environment)
20 20 if login && domain && environment.has_federated_network?(domain)
21 21 url = URI.parse('https://'+ domain +'/.well-known/webfinger?resource=acct:'+
22   - login+'@'+Environment.default.federated_networks.find_by_url(domain))
  22 + login+'@'+Environment.default.external_environments.find_by_url(domain))
23 23 req = Net::HTTP::Get.new(url.to_s)
24 24 res = Net::HTTP.start(url.host, url.port) { |http| http.request(req) }
25 25 JSON.parse(res.body)
... ...
app/models/environment.rb
... ... @@ -1010,7 +1010,7 @@ class Environment < ApplicationRecord
1010 1010 end
1011 1011  
1012 1012 def has_federated_network?(domain)
1013   - self.federated_networks.map(&:url).any? { |url| /http[s]?:\/\/#{domain}\/?/ =~ url }
  1013 + self.external_environments.map(&:url).any? { |url| /http[s]?:\/\/#{domain}\/?/ =~ url }
1014 1014 end
1015 1015  
1016 1016 private
... ...
features/external_login.feature 0 → 100644
... ... @@ -0,0 +1,55 @@
  1 +Feature: external login
  2 + As a user
  3 + I want to login using an account from a federated network
  4 + In order to view pages logged in
  5 +
  6 + @selenium
  7 + Scenario: login from portal homepage
  8 + Given feature "allow_change_of_redirection_after_login" is disabled on environment
  9 + And the following federated networks
  10 + | identifier | name | url |
  11 + | test | Test | http://federated.noosfero.org |
  12 + And the following external users
  13 + | login |
  14 + | joaosilva@federated.noosfero.org |
  15 + And I am not logged in
  16 + And I go to the homepage
  17 + And I follow "Login"
  18 + And I fill in the following:
  19 + | Username / Email | joaosilva@federated.noosfero.org |
  20 + | Password | 123456 |
  21 + When I press "Log in"
  22 + Then I should be on the homepage
  23 + And I should be externally logged in as "joaosilva@federated.noosfero.org"
  24 +
  25 + @selenium
  26 + Scenario: not login from portal homepage
  27 + Given feature "allow_change_of_redirection_after_login" is disabled on environment
  28 + And the following federated networks
  29 + | identifier | name | url |
  30 + | test | Test | http://federated.noosfero.org |
  31 + And I am not logged in
  32 + And I go to the homepage
  33 + And I follow "Login"
  34 + And I fill in the following:
  35 + | Username / Email | joaosilva@federated.noosfero.org |
  36 + | Password | 123456 |
  37 + When I press "Log in"
  38 + Then I should be on /account/login
  39 + And I should not be externally logged in as "joaosilva@federated.noosfero.org"
  40 +
  41 + @selenium
  42 + Scenario: not login if network is not whitelisted
  43 + Given feature "allow_change_of_redirection_after_login" is disabled on environment
  44 + And the following external users
  45 + | login |
  46 + | joaosilva@federated.noosfero.org |
  47 + And I am not logged in
  48 + And I go to the homepage
  49 + And I follow "Login"
  50 + And I fill in the following:
  51 + | Username / Email | joaosilva@federated.noosfero.org |
  52 + | Password | 123456 |
  53 + When I press "Log in"
  54 + Then I should be on /account/login
  55 + And I should not be externally logged in as "joaosilva@federated.noosfero.org"
... ...
features/federated_login.feature
... ... @@ -1,55 +0,0 @@
1   -Feature: federated login
2   - As a user
3   - I want to login using an account from a federated network
4   - In order to view pages logged in
5   -
6   - @selenium
7   - Scenario: login from portal homepage
8   - Given feature "allow_change_of_redirection_after_login" is disabled on environment
9   - And the following federated networks
10   - | identifier | name | url |
11   - | test | Test | http://federated.noosfero.org |
12   - And the following external users
13   - | login |
14   - | joaosilva@federated.noosfero.org |
15   - And I am not logged in
16   - And I go to the homepage
17   - And I follow "Login"
18   - And I fill in the following:
19   - | Username / Email | joaosilva@federated.noosfero.org |
20   - | Password | 123456 |
21   - When I press "Log in"
22   - Then I should be on the homepage
23   - And I should be federated logged in as "joaosilva@federated.noosfero.org"
24   -
25   - @selenium
26   - Scenario: not login from portal homepage
27   - Given feature "allow_change_of_redirection_after_login" is disabled on environment
28   - And the following federated networks
29   - | identifier | name | url |
30   - | test | Test | http://federated.noosfero.org |
31   - And I am not logged in
32   - And I go to the homepage
33   - And I follow "Login"
34   - And I fill in the following:
35   - | Username / Email | joaosilva@federated.noosfero.org |
36   - | Password | 123456 |
37   - When I press "Log in"
38   - Then I should be on /account/login
39   - And I should not be federated logged in as "joaosilva@federated.noosfero.org"
40   -
41   - @selenium
42   - Scenario: not login if network is not whitelisted
43   - Given feature "allow_change_of_redirection_after_login" is disabled on environment
44   - And the following external users
45   - | login |
46   - | joaosilva@federated.noosfero.org |
47   - And I am not logged in
48   - And I go to the homepage
49   - And I follow "Login"
50   - And I fill in the following:
51   - | Username / Email | joaosilva@federated.noosfero.org |
52   - | Password | 123456 |
53   - When I press "Log in"
54   - Then I should be on /account/login
55   - And I should not be federated logged in as "joaosilva@federated.noosfero.org"
features/step_definitions/noosfero_steps.rb
... ... @@ -700,14 +700,14 @@ Given /^the following external users?$/ do |table|
700 700 Net::HTTP.stub(:post_form).and_return(response)
701 701 end
702 702 end
703   -
704   -Then /^I should be federated logged in as "([^@]+)@(.+)"$/ do |username, domain|
  703 +
  704 +Then /^I should be externally logged in as "([^@]+)@(.+)"$/ do |username, domain|
705 705 visit '/'
706 706 url = 'http://' + domain + '/' + username
707 707 page.should have_xpath("//a[@href=\"#{url}\"]")
708 708 end
709 709  
710   -Then /^I should not be federated logged in as "([^@]+)@(.+)"$/ do |username, domain|
  710 +Then /^I should not be externally logged in as "([^@]+)@(.+)"$/ do |username, domain|
711 711 visit '/'
712 712 url = 'http://' + domain + '/' + username
713 713 page.should_not have_xpath("//a[@href=\"#{url}\"]")
... ...