Class: OmniAuth::Strategies::GitHubOrganization
- Inherits:
-
OAuth2
- Object
- OAuth2
- OmniAuth::Strategies::GitHubOrganization
- Defined in:
- lib/omniauth/strategies/github_organization.rb
Instance Method Summary collapse
- #authorize_params ⇒ Object
- #callback_phase ⇒ Object
- #callback_url ⇒ Object
- #email ⇒ Object
- #email_access_allowed? ⇒ Boolean
-
#emails ⇒ Object
The new /user/emails API - developer.github.com/v3/users/emails/#future-response.
- #organizations ⇒ Object
- #primary_email ⇒ Object
- #raw_info ⇒ Object
- #request_phase ⇒ Object
Instance Method Details
#authorize_params ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/omniauth/strategies/github_organization.rb', line 20 def super.tap do |params| %w[scope client_options].each do |v| if request.params[v] params[v.to_sym] = request.params[v] end end end end |
#callback_phase ⇒ Object
30 31 32 33 |
# File 'lib/omniauth/strategies/github_organization.rb', line 30 def callback_phase return fail!(:user_denied, CallbackError.new(:user_denied, ['organization'])) unless organizations.include? ['organization'] super end |
#callback_url ⇒ Object
89 90 91 |
# File 'lib/omniauth/strategies/github_organization.rb', line 89 def callback_url full_host + script_name + callback_path end |
#email ⇒ Object
66 67 68 |
# File 'lib/omniauth/strategies/github_organization.rb', line 66 def email email_access_allowed? ? primary_email : raw_info['email'] end |
#email_access_allowed? ⇒ Boolean
82 83 84 85 86 87 |
# File 'lib/omniauth/strategies/github_organization.rb', line 82 def email_access_allowed? return false unless ['scope'] email_scopes = %w[user user:email] scopes = ['scope'].split(',') (scopes & email_scopes).any? end |
#emails ⇒ Object
The new /user/emails API - developer.github.com/v3/users/emails/#future-response
76 77 78 79 80 |
# File 'lib/omniauth/strategies/github_organization.rb', line 76 def emails return [] unless email_access_allowed? access_token.[:mode] = :query @emails ||= access_token.get('user/emails', headers: { 'Accept' => 'application/vnd.github.v3' }).parsed end |
#organizations ⇒ Object
35 36 37 38 39 |
# File 'lib/omniauth/strategies/github_organization.rb', line 35 def organizations access_token.[:mode] = :query organizations = access_token.get('user/orgs', headers: { 'Accept' => 'application/vnd.github.v3' }).parsed organizations.map { |x| x['login'] } end |
#primary_email ⇒ Object
70 71 72 73 |
# File 'lib/omniauth/strategies/github_organization.rb', line 70 def primary_email primary = emails.find { |i| i['primary'] && i['verified'] } primary && primary['email'] || nil end |
#raw_info ⇒ Object
61 62 63 64 |
# File 'lib/omniauth/strategies/github_organization.rb', line 61 def raw_info access_token.[:mode] = :query @raw_info ||= access_token.get('user').parsed end |
#request_phase ⇒ Object
16 17 18 |
# File 'lib/omniauth/strategies/github_organization.rb', line 16 def request_phase super end |