Sha256: 66cfd85aef35c8b87b65f14fec840888920cc8d1784a899d6e66ab4cc5c8e9f8

Contents?: true

Size: 569 Bytes

Versions: 3

Compression:

Stored size: 569 Bytes

Contents

# encoding: utf-8
require 'warden'

module OpenSesame
  class GithubWarden < ::Warden::Strategies::Base

    def valid?
      auth_hash && auth_hash["provider"] == "github"
    end

    def authenticate!
      if member = OpenSesame::Member.find(github_login)
        success! member
      else
        fail 'Sorry, you do not have access'
      end
    end

    def github_login
      auth_hash['info']['nickname']
    end

    def auth_hash
      request.env['omniauth.auth']
    end

  end
end

::Warden::Strategies.add(:opensesame_github, OpenSesame::GithubWarden)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
opensesame-0.4.0 lib/open_sesame/github_warden.rb
opensesame-0.3.0 lib/open_sesame/github_warden.rb
opensesame-0.2.0 lib/open_sesame/github_warden.rb