mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 09:12:35 +02:00
66 lines
No EOL
1.4 KiB
Ruby
66 lines
No EOL
1.4 KiB
Ruby
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 |