warden-github 0.4.4 → 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.
- data/lib/warden-github/user.rb +16 -4
- data/lib/warden-github/version.rb +1 -1
- data/spec/app.rb +6 -1
- data/warden-github.gemspec +2 -0
- metadata +51 -20
data/lib/warden-github/user.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'yajl'
|
2
|
+
require 'rest-client'
|
3
|
+
|
1
4
|
module Warden
|
2
5
|
module Github
|
3
6
|
module Oauth
|
@@ -28,7 +31,7 @@ module Warden
|
|
28
31
|
#
|
29
32
|
# Returns: true if the user is publicized as an org member
|
30
33
|
def publicized_organization_member?(org_name)
|
31
|
-
members = github_request("orgs/#{
|
34
|
+
members = github_request("orgs/#{org_name}/public_members")
|
32
35
|
members.map { |org| org["login"] }.include?(login)
|
33
36
|
rescue RestClient::Forbidden, RestClient::Unauthorized, RestClient::ResourceNotFound => e
|
34
37
|
false
|
@@ -39,9 +42,9 @@ module Warden
|
|
39
42
|
# name - the organization name
|
40
43
|
#
|
41
44
|
# Returns: true if the user has access, false otherwise
|
42
|
-
def organization_member?(
|
43
|
-
orgs = github_request("orgs/#{
|
44
|
-
orgs.map { |org| org["login"] }.include?(
|
45
|
+
def organization_member?(org_name)
|
46
|
+
orgs = github_request("orgs/#{org_name}/members")
|
47
|
+
orgs.map { |org| org["login"] }.include?(login)
|
45
48
|
rescue RestClient::Forbidden, RestClient::Unauthorized, RestClient::ResourceNotFound => e
|
46
49
|
false
|
47
50
|
end
|
@@ -83,6 +86,15 @@ module Warden
|
|
83
86
|
def github_raw_request(path)
|
84
87
|
RestClient.get("#{github_api_uri}/#{path}", :params => { :access_token => token }, :accept => :json)
|
85
88
|
end
|
89
|
+
|
90
|
+
private
|
91
|
+
def github_api_uri
|
92
|
+
if ENV['GITHUB_OAUTH_API_DOMAIN']
|
93
|
+
ENV['GITHUB_OAUTH_API_DOMAIN']
|
94
|
+
else
|
95
|
+
"https://api.github.com"
|
96
|
+
end
|
97
|
+
end
|
86
98
|
end
|
87
99
|
end
|
88
100
|
end
|
data/spec/app.rb
CHANGED
@@ -32,7 +32,12 @@ module Example
|
|
32
32
|
|
33
33
|
get '/' do
|
34
34
|
ensure_authenticated
|
35
|
-
|
35
|
+
<<-EOS
|
36
|
+
<h2>Hello There, #{user.name}!</h2>
|
37
|
+
<h3>Rails Org Member: #{user.organization_member?('rails')}.</h3>
|
38
|
+
<h3>Publicized Rails Org Member: #{user.publicized_organization_member?('rails')}.</h3>
|
39
|
+
<h3>Rails Committer Team Member: #{user.team_member?(632)}.</h3>
|
40
|
+
EOS
|
36
41
|
end
|
37
42
|
|
38
43
|
get '/redirect_to' do
|
data/warden-github.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.add_dependency "json", "~>1.5"
|
19
19
|
s.add_dependency "warden", "~>1.0"
|
20
20
|
s.add_dependency "oauth2", "~>0.5.2"
|
21
|
+
s.add_dependency "rest-client", "~>1.6.1"
|
22
|
+
s.add_dependency "yajl-ruby", "~>1.1"
|
21
23
|
|
22
24
|
s.add_development_dependency "rack", "~>1.4.0"
|
23
25
|
s.add_development_dependency "rake"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: warden-github
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Corey Donohoe
|
@@ -65,9 +65,40 @@ dependencies:
|
|
65
65
|
type: :runtime
|
66
66
|
version_requirements: *id003
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
|
-
name:
|
68
|
+
name: rest-client
|
69
69
|
prerelease: false
|
70
70
|
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 13
|
76
|
+
segments:
|
77
|
+
- 1
|
78
|
+
- 6
|
79
|
+
- 1
|
80
|
+
version: 1.6.1
|
81
|
+
type: :runtime
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: yajl-ruby
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ~>
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 13
|
92
|
+
segments:
|
93
|
+
- 1
|
94
|
+
- 1
|
95
|
+
version: "1.1"
|
96
|
+
type: :runtime
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rack
|
100
|
+
prerelease: false
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
71
102
|
none: false
|
72
103
|
requirements:
|
73
104
|
- - ~>
|
@@ -79,11 +110,11 @@ dependencies:
|
|
79
110
|
- 0
|
80
111
|
version: 1.4.0
|
81
112
|
type: :development
|
82
|
-
version_requirements: *
|
113
|
+
version_requirements: *id006
|
83
114
|
- !ruby/object:Gem::Dependency
|
84
115
|
name: rake
|
85
116
|
prerelease: false
|
86
|
-
requirement: &
|
117
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
87
118
|
none: false
|
88
119
|
requirements:
|
89
120
|
- - ">="
|
@@ -93,11 +124,11 @@ dependencies:
|
|
93
124
|
- 0
|
94
125
|
version: "0"
|
95
126
|
type: :development
|
96
|
-
version_requirements: *
|
127
|
+
version_requirements: *id007
|
97
128
|
- !ruby/object:Gem::Dependency
|
98
129
|
name: rspec
|
99
130
|
prerelease: false
|
100
|
-
requirement: &
|
131
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
101
132
|
none: false
|
102
133
|
requirements:
|
103
134
|
- - ~>
|
@@ -109,11 +140,11 @@ dependencies:
|
|
109
140
|
- 0
|
110
141
|
version: 2.8.0
|
111
142
|
type: :development
|
112
|
-
version_requirements: *
|
143
|
+
version_requirements: *id008
|
113
144
|
- !ruby/object:Gem::Dependency
|
114
145
|
name: webrat
|
115
146
|
prerelease: false
|
116
|
-
requirement: &
|
147
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
117
148
|
none: false
|
118
149
|
requirements:
|
119
150
|
- - ">="
|
@@ -123,11 +154,11 @@ dependencies:
|
|
123
154
|
- 0
|
124
155
|
version: "0"
|
125
156
|
type: :development
|
126
|
-
version_requirements: *
|
157
|
+
version_requirements: *id009
|
127
158
|
- !ruby/object:Gem::Dependency
|
128
159
|
name: sinatra
|
129
160
|
prerelease: false
|
130
|
-
requirement: &
|
161
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
131
162
|
none: false
|
132
163
|
requirements:
|
133
164
|
- - ">="
|
@@ -137,11 +168,11 @@ dependencies:
|
|
137
168
|
- 0
|
138
169
|
version: "0"
|
139
170
|
type: :development
|
140
|
-
version_requirements: *
|
171
|
+
version_requirements: *id010
|
141
172
|
- !ruby/object:Gem::Dependency
|
142
173
|
name: shotgun
|
143
174
|
prerelease: false
|
144
|
-
requirement: &
|
175
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
145
176
|
none: false
|
146
177
|
requirements:
|
147
178
|
- - ">="
|
@@ -151,11 +182,11 @@ dependencies:
|
|
151
182
|
- 0
|
152
183
|
version: "0"
|
153
184
|
type: :development
|
154
|
-
version_requirements: *
|
185
|
+
version_requirements: *id011
|
155
186
|
- !ruby/object:Gem::Dependency
|
156
187
|
name: addressable
|
157
188
|
prerelease: false
|
158
|
-
requirement: &
|
189
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
159
190
|
none: false
|
160
191
|
requirements:
|
161
192
|
- - ~>
|
@@ -167,11 +198,11 @@ dependencies:
|
|
167
198
|
- 0
|
168
199
|
version: 2.2.0
|
169
200
|
type: :development
|
170
|
-
version_requirements: *
|
201
|
+
version_requirements: *id012
|
171
202
|
- !ruby/object:Gem::Dependency
|
172
203
|
name: rack-test
|
173
204
|
prerelease: false
|
174
|
-
requirement: &
|
205
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
175
206
|
none: false
|
176
207
|
requirements:
|
177
208
|
- - ~>
|
@@ -183,7 +214,7 @@ dependencies:
|
|
183
214
|
- 3
|
184
215
|
version: 0.5.3
|
185
216
|
type: :development
|
186
|
-
version_requirements: *
|
217
|
+
version_requirements: *id013
|
187
218
|
description: A warden strategy for easy oauth integration with github
|
188
219
|
email:
|
189
220
|
- atmos@atmos.org
|