diff --git a/vote.rb b/vote.rb index 6b9dcb4..cd9eb09 100644 --- a/vote.rb +++ b/vote.rb @@ -66,7 +66,7 @@ set :values, [ { :id => 1, :label => _("Awful") }, MajorityJudgment.values = settings.values get '/' do - redirect '/login' unless current_user + require_login @votes = Vote.all erb :home end @@ -108,12 +108,12 @@ post '/logout' do end get '/votes/new' do - redirect '/login' unless current_user + require_login erb :votes_new end post '/votes' do - redirect '/login' unless current_user + require_login @vote = Vote.create(secure_id: SecureRandom.hex(8), title: params[:title], description: params[:description], @@ -123,7 +123,7 @@ post '/votes' do end get '/votes/:id' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) case @vote.state when 'draft' @@ -144,7 +144,7 @@ get '/votes/:id' do end post '/votes/:id/edit' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.state == 'draft' and @vote.users.exists?(current_user.id) @vote.title = params[:title] @@ -154,7 +154,7 @@ post '/votes/:id/edit' do end post '/votes/:id/candidates' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.state == 'draft' and @vote.users.exists?(current_user.id) @candidate = Candidate.new(name: params[:name], @@ -165,7 +165,7 @@ post '/votes/:id/candidates' do end post '/votes/:id/candidates/:cid/delete' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.state == 'draft' and @vote.users.exists?(current_user.id) @candidate = Candidate.find(params[:cid]) @@ -174,7 +174,7 @@ post '/votes/:id/candidates/:cid/delete' do end post '/votes/:id/open' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.state == 'draft' and @vote.users.exists?(current_user.id) @vote.state = 'open' @@ -183,7 +183,7 @@ post '/votes/:id/open' do end post '/votes/:id/draft' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.state == 'open' and @vote.users.exists?(current_user.id) @vote.ratings.each {|r| r.destroy} @@ -193,7 +193,7 @@ post '/votes/:id/draft' do end post '/votes/:id/close' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.state == 'open' and @vote.users.exists?(current_user.id) @vote.state = 'closed' @@ -202,7 +202,7 @@ post '/votes/:id/close' do end post '/votes/:id/reopen' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.state == 'closed' and @vote.users.exists?(current_user.id) @vote.state = 'open' @@ -211,7 +211,7 @@ post '/votes/:id/reopen' do end post '/votes/:id/ratings' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) @vote.candidates.each do |candidate| rating = Rating.find_or_initialize_by(vote: @vote, user: current_user, candidate: candidate) @@ -222,7 +222,7 @@ post '/votes/:id/ratings' do end post '/votes/:id/organizers' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.users.exists?(current_user.id) user = User.find_by(email: params[:email]) @@ -231,7 +231,7 @@ post '/votes/:id/organizers' do end post '/votes/:id/delete' do - redirect '/login' unless current_user + require_login @vote = Vote.find_by(secure_id: params[:id]) redirect '/votes/' + @vote.secure_id unless @vote.users.exists?(current_user.id) @vote.destroy @@ -246,4 +246,8 @@ helpers do nil end end + + def require_login + redirect '/login' unless current_user + end end