mirror of
https://github.com/neocities/neocities.git
synced 2025-08-04 00:31:59 +02:00
refactor app.rb blob to partition routes into files
This commit is contained in:
parent
ce110f4101
commit
ab60744ac5
18 changed files with 1347 additions and 1534 deletions
66
app/admin.rb
Normal file
66
app/admin.rb
Normal file
|
@ -0,0 +1,66 @@
|
|||
get '/admin' do
|
||||
require_admin
|
||||
@banned_sites = Site.select(:username).filter(is_banned: true).order(:username).all
|
||||
@nsfw_sites = Site.select(:username).filter(is_nsfw: true).order(:username).all
|
||||
erb :'admin'
|
||||
end
|
||||
|
||||
post '/admin/banip' do
|
||||
require_admin
|
||||
site = Site[username: params[:username]]
|
||||
|
||||
if site.nil?
|
||||
flash[:error] = 'User not found'
|
||||
redirect '/admin'
|
||||
end
|
||||
|
||||
if site.ip.nil? || site.ip.empty?
|
||||
flash[:error] = 'IP is blank, cannot continue'
|
||||
redirect '/admin'
|
||||
end
|
||||
sites = Site.filter(ip: Site.hash_ip(site.ip), is_banned: false).all
|
||||
sites.each {|s| s.ban!}
|
||||
flash[:error] = "#{sites.length} sites have been banned."
|
||||
redirect '/admin'
|
||||
end
|
||||
|
||||
post '/admin/banhammer' do
|
||||
require_admin
|
||||
|
||||
site = Site[username: params[:username]]
|
||||
|
||||
if site.nil?
|
||||
flash[:error] = 'User not found'
|
||||
redirect '/admin'
|
||||
end
|
||||
|
||||
if site.is_banned
|
||||
flash[:error] = 'User is already banned'
|
||||
redirect '/admin'
|
||||
end
|
||||
|
||||
site.ban!
|
||||
|
||||
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_changes validate: false
|
||||
|
||||
flash[:success] = 'MISSION ACCOMPLISHED'
|
||||
redirect '/admin'
|
||||
end
|
||||
|
||||
def require_admin
|
||||
redirect '/' unless signed_in? && current_site.is_admin
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue