wine_bouncer 0.4.0 → 0.5.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 +16 -19
- data/CHANGELOG.md +5 -1
- data/Gemfile +1 -1
- data/README.md +6 -3
- data/UPGRADING.md +7 -0
- data/lib/wine_bouncer/errors.rb +16 -2
- data/lib/wine_bouncer/oauth2.rb +2 -4
- data/lib/wine_bouncer/version.rb +1 -1
- data/wine_bouncer.gemspec +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5dc6cf97cd8da451dc4702e223895ef8936bdf3
|
4
|
+
data.tar.gz: fb785eaeb2dbaee4f862f83cad1480fc5a024c42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b9613742574c2c306212a77e39709c4d493f543e11358927d70aaf2d034a40e6cdb9a90677e98bbaf3d4f0c0d4ee75c3909869e195e32e3be2e685d6cfdcc02
|
7
|
+
data.tar.gz: 46032cd2d3121fe7ecdb5f251da88a23f52e75c6d4ad8efa6307c3bd35a81fafd1d6b4b2ac6fe6e2084680ba04588b3975301d63be8040af0ccf201c4b80b0ac
|
data/.travis.yml
CHANGED
@@ -1,27 +1,24 @@
|
|
1
|
+
sudo: false
|
1
2
|
before_install:
|
2
|
-
|
3
|
-
|
3
|
+
- gem update bundler
|
4
|
+
- bundle --version
|
4
5
|
language: ruby
|
5
6
|
cache: bundler
|
6
7
|
rvm:
|
7
|
-
|
8
|
-
|
9
|
-
|
8
|
+
- 2.0
|
9
|
+
- 2.1
|
10
|
+
- 2.2
|
10
11
|
env:
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
- rails=4.2.0 grape=0.12.0 doorkeeper=2.2.1
|
18
|
-
matrix:
|
19
|
-
exclude:
|
20
|
-
- env: rails=3.2.18 grape=0.10.0
|
21
|
-
rvm: 2.2
|
22
|
-
|
23
|
-
- env: rails=3.2.18 grape=0.12.0
|
24
|
-
rvm: 2.2
|
12
|
+
- rails=4.1.1 grape=0.12.0 doorkeeper=2.0.1
|
13
|
+
- rails=4.1.1 grape=0.12.0 doorkeeper=2.1.4
|
14
|
+
- rails=4.2.0 grape=0.10.0 doorkeeper=2.2.1
|
15
|
+
- rails=4.2.0 grape=0.11.0 doorkeeper=3.0.0
|
16
|
+
- rails=4.2.0 grape=0.12.0 doorkeeper=3.0.0
|
17
|
+
- rails=4.2.0 grape=0.13.0 doorkeeper=3.0.0
|
25
18
|
addons:
|
26
19
|
code_climate:
|
27
20
|
repo_token: ab1b6ce5f973da033f80ae2e99fadbb32b2f9c37892703956d8ef954c8e8134e
|
21
|
+
notifications:
|
22
|
+
hipchat:
|
23
|
+
rooms:
|
24
|
+
secure: SUWenlDzlDbpryO1QzD+rN4MxIBpAAzwsFqnnkyRQ11thRVdvKuT2TUd+RlYImLXDNkvNjqmpXh7mihtcro9g8unR3nF1UKbuAPIv2kCklsio0jAnjVn7+h1l56hsa90Jy9t/YpKtoLx2QNWLz70n8VrtGJMAt53T6tZdgNUp58=
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
|
-
|
4
3
|
## Next
|
5
4
|
|
5
|
+
## 0.5.0
|
6
|
+
* [#50](https://github.com/antek-drzewiecki/wine_bouncer/pull/50): Grape 0.13.x support
|
7
|
+
* [#48](https://github.com/antek-drzewiecki/wine_bouncer/pull/48): Bind Doorkeeper error response into WineBouncer errors
|
8
|
+
* [#47](https://github.com/antek-drzewiecki/wine_bouncer/pull/47): Doorkeeper 3.0.x support
|
9
|
+
|
6
10
|
## 0.4.0
|
7
11
|
* [#42](https://github.com/antek-drzewiecki/wine_bouncer/pull/42): Added support for Doorkeeper 2.2
|
8
12
|
* [#41](https://github.com/antek-drzewiecki/wine_bouncer/pull/41): Added support for Grape 0.12.0, Removed support for Grape 0.8 and 0.9 (though they still work).
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -28,15 +28,15 @@ Table of Contents
|
|
28
28
|
|
29
29
|
## Requirements
|
30
30
|
- Ruby > 2.0
|
31
|
-
- Doorkeeper > 1.4.0 and < 3
|
32
|
-
- Grape > 0.10 and < 0.
|
31
|
+
- Doorkeeper > 1.4.0 and < 3.1
|
32
|
+
- Grape > 0.10 and < 0.14
|
33
33
|
|
34
34
|
## Installation
|
35
35
|
|
36
36
|
Add this line to your application's Gemfile:
|
37
37
|
|
38
38
|
```ruby
|
39
|
-
gem 'wine_bouncer', '~> 0.
|
39
|
+
gem 'wine_bouncer', '~> 0.5.0'
|
40
40
|
```
|
41
41
|
|
42
42
|
And then execute:
|
@@ -215,6 +215,9 @@ This gem raises the following exceptions which can be handled in your Grape API,
|
|
215
215
|
* `WineBouncer::Errors::OAuthForbiddenError`
|
216
216
|
when the token is found but scopes do not match.
|
217
217
|
|
218
|
+
Detailed doorkeeper error response can be found in the error's `response` attribute. You could use
|
219
|
+
it to compose the actual HTTP response to API users.
|
220
|
+
|
218
221
|
## Example/Template Application
|
219
222
|
|
220
223
|
A full working sample app (or starter template) can be found at [grape-doorkeeper on github](https://github.com/sethherr/grape-doorkeeper). It has one click deploy to Heroku and [a live example](https://grape-doorkeeper.herokuapp.com/).
|
data/UPGRADING.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
Upgrading WineBouncer
|
2
2
|
=====================
|
3
3
|
|
4
|
+
## Upgrading to >= 0.5.0
|
5
|
+
|
6
|
+
WineBouncer's exceptions `OAuthUnauthorizedError` and `OAuthForbiddenError` now come with a
|
7
|
+
corresponding Doorkeeper's error response. You can access it via `response` method of the exception.
|
8
|
+
For backward compatible, you can still use `message` but the content will be provided by Doorkeeper
|
9
|
+
error response's description.
|
10
|
+
|
4
11
|
## Upgrading to >= 0.3.0
|
5
12
|
|
6
13
|
An new DSL has been introduced to WineBouncer. This DSL will become the preferred way to authorize your endpoints.
|
data/lib/wine_bouncer/errors.rb
CHANGED
@@ -1,7 +1,21 @@
|
|
1
1
|
module WineBouncer
|
2
2
|
module Errors
|
3
3
|
class UnconfiguredError < StandardError; end
|
4
|
-
|
5
|
-
class
|
4
|
+
|
5
|
+
class OAuthUnauthorizedError < StandardError
|
6
|
+
attr_reader :response
|
7
|
+
def initialize(response)
|
8
|
+
super(response.try(:description))
|
9
|
+
@response = response
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class OAuthForbiddenError < StandardError
|
14
|
+
attr_reader :response
|
15
|
+
def initialize(response)
|
16
|
+
super(response.try(:description))
|
17
|
+
@response = response
|
18
|
+
end
|
19
|
+
end
|
6
20
|
end
|
7
21
|
end
|
data/lib/wine_bouncer/oauth2.rb
CHANGED
@@ -62,12 +62,10 @@ module WineBouncer
|
|
62
62
|
unless valid_doorkeeper_token?(*scopes)
|
63
63
|
if !doorkeeper_token || !doorkeeper_token.accessible?
|
64
64
|
error = Doorkeeper::OAuth::InvalidTokenResponse.from_access_token(doorkeeper_token)
|
65
|
-
|
66
|
-
raise WineBouncer::Errors::OAuthUnauthorizedError, 'unauthorized'
|
65
|
+
raise WineBouncer::Errors::OAuthUnauthorizedError, error
|
67
66
|
else
|
68
67
|
error = Doorkeeper::OAuth::ForbiddenTokenResponse.from_scopes(scopes)
|
69
|
-
|
70
|
-
raise WineBouncer::Errors::OAuthForbiddenError, "missing permissions"
|
68
|
+
raise WineBouncer::Errors::OAuthForbiddenError, error
|
71
69
|
end
|
72
70
|
end
|
73
71
|
end
|
data/lib/wine_bouncer/version.rb
CHANGED
data/wine_bouncer.gemspec
CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_runtime_dependency 'grape', '~> 0.10', '< 0.
|
21
|
-
spec.add_runtime_dependency 'doorkeeper', '>= 1.4', '< 3.
|
20
|
+
spec.add_runtime_dependency 'grape', '~> 0.10', '< 0.14'
|
21
|
+
spec.add_runtime_dependency 'doorkeeper', '>= 1.4', '< 3.1'
|
22
22
|
|
23
23
|
spec.add_development_dependency "railties"
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.7"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wine_bouncer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antek Drzewiecki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grape
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '0.10'
|
20
20
|
- - <
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '0.
|
22
|
+
version: '0.14'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '0.10'
|
30
30
|
- - <
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '0.
|
32
|
+
version: '0.14'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: doorkeeper
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: '1.4'
|
40
40
|
- - <
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '3.
|
42
|
+
version: '3.1'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: '1.4'
|
50
50
|
- - <
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: '3.
|
52
|
+
version: '3.1'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: railties
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|