Sha256: d7f67d36a124be6fdac4a2392ba224e62aa05904d2ae391d287c21d90056df00
Contents?: true
Size: 844 Bytes
Versions: 1
Compression:
Stored size: 844 Bytes
Contents
require 'omniauth-github' module OmniAuth module Strategies class GitHubTeamMember < OmniAuth::Strategies::GitHub credentials do options['teams'].inject({}) do |base, key_value_pair| method_name, team_id = key_value_pair base[booleanize_method_name(method_name)] = team_member?(team_id) base end end def team_member?(team_id) response = access_token.get("/teams/#{team_id}/memberships/#{raw_info['login']}") response.status == 200 && response.parsed["state"] == "active" rescue ::OAuth2::Error false end def booleanize_method_name(method_name) return method_name if method_name =~ /\?$/ return "#{method_name}?" end end end end OmniAuth.config.add_camelization "githubteammember", "GitHubTeamMember"
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-github-team-member-2.0.1 | lib/omniauth/strategies/github_team_member.rb |