mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
patch bug where dir create didn't scrub path in db entry
This commit is contained in:
parent
58a09f0bd9
commit
b966321282
2 changed files with 10 additions and 2 deletions
|
@ -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,
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Reference in a new issue