Module: Perkins::Auth::Github::Helpers
- Defined in:
- lib/perkins/auth/github.rb
Instance Method Summary collapse
- #_relative_url_for(path) ⇒ Object
- #authenticate!(*args) ⇒ Object
- #authenticated?(*args) ⇒ Boolean
-
#github_organization_access?(name) ⇒ Boolean
See if the user is a member of the named organization.
-
#github_organization_authenticate!(name) ⇒ Object
Enforce user membership to the named organization if membership is publicized.
-
#github_public_organization_access?(name) ⇒ Boolean
See if the user is a public member of the named organization.
-
#github_public_organization_authenticate!(name) ⇒ Object
Enforce user membership to the named organization.
-
#github_raw_request(path) ⇒ Object
Send a V3 API GET request to path.
-
#github_request(path) ⇒ Object
Send a V3 API GET request to path and parse the response body.
-
#github_team_access?(team_id) ⇒ Boolean
See if the user is a member of the team id.
-
#github_team_authenticate!(team_id) ⇒ Object
Enforce user membership to the team id.
-
#github_user ⇒ Object
The authenticated user object.
- #logout! ⇒ Object
- #warden ⇒ Object
Instance Method Details
#_relative_url_for(path) ⇒ Object
145 146 147 |
# File 'lib/perkins/auth/github.rb', line 145 def _relative_url_for(path) request.script_name + path end |
#authenticate!(*args) ⇒ Object
43 44 45 |
# File 'lib/perkins/auth/github.rb', line 43 def authenticate!(*args) warden.authenticate!(*args) end |
#authenticated?(*args) ⇒ Boolean
47 48 49 |
# File 'lib/perkins/auth/github.rb', line 47 def authenticated?(*args) warden.authenticated?(*args) end |
#github_organization_access?(name) ⇒ Boolean
See if the user is a member of the named organization
name - the organization name
Returns: true if the user has access, false otherwise
102 103 104 |
# File 'lib/perkins/auth/github.rb', line 102 def github_organization_access?(name) github_user.organization_member?(name) end |
#github_organization_authenticate!(name) ⇒ Object
Enforce user membership to the named organization if membership is publicized
name - the organization to test membership against
Returns an execution halt if the user is not a member of the named org
130 131 132 133 |
# File 'lib/perkins/auth/github.rb', line 130 def github_organization_authenticate!(name) authenticate! halt([401, "Unauthorized User"]) unless github_organization_access?(name) end |
#github_public_organization_access?(name) ⇒ Boolean
See if the user is a public member of the named organization
name - the organization name
Returns: true if the user is public access, false otherwise
93 94 95 |
# File 'lib/perkins/auth/github.rb', line 93 def github_public_organization_access?(name) github_user.publicized_organization_member?(name) end |
#github_public_organization_authenticate!(name) ⇒ Object
Enforce user membership to the named organization
name - the organization to test membership against
Returns an execution halt if the user is not a member of the named org
120 121 122 123 |
# File 'lib/perkins/auth/github.rb', line 120 def github_public_organization_authenticate!(name) authenticate! halt([401, "Unauthorized User"]) unless github_public_organization_access?(name) end |
#github_raw_request(path) ⇒ Object
Send a V3 API GET request to path
path - the path on api.github.com to hit
Returns a rest client response object
Examples
github_raw_request("/user")
# => RestClient::Response
71 72 73 |
# File 'lib/perkins/auth/github.rb', line 71 def github_raw_request(path) github_user.github_raw_request(path) end |
#github_request(path) ⇒ Object
Send a V3 API GET request to path and parse the response body
path - the path on api.github.com to hit
Returns a parsed JSON response
Examples
github_request("/user")
# => { 'login' => 'atmos', ... }
84 85 86 |
# File 'lib/perkins/auth/github.rb', line 84 def github_request(path) github_user.github_request(path) end |
#github_team_access?(team_id) ⇒ Boolean
See if the user is a member of the team id
team_id - the team’s id
Returns: true if the user has access, false otherwise
111 112 113 |
# File 'lib/perkins/auth/github.rb', line 111 def github_team_access?(team_id) github_user.team_member?(team_id) end |
#github_team_authenticate!(team_id) ⇒ Object
Enforce user membership to the team id
team_id - the team_id to test membership against
Returns an execution halt if the user is not a member of the team
140 141 142 143 |
# File 'lib/perkins/auth/github.rb', line 140 def github_team_authenticate!(team_id) authenticate! halt([401, "Unauthorized User"]) unless github_team_access?(team_id) end |
#github_user ⇒ Object
The authenticated user object
Supports a variety of methods, name, full_name, email, etc
58 59 60 |
# File 'lib/perkins/auth/github.rb', line 58 def github_user warden.user end |
#logout! ⇒ Object
51 52 53 |
# File 'lib/perkins/auth/github.rb', line 51 def logout! warden.logout end |
#warden ⇒ Object
39 40 41 |
# File 'lib/perkins/auth/github.rb', line 39 def warden env['warden'] end |