parent
9993d04ab0
commit
5fa73da51a
12 changed files with 484 additions and 82 deletions
78
vedia.rb
78
vedia.rb
|
|
@ -91,6 +91,7 @@ post '/signup' do
|
|||
@user.password = hash_password(params[:password])
|
||||
end
|
||||
if @errors.empty? and @user.valid?
|
||||
@user.admin = true if @user.id == 1
|
||||
@user.save
|
||||
session.clear
|
||||
session[:user_id] = @user.id
|
||||
|
|
@ -192,6 +193,71 @@ post '/logout' do
|
|||
redirect '/login'
|
||||
end
|
||||
|
||||
get '/admin' do
|
||||
require_admin
|
||||
@users = User.all
|
||||
@votes = Vote.all
|
||||
erb :admin
|
||||
end
|
||||
|
||||
get '/admin/users/:id' do
|
||||
require_admin
|
||||
@user = User.find(params[:id])
|
||||
erb :admin_users
|
||||
end
|
||||
|
||||
get '/admin/users/:id/organizers/:vote/delete' do
|
||||
require_admin
|
||||
rating = Organizer.where(user: params[:id]).where(vote: params[:vote]).each do |organizer|
|
||||
organizer.destroy
|
||||
end
|
||||
redirect "/admin/users/#{params[:id]}"
|
||||
end
|
||||
|
||||
get '/admin/users/:id/ratings/:vote/delete' do
|
||||
require_admin
|
||||
rating = Rating.where(user: params[:id]).where(vote: params[:vote]).each do |rating|
|
||||
rating.destroy
|
||||
end
|
||||
redirect "/admin/users/#{params[:id]}"
|
||||
end
|
||||
|
||||
post '/admin/users/:id/delete' do
|
||||
require_admin
|
||||
@user = User.find(params[:id])
|
||||
@user.destroy
|
||||
redirect '/admin'
|
||||
end
|
||||
|
||||
get '/admin/votes/:id' do
|
||||
require_admin
|
||||
@vote = Vote.find(params[:id])
|
||||
erb :admin_votes
|
||||
end
|
||||
|
||||
get '/admin/votes/:id/organizers/:user/delete' do
|
||||
require_admin
|
||||
rating = Organizer.where(vote: params[:id]).where(user: params[:user]).each do |organizer|
|
||||
organizer.destroy
|
||||
end
|
||||
redirect "/admin/votes/#{params[:id]}"
|
||||
end
|
||||
|
||||
get '/admin/votes/:id/ratings/:user/delete' do
|
||||
require_admin
|
||||
rating = Rating.where(vote: params[:id]).where(user: params[:user]).each do |rating|
|
||||
rating.destroy
|
||||
end
|
||||
redirect "/admin/votes/#{params[:id]}"
|
||||
end
|
||||
|
||||
post '/admin/votes/:id/delete' do
|
||||
require_admin
|
||||
@vote = Vote.find(params[:id])
|
||||
@vote.destroy
|
||||
redirect '/admin'
|
||||
end
|
||||
|
||||
get '/votes/new' do
|
||||
require_login
|
||||
erb :votes_new
|
||||
|
|
@ -370,10 +436,18 @@ helpers do
|
|||
end
|
||||
end
|
||||
|
||||
def is_admin
|
||||
current_user and current_user.admin
|
||||
end
|
||||
|
||||
def require_login
|
||||
redirect '/login' unless current_user
|
||||
end
|
||||
|
||||
def require_admin
|
||||
redirect '/' unless is_admin
|
||||
end
|
||||
|
||||
def find_vote
|
||||
@vote = Vote.find_by(secure_id: params[:id])
|
||||
end
|
||||
|
|
@ -399,6 +473,10 @@ helpers do
|
|||
end
|
||||
|
||||
def format_date(timestamp)
|
||||
"#{TZInfo::Timezone.get(session[:timezone]).to_local(timestamp).strftime('%F')}"
|
||||
end
|
||||
|
||||
def format_date_and_time(timestamp)
|
||||
"#{TZInfo::Timezone.get(session[:timezone]).to_local(timestamp).strftime('%F %R')} (#{session[:timezone].gsub('_', ' ')})"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue