aptible-auth 0.2.1 → 0.3.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/Gemfile +0 -3
- data/README.md +5 -5
- data/aptible-auth.gemspec +4 -4
- data/lib/aptible/auth/organization.rb +8 -0
- data/lib/aptible/auth/resource.rb +27 -0
- data/lib/aptible/auth/user.rb +7 -0
- data/spec/aptible/auth/resource_spec.rb +16 -2
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fba294330104e596ef5313e4adaf0d4dbd72565
|
4
|
+
data.tar.gz: 233fd28c3182778fd16f82cf0f7ecef63aa185aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5bb3c60cb4e2efd1e50f059087c690609f46d4c5365d6daebfd59b3ba93b77b4c54fa61165eb7e3e5e2edbeed060180edfc60c7682699aa47bc83171c6d8cec
|
7
|
+
data.tar.gz: b8d0210d77d9495d7a7a078251fbc9184605a59069dbe6da979c331e6b7ade6104229a8a09876b3e7dcb7daba7e9e2240a2734d20d7437367e5f5d0159a8e6c8
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -8,18 +8,18 @@ Ruby client for [auth.aptible.com](https://auth.aptible.com/). Aptible's authori
|
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
11
|
-
Add the following
|
11
|
+
Add the following line to your application's Gemfile.
|
12
12
|
|
13
13
|
gem 'aptible-auth'
|
14
|
-
|
15
|
-
|
14
|
+
|
15
|
+
And then run `bundle install`.
|
16
|
+
|
17
|
+
The gem depends on forked releases of the `oauth2` and `hyperresource` gems.
|
16
18
|
|
17
19
|
The forked version of the OAuth2 gem is necessary until [intridea/oauth2#165](https://github.com/intridea/oauth2/pull/165) and [intridea/oauth2#166](https://github.com/intridea/oauth2/pull/166) are merged.
|
18
20
|
|
19
21
|
The forked version of the HyperResource gem is necessary until [gamache/hyperresource#22](https://github.com/gamache/hyperresource/pull/22) and [gamache/hyperresource#23](https://github.com/gamache/hyperresource/pull/23) are merged.
|
20
22
|
|
21
|
-
And then run `bundle install`.
|
22
|
-
|
23
23
|
## Usage
|
24
24
|
|
25
25
|
First, get a token:
|
data/aptible-auth.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'English'
|
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'aptible-auth'
|
9
|
-
spec.version = '0.
|
9
|
+
spec.version = '0.3.0'
|
10
10
|
spec.authors = ['Frank Macreery']
|
11
11
|
spec.email = ['frank@macreery.com']
|
12
12
|
spec.description = 'Ruby client for auth.aptible.com'
|
@@ -19,13 +19,13 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_dependency 'gem_config'
|
22
|
-
spec.add_dependency 'oauth2'
|
23
|
-
spec.add_dependency 'hyperresource'
|
22
|
+
spec.add_dependency 'oauth2-aptible'
|
23
|
+
spec.add_dependency 'hyperresource-aptible'
|
24
24
|
spec.add_dependency 'fridge'
|
25
|
+
spec.add_dependency 'activesupport'
|
25
26
|
|
26
27
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
27
28
|
spec.add_development_dependency 'aptible-tasks', '>= 0.2.0'
|
28
|
-
spec.add_development_dependency 'activesupport'
|
29
29
|
spec.add_development_dependency 'rake'
|
30
30
|
spec.add_development_dependency 'rspec', '~> 2.0'
|
31
31
|
spec.add_development_dependency 'pry'
|
@@ -1,4 +1,12 @@
|
|
1
1
|
module Aptible
|
2
2
|
class Auth::Organization < Auth::Resource
|
3
|
+
has_many :roles
|
4
|
+
|
5
|
+
def accounts
|
6
|
+
api = Aptible::Api.new(token: token, headers: headers)
|
7
|
+
api.get unless api.loaded
|
8
|
+
accounts = api.accounts.entries
|
9
|
+
accounts.select { |account| account.organization.href == href }
|
10
|
+
end
|
3
11
|
end
|
4
12
|
end
|
@@ -1,9 +1,36 @@
|
|
1
|
+
require 'active_support/inflector'
|
2
|
+
|
1
3
|
module Aptible
|
2
4
|
class Auth::Resource < Auth
|
5
|
+
def self.collection_url
|
6
|
+
basename = name.split('::').last
|
7
|
+
config = Aptible::Auth.configuration
|
8
|
+
config.root_url.chomp('/') + "/#{basename.downcase.pluralize}"
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.find(id)
|
12
|
+
find_by_url("#{collection_url}/#{id}")
|
13
|
+
end
|
14
|
+
|
3
15
|
def self.find_by_url(url)
|
4
16
|
# REVIEW: Should exception be raised if return type mismatch?
|
5
17
|
new.find_by_url(url)
|
18
|
+
rescue
|
19
|
+
nil
|
20
|
+
end
|
21
|
+
|
22
|
+
# rubocop:disable PredicateName
|
23
|
+
def self.has_many(relation)
|
24
|
+
define_method relation do
|
25
|
+
get unless loaded
|
26
|
+
if (memoized = instance_variable_get("@#{relation}"))
|
27
|
+
memoized
|
28
|
+
elsif links[relation]
|
29
|
+
instance_variable_set("@#{relation}", links[relation].entries)
|
30
|
+
end
|
31
|
+
end
|
6
32
|
end
|
33
|
+
# rubocop:enable PredicateName
|
7
34
|
end
|
8
35
|
end
|
9
36
|
|
data/lib/aptible/auth/user.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module Aptible
|
2
2
|
class Auth::User < Auth::Resource
|
3
|
+
has_many :roles
|
4
|
+
|
3
5
|
def verified?
|
4
6
|
!!attributes['verified']
|
5
7
|
end
|
@@ -8,6 +10,11 @@ module Aptible
|
|
8
10
|
roles.map(&:organization)
|
9
11
|
end
|
10
12
|
|
13
|
+
def operations
|
14
|
+
# TODO: Implement query params for /operations
|
15
|
+
[]
|
16
|
+
end
|
17
|
+
|
11
18
|
def privileged_organizations
|
12
19
|
privileged_roles.map(&:organization)
|
13
20
|
end
|
@@ -1,4 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
describe Aptible::Auth::Resource do
|
4
|
+
describe '.collection_url' do
|
5
|
+
it 'should use the pluralized resource name' do
|
6
|
+
url = Aptible::Auth::Role.collection_url
|
7
|
+
expect(url).to eq 'https://auth.aptible.com/roles'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '.find' do
|
12
|
+
it 'should call find_by_url' do
|
13
|
+
url = 'https://auth.aptible.com/roles/42'
|
14
|
+
expect(Aptible::Auth::Role).to receive(:find_by_url).with url
|
15
|
+
Aptible::Auth::Role.find(42)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aptible-auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Frank Macreery
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gem_config
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: oauth2
|
28
|
+
name: oauth2-aptible
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '>='
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: hyperresource
|
42
|
+
name: hyperresource-aptible
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '>='
|
@@ -67,47 +67,47 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: activesupport
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
76
|
-
type: :
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: '1.3'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: '1.3'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: aptible-tasks
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 0.2.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 0.2.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rake
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|