From a456232e053af74c91e6b44fdb0a5cdfc59138a7 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Mon, 24 Jun 2013 13:13:58 -0700 Subject: [PATCH] nsfw banning, and ip banning for spammers --- app.rb | 25 +++++++++++++++++++++++-- views/admin.slim | 21 +++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/app.rb b/app.rb index c5d524a7..61ecc229 100644 --- a/app.rb +++ b/app.rb @@ -256,7 +256,8 @@ end get '/admin' do require_admin - @banned_sites = Site.filter(is_banned: true).order(:username).all + @banned_sites = Site.select(:username).filter(is_banned: true).order(:username).all + @nsfw_sites = Site.select(:username).filter(is_nsfw: true).order(:username).all slim :'admin' end @@ -277,9 +278,29 @@ post '/admin/banhammer' do DB.transaction { FileUtils.mv site_base_path(site.username), File.join(settings.public_folder, 'banned_sites', site.username) site.is_banned = true - site.save(validate: false) + site.save validate: false } + if !['127.0.0.1', 'nil', ''].include? site.ip + `sudo ufw deny from #{site.ip}` + end + + flash[:success] = 'MISSION ACCOMPLISHED' + redirect '/admin' +end + +post '/admin/mark_nsfw' do + require_admin + site = Site[username: params[:username]] + + if site.nil? + flash[:error] = 'User not found' + redirect '/admin' + end + + site.is_nsfw = true + site.save validate: false + flash[:success] = 'MISSION ACCOMPLISHED' redirect '/admin' end diff --git a/views/admin.slim b/views/admin.slim index f5bfb637..8586b948 100644 --- a/views/admin.slim +++ b/views/admin.slim @@ -5,11 +5,11 @@ .row .span6 - h2 Ban User for REASONS OF TERRRROROR! + h2 Ban User form action="/admin/banhammer" method="POST" input name="csrf_token" type="hidden" value="#{csrf_token}" - p TerrRRRROR Suspect: + p Site Name: input type="text" name="username" placeholder="edwardsnowden" br input.btn.btn-danger type="submit" value="Ban" @@ -18,3 +18,20 @@ - @banned_sites.each do |banned_site| = banned_site.username br + + +.row + .span6 + h2 Mark NSFW + + form action="/admin/mark_nsfw" method="POST" + input name="csrf_token" type="hidden" value="#{csrf_token}" + p Site name: + input type="text" name="username" placeholder="edwardsnowden" + br + input.btn.btn-danger type="submit" value="Mark NSFW" + .span6 + h2 NSFW Sites + - @nsfw_sites.each do |nsfw_site| + = nsfw_site.username + br \ No newline at end of file