auth0 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/CHANGELOG.md +81 -0
- data/README.md +2 -2
- data/Rakefile +14 -14
- data/build_travis.sh +7 -0
- data/lib/auth0/api/authentication_endpoints.rb +10 -9
- data/lib/auth0/api/v1/clients.rb +9 -9
- data/lib/auth0/api/v1/connections.rb +14 -12
- data/lib/auth0/api/v1/logs.rb +2 -2
- data/lib/auth0/api/v1/rules.rb +10 -9
- data/lib/auth0/api/v2/users.rb +14 -12
- data/lib/auth0/exception.rb +1 -1
- data/lib/auth0/mixins/httparty_proxy.rb +5 -5
- data/lib/auth0/version.rb +1 -1
- data/spec/integration/lib/auth0/api/v1/api_clients_spec.rb +4 -3
- data/spec/integration/lib/auth0/api/v1/api_users_spec.rb +1 -1
- data/spec/integration/lib/auth0/api/v2/api_clients_spec.rb +4 -3
- data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +11 -11
- data/spec/integration/lib/auth0/auth0_client_spec.rb +38 -38
- data/spec/lib/auth0/api/authentication_endpoints_spec.rb +1 -1
- data/spec/lib/auth0/client_spec.rb +3 -3
- data/spec/spec_helper_full.rb +10 -3
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c8cbc5c686f482699408775f046cabd798eb6fb
|
4
|
+
data.tar.gz: 4876cce548226a3b7dcee445475d9be7621a159c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b59e6938ee61772c70a87c275d88654507f4b419444d4e8332bd3ea18ebb7bca924d00ca27dd3fc358894391d59b3b05113d91c610b453775e1ae709eda1a3b
|
7
|
+
data.tar.gz: b9e0c9a9295e0db1197e44914ae23764d0c1d4caa698908ffa6e837dcbcba88776f4ed992522f75b9e1335fac87d19b73f863caf3407ab7695145129ccbefd9d
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
## [Unreleased](https://github.com/auth0/ruby-auth0/tree/HEAD)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/auth0/ruby-auth0/compare/v3.3.0...HEAD)
|
6
|
+
|
7
|
+
**Closed issues:**
|
8
|
+
|
9
|
+
- Tag releases [\#16](https://github.com/auth0/ruby-auth0/issues/16)
|
10
|
+
|
11
|
+
**Merged pull requests:**
|
12
|
+
|
13
|
+
- allow setting impersonation ttl [\#30](https://github.com/auth0/ruby-auth0/pull/30) ([seamusabshere](https://github.com/seamusabshere))
|
14
|
+
|
15
|
+
- Fix broken link in README [\#28](https://github.com/auth0/ruby-auth0/pull/28) ([dentarg](https://github.com/dentarg))
|
16
|
+
|
17
|
+
## [v3.3.0](https://github.com/auth0/ruby-auth0/tree/v3.3.0) (2015-04-15)
|
18
|
+
|
19
|
+
[Full Changelog](https://github.com/auth0/ruby-auth0/compare/v3.2.0...v3.3.0)
|
20
|
+
|
21
|
+
**Closed issues:**
|
22
|
+
|
23
|
+
- AuthenticationEndpoints should be independent of the V1/V2 API [\#20](https://github.com/auth0/ruby-auth0/issues/20)
|
24
|
+
|
25
|
+
- Typo in AuthenticationEndpoints.login [\#17](https://github.com/auth0/ruby-auth0/issues/17)
|
26
|
+
|
27
|
+
- Remove generated docs [\#14](https://github.com/auth0/ruby-auth0/issues/14)
|
28
|
+
|
29
|
+
- Remove the examples directory from this repository [\#4](https://github.com/auth0/ruby-auth0/issues/4)
|
30
|
+
|
31
|
+
**Merged pull requests:**
|
32
|
+
|
33
|
+
- Chore integration tests [\#27](https://github.com/auth0/ruby-auth0/pull/27) ([hzalaz](https://github.com/hzalaz))
|
34
|
+
|
35
|
+
- allow to pass extra parameters to delegation method [\#23](https://github.com/auth0/ruby-auth0/pull/23) ([Maxim-Filimonov](https://github.com/Maxim-Filimonov))
|
36
|
+
|
37
|
+
## [v3.2.0](https://github.com/auth0/ruby-auth0/tree/v3.2.0) (2015-04-14)
|
38
|
+
|
39
|
+
**Merged pull requests:**
|
40
|
+
|
41
|
+
- Impersonation [\#26](https://github.com/auth0/ruby-auth0/pull/26) ([dentarg](https://github.com/dentarg))
|
42
|
+
|
43
|
+
- Allow to set api\_type to use with salesforce\_api [\#25](https://github.com/auth0/ruby-auth0/pull/25) ([Maxim-Filimonov](https://github.com/Maxim-Filimonov))
|
44
|
+
|
45
|
+
- Fixed few issues from issues list [\#22](https://github.com/auth0/ruby-auth0/pull/22) ([offtop](https://github.com/offtop))
|
46
|
+
|
47
|
+
- Update readme.md api v2 basic usage example [\#19](https://github.com/auth0/ruby-auth0/pull/19) ([ethancrawford](https://github.com/ethancrawford))
|
48
|
+
|
49
|
+
- fix token initialization to prevent nil token value [\#18](https://github.com/auth0/ruby-auth0/pull/18) ([ethancrawford](https://github.com/ethancrawford))
|
50
|
+
|
51
|
+
- Make the client work for API v1 [\#13](https://github.com/auth0/ruby-auth0/pull/13) ([dentarg](https://github.com/dentarg))
|
52
|
+
|
53
|
+
- Fix typo delegation signature; open\_id =\> openid [\#12](https://github.com/auth0/ruby-auth0/pull/12) ([dentarg](https://github.com/dentarg))
|
54
|
+
|
55
|
+
- Make the tests run on Travis CI [\#11](https://github.com/auth0/ruby-auth0/pull/11) ([dentarg](https://github.com/dentarg))
|
56
|
+
|
57
|
+
- Added support for API V1 and API V2 [\#9](https://github.com/auth0/ruby-auth0/pull/9) ([offtop](https://github.com/offtop))
|
58
|
+
|
59
|
+
- Update README.md [\#8](https://github.com/auth0/ruby-auth0/pull/8) ([pose](https://github.com/pose))
|
60
|
+
|
61
|
+
- Make delete user safe [\#5](https://github.com/auth0/ruby-auth0/pull/5) ([dentarg](https://github.com/dentarg))
|
62
|
+
|
63
|
+
- Remove the omniauth strategy [\#3](https://github.com/auth0/ruby-auth0/pull/3) ([dentarg](https://github.com/dentarg))
|
64
|
+
|
65
|
+
- Fix rspec deprecation warning [\#2](https://github.com/auth0/ruby-auth0/pull/2) ([dentarg](https://github.com/dentarg))
|
66
|
+
|
67
|
+
- Add method to access delegation endpoint [\#1](https://github.com/auth0/ruby-auth0/pull/1) ([FrancisPlaza](https://github.com/FrancisPlaza))
|
68
|
+
|
69
|
+
- Authendpoint in v2 [\#24](https://github.com/auth0/ruby-auth0/pull/24) ([Maxim-Filimonov](https://github.com/Maxim-Filimonov))
|
70
|
+
|
71
|
+
- make AuthenticationEndpoints available to client in v2 mode [\#21](https://github.com/auth0/ruby-auth0/pull/21) ([MungoH](https://github.com/MungoH))
|
72
|
+
|
73
|
+
- updated webmock version, updated documentation [\#10](https://github.com/auth0/ruby-auth0/pull/10) ([offtop](https://github.com/offtop))
|
74
|
+
|
75
|
+
- Add create user method [\#7](https://github.com/auth0/ruby-auth0/pull/7) ([dentarg](https://github.com/dentarg))
|
76
|
+
|
77
|
+
- Add impersonation method [\#6](https://github.com/auth0/ruby-auth0/pull/6) ([dentarg](https://github.com/dentarg))
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/README.md
CHANGED
@@ -70,8 +70,8 @@ If you have found a bug or if you have a feature request, please report them at
|
|
70
70
|
|
71
71
|
## Author
|
72
72
|
|
73
|
-
[Auth0](auth0.com)
|
73
|
+
[Auth0](https://auth0.com)
|
74
74
|
|
75
75
|
## License
|
76
76
|
|
77
|
-
This project is licensed under the MIT license. See the [LICENSE](LICENSE) file for more info.
|
77
|
+
This project is licensed under the MIT license. See the [LICENSE](LICENSE) file for more info.
|
data/Rakefile
CHANGED
@@ -2,23 +2,23 @@
|
|
2
2
|
require "bundler/gem_tasks"
|
3
3
|
|
4
4
|
begin
|
5
|
-
|
5
|
+
require 'rspec/core/rake_task'
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
desc "Run Integration Tests"
|
8
|
+
RSpec::Core::RakeTask.new(:integration) do |t|
|
9
|
+
t.pattern = FileList["spec/integration/**/*#{ENV['PATTERN']}*_spec.rb"]
|
10
|
+
end
|
11
11
|
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
desc "Run Unit Tests"
|
14
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
15
|
+
t.pattern = FileList["spec/lib/auth0/**/*#{ENV['PATTERN']}*_spec.rb"]
|
16
|
+
end
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
desc "Run All Suites"
|
19
|
+
RSpec::Core::RakeTask.new(:all)
|
20
20
|
|
21
|
-
|
21
|
+
task :default => :spec
|
22
22
|
rescue LoadError
|
23
|
-
|
24
|
-
end
|
23
|
+
#No RSpec
|
24
|
+
end
|
data/build_travis.sh
ADDED
@@ -6,9 +6,9 @@ module Auth0
|
|
6
6
|
# {https://auth0.com/docs/auth-api#!#post--oauth-access_token}
|
7
7
|
def obtain_access_token
|
8
8
|
request_params = {
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
client_id: @client_id,
|
10
|
+
client_secret: @client_secret,
|
11
|
+
grant_type: 'client_credentials'
|
12
12
|
}
|
13
13
|
post("/oauth/token", request_params)["access_token"]
|
14
14
|
end
|
@@ -16,12 +16,12 @@ module Auth0
|
|
16
16
|
# {https://auth0.com/docs/auth-api#!#post--delegation}
|
17
17
|
def delegation(id_token, target, scope = "openid", api_type = "app", extra_parameters = {})
|
18
18
|
request_params = {
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
client_id: @client_id,
|
20
|
+
grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
|
21
|
+
id_token: id_token,
|
22
|
+
target: target,
|
23
|
+
api_type: api_type,
|
24
|
+
scope: scope
|
25
25
|
}.merge(extra_parameters)
|
26
26
|
post("/delegation", request_params)
|
27
27
|
end
|
@@ -32,6 +32,7 @@ module Auth0
|
|
32
32
|
protocol: options.fetch(:protocol, "oauth2"),
|
33
33
|
impersonator_id: impersonator_id,
|
34
34
|
client_id: app_client_id,
|
35
|
+
ttl: options.fetch(:ttl, 120),
|
35
36
|
additionalParameters: {
|
36
37
|
response_type: options.fetch(:response_type, "code"),
|
37
38
|
state: options.fetch(:state, ""),
|
data/lib/auth0/api/v1/clients.rb
CHANGED
@@ -15,9 +15,9 @@ module Auth0
|
|
15
15
|
def create_client(name, callbacks="")
|
16
16
|
path = "/api/clients"
|
17
17
|
request_params = {
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
name: name,
|
19
|
+
callbacks: callbacks
|
20
|
+
}
|
21
21
|
post(path, request_params)
|
22
22
|
end
|
23
23
|
|
@@ -27,9 +27,9 @@ module Auth0
|
|
27
27
|
warn "This endpoint has been deprecated in favor of PATCH."
|
28
28
|
path = "/api/clients/#{client_id}"
|
29
29
|
request_params = {
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
name: name,
|
31
|
+
callbacks: callbacks
|
32
|
+
}
|
33
33
|
put(path, request_params)
|
34
34
|
end
|
35
35
|
|
@@ -37,9 +37,9 @@ module Auth0
|
|
37
37
|
def patch_client(name, callbacks="", client_id=@client_id)
|
38
38
|
path = "/api/clients/#{client_id}"
|
39
39
|
request_params = {
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
name: name,
|
41
|
+
callbacks: callbacks
|
42
|
+
}
|
43
43
|
patch(path, request_params)
|
44
44
|
end
|
45
45
|
end
|
@@ -25,24 +25,26 @@ module Auth0
|
|
25
25
|
# {https://auth0.com/docs/api#!#post--api-connections}
|
26
26
|
def create_connection(connection_name, strategy, tenant_domain, domain_aliases=nil)
|
27
27
|
path = "/api/connections"
|
28
|
-
request_params = {
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
28
|
+
request_params = {
|
29
|
+
name: connection_name,
|
30
|
+
strategy: strategy,
|
31
|
+
options: {
|
32
|
+
tenant_domain: tenant_domain,
|
33
|
+
domain_aliases: domain_aliases
|
34
|
+
}
|
35
|
+
}
|
35
36
|
post(path, request_params)
|
36
37
|
end
|
37
38
|
|
38
39
|
# {https://auth0.com/docs/api#!#put--api-connections--connection-name-}
|
39
40
|
def update_connection(connection_name, tenant_domain, status=true)
|
40
41
|
path = "/api/connections/#{connection_name}"
|
41
|
-
request_params = {
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
request_params = {
|
43
|
+
status: status,
|
44
|
+
options: {
|
45
|
+
tenant_domain: tenant_domain
|
46
|
+
}
|
47
|
+
}
|
46
48
|
put(path, request_params)
|
47
49
|
end
|
48
50
|
end
|
data/lib/auth0/api/v1/logs.rb
CHANGED
@@ -12,8 +12,8 @@ module Auth0
|
|
12
12
|
acceptable_params = %i(take from search_criteria page per_page sort fields exclude_fields)
|
13
13
|
options.reject! do |key,value|
|
14
14
|
if key.nil? ||\
|
15
|
-
|
16
|
-
|
15
|
+
value.nil? ||\
|
16
|
+
!acceptable_params.include?(key.to_sym)
|
17
17
|
warn "#{key} is not in acceptable params list: #{acceptable_params}"
|
18
18
|
true
|
19
19
|
end
|
data/lib/auth0/api/v1/rules.rb
CHANGED
@@ -14,11 +14,12 @@ module Auth0
|
|
14
14
|
# https://auth0.com/docs/api#!#post--api-rules
|
15
15
|
def create_rule(name, script, order=nil,status=true)
|
16
16
|
path = "/api/rules"
|
17
|
-
request_params = {
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
request_params = {
|
18
|
+
name: name,
|
19
|
+
status: status,
|
20
|
+
script: script,
|
21
|
+
order: order
|
22
|
+
}
|
22
23
|
post(path, request_params)
|
23
24
|
end
|
24
25
|
|
@@ -26,10 +27,10 @@ module Auth0
|
|
26
27
|
def update_rule(name, script, order=nil,status=true)
|
27
28
|
path = "/api/rules/#{name}"
|
28
29
|
request_params = {
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
status: status,
|
31
|
+
script: script,
|
32
|
+
order: order
|
33
|
+
}
|
33
34
|
put(path, request_params)
|
34
35
|
end
|
35
36
|
|
data/lib/auth0/api/v2/users.rb
CHANGED
@@ -5,15 +5,16 @@ module Auth0
|
|
5
5
|
module Users
|
6
6
|
#https://auth0.com/docs/apiv2#!/users/get_users
|
7
7
|
def users( per_page: nil, page: nil, include_totals: nil, sort: nil, connection: nil, fields: nil, exclude_fields: nil, q: nil )
|
8
|
-
request_params = {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
request_params = {
|
9
|
+
per_page: per_page,
|
10
|
+
page: page,
|
11
|
+
include_totals: include_totals,
|
12
|
+
sort: sort,
|
13
|
+
connection: connection,
|
14
|
+
fields: fields,
|
15
|
+
exclude_fields: exclude_fields,
|
16
|
+
q: q
|
17
|
+
}
|
17
18
|
path = "/api/v2/users"
|
18
19
|
get(path, request_params)
|
19
20
|
end
|
@@ -36,9 +37,10 @@ module Auth0
|
|
36
37
|
#https://auth0.com/docs/apiv2#!/users/get_users_by_id
|
37
38
|
def user(user_id, fields: nil, exclude_fields: nil)
|
38
39
|
path = "/api/v2/users/" + user_id.to_s
|
39
|
-
request_params = {
|
40
|
-
|
41
|
-
|
40
|
+
request_params = {
|
41
|
+
fields: fields,
|
42
|
+
exclude_fields: exclude_fields
|
43
|
+
}
|
42
44
|
get(path, request_params)
|
43
45
|
end
|
44
46
|
|
data/lib/auth0/exception.rb
CHANGED
@@ -23,4 +23,4 @@ class Auth0::InvalidParameter < Auth0::Exception; end
|
|
23
23
|
# Invalid Auth0 credentials either client_id/secret for API v1 or JWT for API v2/
|
24
24
|
class Auth0::InvalidCredentials < Auth0::Exception; end
|
25
25
|
# Invalid Auth0 API namespace
|
26
|
-
class Auth0::InvalidApiNamespace < Auth0::Exception; end
|
26
|
+
class Auth0::InvalidApiNamespace < Auth0::Exception; end
|
@@ -13,11 +13,11 @@ module Auth0
|
|
13
13
|
result = self.class.send(method, safe_path, body: body.to_json)
|
14
14
|
end
|
15
15
|
response_body =
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
begin
|
17
|
+
JSON.parse(result.body.to_s)
|
18
|
+
rescue JSON::ParserError
|
19
|
+
result.body
|
20
|
+
end
|
21
21
|
case result.code
|
22
22
|
when 200...226 then response_body
|
23
23
|
when 400 then raise Auth0::BadRequest, response_body
|
data/lib/auth0/version.rb
CHANGED
@@ -3,11 +3,12 @@ describe Auth0::Api::V1::Clients do
|
|
3
3
|
|
4
4
|
let(:client) { Auth0Client.new(v1_creds) }
|
5
5
|
let(:global_client) { Auth0Client.new(v1_global_creds) }
|
6
|
-
|
6
|
+
let(:client_name) { "client#{entity_suffix}" }
|
7
|
+
|
7
8
|
it { expect(client.clients).to_not be_empty }
|
8
9
|
|
9
|
-
it { expect {client.create_client(
|
10
|
+
it { expect {client.create_client(client_name)}.to raise_error(Auth0::Unauthorized) }
|
10
11
|
|
11
|
-
it { expect(global_client.create_client(
|
12
|
+
it { expect(global_client.create_client(client_name)).to_not be_nil }
|
12
13
|
|
13
14
|
end
|
@@ -3,7 +3,7 @@ describe Auth0::Api::V1::Users do
|
|
3
3
|
|
4
4
|
let(:client) { Auth0Client.new(v1_creds) }
|
5
5
|
let(:username) { Faker::Internet.user_name }
|
6
|
-
let(:email) { Faker::Internet.safe_email }
|
6
|
+
let(:email) { Faker::Internet.safe_email("#{username}#{entity_suffix}") }
|
7
7
|
let(:password) { Faker::Internet.password }
|
8
8
|
let(:connection) { "Username-Password-Authentication" }
|
9
9
|
let!(:user) { client.create_user(email, password, connection, {
|
@@ -2,11 +2,12 @@ require "spec_helper"
|
|
2
2
|
describe Auth0::Api::V2::Clients do
|
3
3
|
|
4
4
|
let(:client) { Auth0Client.new(v2_creds) }
|
5
|
-
let(:existing_client) { client.create_client("existing") }
|
6
|
-
|
5
|
+
let(:existing_client) { client.create_client("existing#{entity_suffix}") }
|
6
|
+
let(:client_name) { "ClientV2#{entity_suffix}" }
|
7
|
+
|
7
8
|
it { expect(client.clients).to_not be_empty }
|
8
9
|
|
9
|
-
it { expect(client.create_client(
|
10
|
+
it { expect(client.create_client(client_name, {custom_login_page_off: true})).to include("name" => client_name, "custom_login_page_off" => true) }
|
10
11
|
|
11
12
|
it { expect(client.patch_client(existing_client["client_id"], {custom_login_page_off: true, sso: true})).to include("custom_login_page_off" => true, "sso" => true) }
|
12
13
|
|
@@ -3,16 +3,16 @@ describe Auth0::Api::V2::Users do
|
|
3
3
|
|
4
4
|
let(:client) { Auth0Client.new(v2_creds) }
|
5
5
|
let(:username) { Faker::Internet.user_name }
|
6
|
-
let(:email) { Faker::Internet.safe_email }
|
6
|
+
let(:email) { Faker::Internet.safe_email("#{username}#{entity_suffix}") }
|
7
7
|
let(:password) { Faker::Internet.password }
|
8
8
|
let(:connection) { "Username-Password-Authentication" }
|
9
9
|
let!(:user) { client.create_user(username, {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
"username" => username,
|
11
|
+
"email" => email,
|
12
|
+
"password" => password,
|
13
|
+
"email_verified" => false,
|
14
|
+
"connection" => connection,
|
15
|
+
"app_metadata" => {}
|
16
16
|
})}
|
17
17
|
|
18
18
|
describe '.users' do
|
@@ -48,10 +48,10 @@ describe Auth0::Api::V2::Users do
|
|
48
48
|
let(:subject) { user }
|
49
49
|
|
50
50
|
it { should include("user_id", "identities") }
|
51
|
-
it { should include(
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
it { should include(
|
52
|
+
"username" => username,
|
53
|
+
"email" => email,
|
54
|
+
"email_verified" => false,
|
55
55
|
)}
|
56
56
|
|
57
57
|
end
|
@@ -1,45 +1,45 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
describe Auth0::Client do
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
4
|
+
shared_examples "invalid credentials" do |credentials, error|
|
5
|
+
it "raise an error with credentials #{credentials}" do
|
6
|
+
if error.nil?
|
7
|
+
expect { Auth0Client.new(credentials) }.to raise_error
|
8
|
+
else
|
9
|
+
expect { Auth0Client.new(credentials) }.to raise_error(error)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
14
|
+
it_should_behave_like "invalid credentials", {namespace: "samples.auth0.com"}, Auth0::InvalidCredentials
|
15
|
+
it_should_behave_like "invalid credentials", {namespace: "samples.auth0.com", client_id: "client_id"}, Auth0::InvalidCredentials
|
16
|
+
it_should_behave_like "invalid credentials", {namespace: "samples.auth0.com", client_secret: "secret"}, Auth0::InvalidCredentials
|
17
|
+
it_should_behave_like "invalid credentials", {namespace: "samples.auth0.com", api_version: 2}, Auth0::InvalidCredentials
|
18
|
+
it_should_behave_like "invalid credentials", {}
|
19
|
+
it_should_behave_like "invalid credentials", {api_version: 2}
|
20
|
+
it_should_behave_like "invalid credentials", {api_version: 1}
|
21
|
+
it_should_behave_like "invalid credentials", {client_id: "client_id", client_secret: "secret"}, Auth0::InvalidApiNamespace
|
22
|
+
it_should_behave_like "invalid credentials", {api_version: 2, token: "token"}, Auth0::InvalidApiNamespace
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
shared_examples "valid credentials" do
|
29
|
-
it { expect { Auth0Client.new(credentials) }.to_not raise_error }
|
30
|
-
end
|
24
|
+
let(:valid_v1_credentials) { {client_id: ENV["CLIENT_ID"], client_secret: ENV["CLIENT_SECRET"], domain: ENV["DOMAIN"]} }
|
25
|
+
let(:token) { ENV["MASTER_JWT"] }
|
26
|
+
let(:v2_credentials) { {domain: ENV["DOMAIN"], api_version: 2} }
|
31
27
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
it_should_behave_like "valid credentials" do
|
36
|
-
let(:credentials) { valid_v1_credentials.merge({api_version: 1}) }
|
37
|
-
end
|
38
|
-
it_should_behave_like "valid credentials" do
|
39
|
-
let(:credentials) { v2_credentials.merge({token: token})}
|
40
|
-
end
|
41
|
-
it_should_behave_like "valid credentials" do
|
42
|
-
let(:credentials) { v2_credentials.merge({access_token: ENV["MASTER_JWT"]}) }
|
43
|
-
end
|
28
|
+
shared_examples "valid credentials" do
|
29
|
+
it { expect { Auth0Client.new(credentials) }.to_not raise_error }
|
30
|
+
end
|
44
31
|
|
45
|
-
|
32
|
+
it_should_behave_like "valid credentials" do
|
33
|
+
let(:credentials) { valid_v1_credentials }
|
34
|
+
end
|
35
|
+
it_should_behave_like "valid credentials" do
|
36
|
+
let(:credentials) { valid_v1_credentials.merge({api_version: 1}) }
|
37
|
+
end
|
38
|
+
it_should_behave_like "valid credentials" do
|
39
|
+
let(:credentials) { v2_credentials.merge({token: token})}
|
40
|
+
end
|
41
|
+
it_should_behave_like "valid credentials" do
|
42
|
+
let(:credentials) { v2_credentials.merge({access_token: ENV["MASTER_JWT"]}) }
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -43,7 +43,7 @@ describe Auth0::Api::AuthenticationEndpoints do
|
|
43
43
|
|
44
44
|
it {expect(@instance).to respond_to(:impersonate)}
|
45
45
|
it "is expected to make post request to '/users/{user_id}/impersonate'" do
|
46
|
-
expect(@instance).to receive(:post).with("/users/#{user_id}/impersonate",{:protocol=>"oauth2", :impersonator_id=>impersonator_id, :client_id=>app_client_id, :additionalParameters=>{:response_type=>"code", :state=>"", :scope=>"openid", :callback_url=>""}})
|
46
|
+
expect(@instance).to receive(:post).with("/users/#{user_id}/impersonate",{:protocol=>"oauth2", :impersonator_id=>impersonator_id, :client_id=>app_client_id, :ttl=>120, :additionalParameters=>{:response_type=>"code", :state=>"", :scope=>"openid", :callback_url=>""}})
|
47
47
|
@instance.impersonate(user_id, app_client_id, impersonator_id, {})
|
48
48
|
end
|
49
49
|
end
|
@@ -47,7 +47,7 @@ describe Auth0::Client do
|
|
47
47
|
before :each do
|
48
48
|
allow_any_instance_of(Auth0::Api::AuthenticationEndpoints).to receive(:obtain_access_token).and_return "token"
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
context "with namespace" do
|
52
52
|
|
53
53
|
let(:subject) { Auth0::Client.new(client_id: "client_id", client_secret: "client_secret", namespace: "samples.auth0.com") }
|
@@ -67,7 +67,7 @@ describe Auth0::Client do
|
|
67
67
|
end
|
68
68
|
|
69
69
|
context "with version" do
|
70
|
-
|
70
|
+
|
71
71
|
let(:subject) { Auth0::Client.new(client_id: "client_id", client_secret: "client_secret", domain: "samples.auth0.com", api_version: 1) }
|
72
72
|
|
73
73
|
it_should_behave_like "v1 API client"
|
@@ -102,7 +102,7 @@ describe Auth0::Client do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
context "with version" do
|
105
|
-
|
105
|
+
|
106
106
|
let(:subject) { Auth0::Client.new(api_version: 2, access_token: "access_token", domain: "samples.auth0.com") }
|
107
107
|
|
108
108
|
it_should_behave_like "v2 API client"
|
data/spec/spec_helper_full.rb
CHANGED
@@ -19,15 +19,22 @@ require 'pry'
|
|
19
19
|
Dir[("./lib/**/*.rb")].each { |f| require f }
|
20
20
|
Dir[("./spec/support/**/*.rb")].each { |f| require f }
|
21
21
|
|
22
|
+
def entity_suffix
|
23
|
+
ENV["TRAVIS_BUILD_ID"] || "_local"
|
24
|
+
end
|
25
|
+
|
22
26
|
RSpec.configure do |config|
|
23
|
-
config.include
|
27
|
+
config.include Rack::Test::Methods
|
24
28
|
config.include Credentials
|
25
29
|
config.after(:suite) do
|
26
30
|
v2_client = Auth0Client.new({token: ENV["MASTER_JWT"], api_version: 2, domain: ENV["DOMAIN"]})
|
27
31
|
v2_client
|
28
32
|
.clients
|
29
|
-
.select { |client| client["name"] != "DefaultApp" and not client["global"] }
|
33
|
+
.select { |client| client["name"] != "DefaultApp" and not client["global"] and client["name"].end_with? entity_suffix }
|
30
34
|
.each { |client| v2_client.delete_client(client["client_id"]) }
|
31
|
-
v2_client
|
35
|
+
v2_client
|
36
|
+
.users
|
37
|
+
.select { |user| user["email"].split("@").first.include? entity_suffix }
|
38
|
+
.each { |user| v2_client.delete_user(user["user_id"])}
|
32
39
|
end
|
33
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auth0
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Auth0
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-
|
14
|
+
date: 2015-05-07 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|
@@ -213,12 +213,14 @@ files:
|
|
213
213
|
- ".gitignore"
|
214
214
|
- ".rspec"
|
215
215
|
- ".travis.yml"
|
216
|
+
- CHANGELOG.md
|
216
217
|
- Gemfile
|
217
218
|
- Guardfile
|
218
219
|
- LICENSE
|
219
220
|
- README.md
|
220
221
|
- Rakefile
|
221
222
|
- auth0.gemspec
|
223
|
+
- build_travis.sh
|
222
224
|
- lib/auth0.rb
|
223
225
|
- lib/auth0/api/authentication_endpoints.rb
|
224
226
|
- lib/auth0/api/v1.rb
|