first steps towards adding a server side srp flow to the example
[ruby_srp.git] / example / http-srp.rb
1 require 'sinatra'
2 require 'pp'
3
4 require 'models/user'
5 require 'models/log'
6 require '../lib/srp'
7
8 get '/' do
9   @user = User.current
10   erb :index
11 end
12
13 get '/signup' do
14   erb :signup
15 end
16
17 post '/signup' do
18   Log.clear
19   Log.log(:signup, params)
20   @user = User.current
21   @user.signup!(params)
22   redirect '/'
23 end
24
25 get '/login' do
26   @user = User.current
27   Log.log(:init_server_login, params)
28   @auth = @user.initialize_auth(params)
29   Log.log(:init_client_login, @auth)
30   erb :login
31 end
32
33 post '/login' do
34   Log.log(:login, params)
35   @user = User.current
36   if @user.login!(params)
37     Log.log(:response, "Login succeeded")
38   else
39     Log.log(:response, "Login failed")
40   end
41   redirect '/'
42 end
43
44 get '/verify' do
45   erb :verify
46 end
47
48 helpers do
49   def button_link(action, options = {})
50     action = action.to_s
51     label = action.capitalize
52     klass = "btn btn-large"
53     if options.delete(:primary)
54       klass += " btn-primary"
55       label += " now..."
56     end
57     %Q(<a href="#{action}" class="#{klass}" id="#{action}-btn">#{label}</a>)
58   end
59 end