From 19ad676df6607cf45d540fe33514ed8aad9b68cc Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Thu, 14 Aug 2014 11:01:56 -0700 Subject: [PATCH] de-prioritize shooting yourself in the foot --- app.rb | 4 +--- models/site.rb | 31 ++++++++++++++++++++++++++++++- views/settings.erb | 3 ++- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/app.rb b/app.rb index 106c077f..1774496b 100644 --- a/app.rb +++ b/app.rb @@ -1154,11 +1154,9 @@ end post '/site/delete' do require_login if current_site.username != params[:username] - errors.add :username, 'Could not delete site, site name did not match.' + current_site.errors.add :username, 'Could not delete site, site name did not match.' halt erb(:settings) end - - end def require_admin diff --git a/models/site.rb b/models/site.rb index 39a00fed..5a1af946 100644 --- a/models/site.rb +++ b/models/site.rb @@ -209,16 +209,45 @@ class Site < Sequel::Model File.read file_path(filename) end + def before_destroy + raise 'not finished' + DB.transaction { + remove_all_tags + profile_comments.destroy + profile_commentings.destroy + follows.destroy + followings.destroy + #tips.destroy + #tippings.destroy + #blocks.destroy + #blockings.destroy + #reports.destroy + #reportings.destroy + #stats.destroy + #events.destroy + #site_changes.destroy + # TODO FIND THE REST, ASSOCIATE THEM PROPERLY!!! + } + end + + def delete_site! + raise 'not finished' + DB.transaction { + destroy + FileUtils.mv files_path, File.join(PUBLIC_ROOT, 'deleted_sites', username) + } + end + def ban! if username.nil? || username.empty? raise 'username is missing' end DB.transaction { - FileUtils.mv files_path, File.join(PUBLIC_ROOT, 'banned_sites', username) self.is_banned = true self.updated_at = Time.now save(validate: false) + FileUtils.mv files_path, File.join(PUBLIC_ROOT, 'banned_sites', username) } site_files.file_list.collect {|f| f.filename}.each do |f| diff --git a/views/settings.erb b/views/settings.erb index f0f997a8..7cc57838 100644 --- a/views/settings.erb +++ b/views/settings.erb @@ -110,7 +110,7 @@ - +