From 788755366699887a18926cc4ae19a2030b356c5a Mon Sep 17 00:00:00 2001 From: Andrew Shu Date: Sun, 30 Apr 2023 08:02:38 -0700 Subject: [PATCH 1/3] Fix dependencies installation on Vagrant --- vagrant/webapp.sh | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/vagrant/webapp.sh b/vagrant/webapp.sh index f0fb1228..fbddae89 100644 --- a/vagrant/webapp.sh +++ b/vagrant/webapp.sh @@ -4,7 +4,28 @@ DEBIAN_FRONTEND=noninteractive . /vagrant/vagrant/redis.sh -apt-get install -y git curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev libffi-dev libpq-dev libmagickwand-dev imagemagick libmagickwand-dev libmagic-dev file clamav-daemon +apt-get install -y \ + build-essential \ + clamav-daemon \ + curl \ + file \ + git \ + imagemagick \ + libcurl4-openssl-dev \ + libffi-dev \ + libimlib2-dev \ + libmagic-dev \ + libmagickwand-dev \ + libpq-dev \ + libreadline-dev \ + libsqlite3-dev \ + libssl-dev \ + libwebp-dev \ + libxml2-dev \ + libxslt1-dev \ + libyaml-dev \ + sqlite3 \ + zlib1g-dev sed -i 's|[#]*DetectPUA false|DetectPUA true|g' /etc/clamav/clamd.conf From beafd2daf8d9ea4aae93bbc3e8dae9d614971e8e Mon Sep 17 00:00:00 2001 From: Andrew Shu Date: Sun, 30 Apr 2023 11:25:29 -0700 Subject: [PATCH 2/3] Fix validating education class tag whitelist --- app/create.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/create.rb b/app/create.rb index 101633bd..3506d43c 100644 --- a/app/create.rb +++ b/app/create.rb @@ -1,7 +1,12 @@ CREATE_MATCH_REGEX = /^username$|^password$|^email$|^new_tags_string$|^is_education$/ +def education_whitelist_required? + return true if params[:is_education] == 'true' && $config['education_tag_whitelist'] + false +end + def education_whitelisted? - return true if params[:is_education] == 'true' && $config['education_tag_whitelist'] && !$config['education_tag_whitelist'].select {|t| params[:new_tags_string].match(t)}.empty? + return true if education_whitelist_required? && !$config['education_tag_whitelist'].select {|t| params[:new_tags_string].match(t)}.empty? false end @@ -63,8 +68,13 @@ post '/create' do ga_adgroupid: session[:ga_adgroupid] ) - if education_whitelisted? - @site.email_confirmed = true + if education_whitelist_required? + if education_whitelisted? + @site.email_confirmed = true + else + flash[:error] = 'The class tag is invalid.' + return {result: 'error'}.to_json + end else if !hcaptcha_valid? flash[:error] = 'The captcha was not valid, please try again.' From e901f599c2a860ca58547d42525f148921cf9c8d Mon Sep 17 00:00:00 2001 From: Andrew Shu Date: Sun, 30 Apr 2023 14:16:44 -0700 Subject: [PATCH 3/3] Fix suggestions test being off by one sometimes Delete the leftover Site model in an unrelated test to fix the race condition --- tests/acceptance/site_tests.rb | 47 ++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/tests/acceptance/site_tests.rb b/tests/acceptance/site_tests.rb index 1656ddb4..5ab20e76 100644 --- a/tests/acceptance/site_tests.rb +++ b/tests/acceptance/site_tests.rb @@ -64,36 +64,45 @@ describe 'site page' do end - it 'allows site blocking and unblocking' do - tag = SecureRandom.hex 10 - blocked_site = Fabricate :site, new_tags_string: tag, created_at: 2.weeks.ago, site_changed: true, views: Site::BROWSE_MINIMUM_FOLLOWER_VIEWS+1 - site = Fabricate :site + describe 'blocking' do + before do + @tag = SecureRandom.hex 10 + @blocked_site = Fabricate :site, new_tags_string: @tag, created_at: 2.weeks.ago, site_changed: true, views: Site::BROWSE_MINIMUM_FOLLOWER_VIEWS+1 + end - page.set_rack_session id: site.id + after do + @blocked_site.destroy + end - visit "/browse?tag=#{tag}" + it 'allows site blocking and unblocking' do + site = Fabricate :site - _(page.find('.website-Gallery .username a')['href']).must_match /\/site\/#{blocked_site.username}/ + page.set_rack_session id: site.id - visit "/site/#{blocked_site.username}" + visit "/browse?tag=#{@tag}" - click_link 'Block' - click_button 'Block Site' + _(page.find('.website-Gallery .username a')['href']).must_match /\/site\/#{@blocked_site.username}/ - visit "/browse?tag=#{tag}" + visit "/site/#{@blocked_site.username}" - _(page).must_have_content /no active sites found/i + click_link 'Block' + click_button 'Block Site' - site.reload - _(site.blockings.length).must_equal 1 - _(site.blockings.first.site_id).must_equal blocked_site.id + visit "/browse?tag=#{@tag}" - visit "/site/#{blocked_site.username}" + _(page).must_have_content /no active sites found/i - click_link 'Unblock' + site.reload + _(site.blockings.length).must_equal 1 + _(site.blockings.first.site_id).must_equal @blocked_site.id - visit "/browse?tag=#{tag}" - _(page.find('.website-Gallery .username a')['href']).must_match /\/site\/#{blocked_site.username}/ + visit "/site/#{@blocked_site.username}" + + click_link 'Unblock' + + visit "/browse?tag=#{@tag}" + _(page.find('.website-Gallery .username a')['href']).must_match /\/site\/#{@blocked_site.username}/ + end end it '404s if site is banned' do