Module: Perkins::Auth::Github::Helpers

Defined in:
lib/perkins/auth/github.rb

Instance Method Summary collapse

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

Returns:

  • (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

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


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_userObject

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

#wardenObject



39
40
41
# File 'lib/perkins/auth/github.rb', line 39

def warden
  env['warden']
end