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.
@@ -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