Module: Sinatra::Backstage::User
- Includes:
- Helper
- Defined in:
- lib/sinatra/backstage/user/user_model.rb,
lib/sinatra/backstage/user/user_helper.rb,
lib/sinatra/backstage/user/user_middleware.rb
Defined Under Namespace
Class Method Summary collapse
Methods included from Helper
#authorized?, #authorized_user, included, #set_session
Class Method Details
.registered(app) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/sinatra/backstage/user/user_middleware.rb', line 7 def self.registered(app) ## Helpers app.helpers Sinatra::Cookies, Sinatra::Backstage::User::Helper ## Configure app.enable :sessions app.set :user_class, Sinatra::Backstage::User::User ## Routes ### get login page app.get '/login' do eval "#{settings.render_engine} 'user/login'" end app.get '/signup' do eval "#{settings.render_engine} 'user/signup'" end ### signup user app.post '/signup' do # puts "params = #{params}" # halt @errors = [] begin user = settings.user_class.create( params[:user].merge({:role => :user}) ) set_session user redirect '/' rescue DataMapper::SaveFailureError => e puts e.resource.errors.inspect e.resource.errors.each do |error| puts error.inspect @errors << error end @errors.flatten! puts @errors.inspect params[:user].delete_if do |key, val| ['password', 'password_confirmation'].include? key end end # puts "User::Middleware post /signup ( params['user']['email'] = #{params['user']['email']} )" eval "#{settings.render_engine} 'user/signup'" end ### login user app.post '/login' do @errors = [] password = params[:user].delete('password') user = settings.user_class.first params[:user] # puts "User::Middleware post '/login' ( params[:user] = #{params[:user]} )" # puts "User::Middleware post '/login' ( user = #{user} )" if user.nil? @errors << "Incorrect #{params[:user].keys.join(' or ')}" else if user.password == password set_session user redirect '/' else @errors << "Incorrect password" end end eval "#{settings.render_engine} 'user/login'" end ### logout user app.get '/logout' do set_session nil redirect '/' end end |