Commit 89a5dc2700653a3de334562bf86ee53bcd715ab9
1 parent
f79340a4
Exists in
oauth_external_login
and in
1 other branch
Fixes rename of federated_network to external_network
Showing
5 changed files
with
60 additions
and
60 deletions
Show diff stats
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 | ... | ... |
... | ... | @@ -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}\"]") | ... | ... |