From af2b7a3f869111bbc2e94907cf7bd5d25b80ffe5 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Thu, 12 Feb 2015 15:55:38 -0800 Subject: [PATCH] switch to manual is_delete checking to prevent derpie errors from sites deleting --- app/browse.rb | 2 +- app/site.rb | 3 ++- ext/sequel/plugins/paranoid_delete.rb | 3 ++- models/site.rb | 5 +++-- tests/site_tests.rb | 11 ----------- 5 files changed, 8 insertions(+), 16 deletions(-) diff --git a/app/browse.rb b/app/browse.rb index b380e2f2..f909e1b8 100644 --- a/app/browse.rb +++ b/app/browse.rb @@ -12,7 +12,7 @@ def browse_sites_dataset @current_page = @current_page.to_i @current_page = 1 if @current_page == 0 - site_dataset = Site.filter(is_banned: false, is_crashing: false).filter(site_changed: true) + site_dataset = Site.filter(is_deleted: false, is_banned: false, is_crashing: false).filter(site_changed: true) if current_site if !current_site.blocking_site_ids.empty? diff --git a/app/site.rb b/app/site.rb index a6fd104e..5607a6c5 100644 --- a/app/site.rb +++ b/app/site.rb @@ -6,7 +6,8 @@ end get '/site/:username/?' do |username| site = Site[username: username] - not_found if site.nil? || site.is_banned + # TODO: There should probably be a "this site was deleted" page. + not_found if site.nil? || site.is_banned || site.is_deleted @title = site.title diff --git a/ext/sequel/plugins/paranoid_delete.rb b/ext/sequel/plugins/paranoid_delete.rb index 03b89fc6..0a92ab25 100644 --- a/ext/sequel/plugins/paranoid_delete.rb +++ b/ext/sequel/plugins/paranoid_delete.rb @@ -19,7 +19,8 @@ module Sequel # so this adds the filter for the first time the class' dataset is accessed for the new model. def dataset if @_is_deleted_filter_set.nil? - @dataset.filter! is_deleted: false + #KD: I turned this off because I think it's easier to do this manually. + #@dataset.filter! is_deleted: false @_is_deleted_filter_set = true end super diff --git a/models/site.rb b/models/site.rb index a63788df..b66e8e81 100644 --- a/models/site.rb +++ b/models/site.rb @@ -220,6 +220,7 @@ class Site < Sequel::Model site = get_with_identifier username_or_email return false if site.nil? + return false if site.is_deleted site.valid_password? plaintext end @@ -385,8 +386,8 @@ class Site < Sequel::Model FileUtils.mv files_path, File.join(DELETED_SITES_ROOT, username) remove_all_tags - remove_all_events - Event.where(actioning_site_id: id).destroy + #remove_all_events + #Event.where(actioning_site_id: id).destroy } end diff --git a/tests/site_tests.rb b/tests/site_tests.rb index 3ad10e0a..c42d1d49 100644 --- a/tests/site_tests.rb +++ b/tests/site_tests.rb @@ -5,17 +5,6 @@ def app end describe Site do - describe 'destroy' do - it 'should delete events properly' do - site_commented_on = Fabricate :site - site_commenting = Fabricate :site - site_commented_on.add_profile_comment actioning_site_id: site_commenting.id, message: 'hi' - site_commented_on.events_dataset.count.must_equal 1 - site_commenting.destroy - site_commented_on.events_dataset.count.must_equal 0 - end - end - describe 'can_email' do it 'should fail if send_emails is false' do site = Fabricate :site