patch bug where dir create didn't scrub path in db entry

This commit is contained in:
Kyle Drake 2019-09-19 18:45:45 -07:00
parent 58a09f0bd9
commit b966321282
2 changed files with 10 additions and 2 deletions

View file

@ -801,7 +801,9 @@ class Site < Sequel::Model
end
def create_directory(path)
path = scrubbed_path path
relative_path = files_path path
if Dir.exists?(relative_path) || File.exist?(relative_path)
return 'Directory (or file) already exists.'
end
@ -820,7 +822,6 @@ class Site < Sequel::Model
raise ArgumentError, 'directory name cannot be empty' if path_site_file == ''
site_file = SiteFile.where(site_id: self.id, path: path_site_file).first
if site_file.nil?
SiteFile.create(
site_id: self.id,

View file

@ -78,7 +78,7 @@ describe 'site_files' do
@site.site_files.select {|sf| sf.path =~ /test2\/test.jpg/}.length.must_equal 1
@site.site_files.select {|sf| sf.path =~ /test\/test.jpg/}.length.must_equal 0
PurgeCacheWorker.jobs.collect {|p| p['args'].last}.must_equal ["/test/test.jpg", "/test/index.html", "/test/", "test", "test2", "test/test.jpg", "test2/test.jpg", "test/index.html", "test/", "test2/index.html", "test2/"]
PurgeCacheWorker.jobs.collect {|p| p['args'].last}.sort.must_equal ["/test/test.jpg", "/test/index.html", "/test/", "test", "test2", "test/test.jpg", "test2/test.jpg", "test/index.html", "test/", "test2/index.html", "test2/"].sort
end
it 'doesnt wipe out existing file' do
@ -450,6 +450,13 @@ describe 'site_files' do
@site.reload.changed_count.must_equal 2
end
describe 'directory create' do
it 'scrubs ../ from directory' do
@site.create_directory '../../test'
@site.site_files.select {|site_file| site_file.path =~ /\.\./}.length.must_equal 0
end
end
describe 'classification' do
before do
puts "TODO FINISH CLASSIFIER"