Sha256: 78414a68b4e9bf0d32e0df8f276649c4eec004e5b6451fc86c1e9dae33996e6a

Contents?: true

Size: 1.31 KB

Versions: 16

Compression:

Stored size: 1.31 KB

Contents

require 'sinatra/base'
require 'sinatra_more'
require 'warden'

class User
  attr_accessor :id, :name, :username, :password
  
  def initialize(id, name, username, password)
    self.id, self.name, self.username, self.password = id, name, username, password
  end
  
  def self.find(id)
    return self.john_user if id == self.john_user.id
  end
  
  def self.authenticate(username, password)
    return self.john_user if username == self.john_user.username && password == self.john_user.password
  end
  
  def self.john_user
    @john ||= User.new(21, "John", 'john21', 'secret')
  end
end

class WardenDemo < Sinatra::Base
  use Rack::Session::Cookie
  register SinatraMore::WardenPlugin
  
  configure do
    set :root, File.dirname(__FILE__)
  end
  
  get '/login' do
    "<h1>Please login!</h1>"
  end
  
  post '/login' do
    authenticate_user!
  end
  
  get '/logout' do
    logout_user!
  end
  
  get '/logged_in' do
    "<h1>logged_in? #{logged_in?}</h1>"
  end
  
  get '/authenticated' do
    haml :dashboard
  end
  
  get '/unregistered' do
    haml :dashboard
  end
  
  get '/must_be_authorized' do
    must_be_authorized!('/login')
    "<h1>Valid Authorized Page</h1>"
  end
  
  get '/current_user' do
    if current_user
      "<h1>#{current_user.name}</h1>"
    else
      "<h2>Not logged in</h2>"
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
sinatra_more-0.2.4 test/fixtures/warden_app/app.rb
sinatra_more-0.2.3 test/fixtures/warden_app/app.rb
sinatra_more-0.2.2 test/fixtures/warden_app/app.rb
sinatra_more-0.2.1 test/fixtures/warden_app/app.rb
sinatra_more-0.2.0 test/fixtures/warden_app/app.rb
sinatra_more-0.1.10 test/fixtures/warden_app/app.rb
sinatra_more-0.1.9 test/fixtures/warden_app/app.rb
sinatra_more-0.1.8 test/fixtures/warden_app/app.rb
sinatra_more-0.1.7 test/fixtures/warden_app/app.rb
sinatra_more-0.1.6 test/fixtures/warden_app/app.rb
sinatra_more-0.1.5 test/fixtures/warden_app/app.rb
sinatra_more-0.1.4 test/fixtures/warden_app/app.rb
sinatra_more-0.1.3 test/fixtures/warden_app/app.rb
sinatra_more-0.1.2 test/fixtures/warden_app/app.rb
sinatra_more-0.1.1 test/fixtures/warden_app/app.rb
sinatra_more-0.1.0 test/fixtures/warden_app/app.rb