mirror of
https://github.com/neocities/neocities.git
synced 2025-04-25 01:32:36 +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
|
end
|
||||||
|
|
||||||
def create_directory(path)
|
def create_directory(path)
|
||||||
|
path = scrubbed_path path
|
||||||
relative_path = files_path path
|
relative_path = files_path path
|
||||||
|
|
||||||
if Dir.exists?(relative_path) || File.exist?(relative_path)
|
if Dir.exists?(relative_path) || File.exist?(relative_path)
|
||||||
return 'Directory (or file) already exists.'
|
return 'Directory (or file) already exists.'
|
||||||
end
|
end
|
||||||
|
@ -820,7 +822,6 @@ class Site < Sequel::Model
|
||||||
raise ArgumentError, 'directory name cannot be empty' if path_site_file == ''
|
raise ArgumentError, 'directory name cannot be empty' if path_site_file == ''
|
||||||
|
|
||||||
site_file = SiteFile.where(site_id: self.id, path: path_site_file).first
|
site_file = SiteFile.where(site_id: self.id, path: path_site_file).first
|
||||||
|
|
||||||
if site_file.nil?
|
if site_file.nil?
|
||||||
SiteFile.create(
|
SiteFile.create(
|
||||||
site_id: self.id,
|
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 =~ /test2\/test.jpg/}.length.must_equal 1
|
||||||
@site.site_files.select {|sf| sf.path =~ /test\/test.jpg/}.length.must_equal 0
|
@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
|
end
|
||||||
|
|
||||||
it 'doesnt wipe out existing file' do
|
it 'doesnt wipe out existing file' do
|
||||||
|
@ -450,6 +450,13 @@ describe 'site_files' do
|
||||||
@site.reload.changed_count.must_equal 2
|
@site.reload.changed_count.must_equal 2
|
||||||
end
|
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
|
describe 'classification' do
|
||||||
before do
|
before do
|
||||||
puts "TODO FINISH CLASSIFIER"
|
puts "TODO FINISH CLASSIFIER"
|
||||||
|
|
Loading…
Add table
Reference in a new issue