el_finder 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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