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.
@@ -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/#{name}/public_members")
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?(name)
43
- orgs = github_request("orgs/#{name}/members")
44
- orgs.map { |org| org["login"] }.include?(github_user.login)
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
@@ -1,5 +1,5 @@
1
1
  module Warden
2
2
  module Github
3
- VERSION = "0.4.4"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
data/spec/app.rb CHANGED
@@ -32,7 +32,12 @@ module Example
32
32
 
33
33
  get '/' do
34
34
  ensure_authenticated
35
- "Hello There, #{user.name}!"
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
@@ -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: 7
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
9
- - 4
10
- version: 0.4.4
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: rack
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: *id004
113
+ version_requirements: *id006
83
114
  - !ruby/object:Gem::Dependency
84
115
  name: rake
85
116
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::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: *id005
127
+ version_requirements: *id007
97
128
  - !ruby/object:Gem::Dependency
98
129
  name: rspec
99
130
  prerelease: false
100
- requirement: &id006 !ruby/object:Gem::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: *id006
143
+ version_requirements: *id008
113
144
  - !ruby/object:Gem::Dependency
114
145
  name: webrat
115
146
  prerelease: false
116
- requirement: &id007 !ruby/object:Gem::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: *id007
157
+ version_requirements: *id009
127
158
  - !ruby/object:Gem::Dependency
128
159
  name: sinatra
129
160
  prerelease: false
130
- requirement: &id008 !ruby/object:Gem::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: *id008
171
+ version_requirements: *id010
141
172
  - !ruby/object:Gem::Dependency
142
173
  name: shotgun
143
174
  prerelease: false
144
- requirement: &id009 !ruby/object:Gem::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: *id009
185
+ version_requirements: *id011
155
186
  - !ruby/object:Gem::Dependency
156
187
  name: addressable
157
188
  prerelease: false
158
- requirement: &id010 !ruby/object:Gem::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: *id010
201
+ version_requirements: *id012
171
202
  - !ruby/object:Gem::Dependency
172
203
  name: rack-test
173
204
  prerelease: false
174
- requirement: &id011 !ruby/object:Gem::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: *id011
217
+ version_requirements: *id013
187
218
  description: A warden strategy for easy oauth integration with github
188
219
  email:
189
220
  - atmos@atmos.org