el_finder 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -292,7 +292,8 @@ module ElFinder
292
292
 
293
293
  #
294
294
  def _edit
295
- if perms_for(@target)[:write] == true
295
+ perms = perms_for(@target)
296
+ if perms[:read] == true && perms[:write] == true
296
297
  @target.open('w') { |f| f.write @params[:content] }
297
298
  @response[:file] = cdc_for(@target)
298
299
  else
@@ -321,7 +322,8 @@ module ElFinder
321
322
  command_not_implemented
322
323
  else
323
324
  if @target.file?
324
- if perms_for(@target)[:write] == true
325
+ perms = perms_for(@target)
326
+ if perms[:read] == true && perms[:write] == true
325
327
  image_resize_handler.resize(@target, :width => @params[:width].to_i, :height => @params[:height].to_i)
326
328
  @response[:select] = [to_hash(@target)]
327
329
  _open(@current)
@@ -1,3 +1,3 @@
1
1
  module ElFinder
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
@@ -565,6 +565,19 @@ class TestElFinder < Test::Unit::TestCase
565
565
  assert_not_equal 'Hello', File.read(File.join(@vroot, 'README.txt'))
566
566
  end
567
567
 
568
+ def test_edit_permissions_read
569
+ @elfinder.options = {
570
+ :perms => {
571
+ 'README.txt' => {:read => false}
572
+ }
573
+ }
574
+ h, r = @elfinder.run(:cmd => 'open', :init => 'true', :target => '')
575
+ file = r[:cdc].find{|e| e[:name] == 'README.txt'}
576
+ h, r = @elfinder.run(:cmd => 'edit', :target => file[:hash], :content => 'Hello')
577
+ assert_match(/access denied/i, r[:error])
578
+ assert_not_equal 'Hello', File.read(File.join(@vroot, 'README.txt'))
579
+ end
580
+
568
581
  def test_resize_permissions_write
569
582
  @elfinder.options = {
570
583
  :perms => {
@@ -574,6 +587,21 @@ class TestElFinder < Test::Unit::TestCase
574
587
  h, r = @elfinder.run(:cmd => 'open', :init => 'true', :target => '')
575
588
  file = r[:cdc].find{|e| e[:name] == 'pjkh.png'}
576
589
  h, r = @elfinder.run(:cmd => 'resize', :target => file[:hash], :current => r[:cwd][:hash], :width => '50', :height => '25')
590
+ assert_match(/access denied/i, r[:error])
591
+ assert File.exist?(File.join(@vroot, 'pjkh.png'))
592
+ assert_equal '100x100', ElFinder::ImageSize.for(File.join(@vroot, 'pjkh.png')).to_s
593
+ end
594
+
595
+ def test_resize_permissions_read
596
+ @elfinder.options = {
597
+ :perms => {
598
+ 'pjkh.png' => {:read => false}
599
+ }
600
+ }
601
+ h, r = @elfinder.run(:cmd => 'open', :init => 'true', :target => '')
602
+ file = r[:cdc].find{|e| e[:name] == 'pjkh.png'}
603
+ h, r = @elfinder.run(:cmd => 'resize', :target => file[:hash], :current => r[:cwd][:hash], :width => '50', :height => '25')
604
+ assert_match(/access denied/i, r[:error])
577
605
  assert File.exist?(File.join(@vroot, 'pjkh.png'))
578
606
  assert_equal '100x100', ElFinder::ImageSize.for(File.join(@vroot, 'pjkh.png')).to_s
579
607
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: el_finder
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 2
10
- version: 1.0.2
9
+ - 3
10
+ version: 1.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Philip Hallstrom
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-31 00:00:00 -08:00
18
+ date: 2011-01-03 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency