warden-github 0.4.4 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|