X-Git-Url: https://git.p6c8.net/devedit.git/blobdiff_plain/f9b981dfde8054d50c25032febca2574e5ae6f25..6a0845bb6cf36d03e039e3fd44180a21e8042f83:/modules/Command.pm?ds=inline diff --git a/modules/Command.pm b/modules/Command.pm index 1bd1116..44419ba 100644 --- a/modules/Command.pm +++ b/modules/Command.pm @@ -6,7 +6,7 @@ package Command; # Execute Dev-Editor's commands # # Author: Patrick Canterino -# Last modified: 2003-10-20 +# Last modified: 2003-10-30 # use strict; @@ -14,8 +14,6 @@ use strict; use vars qw(@EXPORT $script); -use CGI qw(redirect); - use File::Access; use File::Copy; @@ -62,7 +60,7 @@ sub exec_show($$$) # Create directory listing my $direntries = dir_read($physical); - return error("Reading of directory $virtual failed") unless($direntries); + return error("Reading of directory $virtual failed.",upper_path($virtual)) unless($direntries); my $files = $direntries->{'files'}; my $dirs = $direntries->{'dirs'}; @@ -172,7 +170,7 @@ END { # View a file - return error("You have not enough permissions to view this file.") unless(-r $physical); + return error("You have not enough permissions to view this file.",upper_path($virtual)) unless(-r $physical); # Check on binary files # We have to do it in this way, or empty files @@ -182,7 +180,7 @@ END { # Binary file - return error("This editor is not able to view/edit binary files."); + return error("This editor is not able to view/edit binary files.",upper_path($virtual)); } else { @@ -220,9 +218,9 @@ sub exec_beginedit($$) my $virtual = $data->{'virtual'}; my $uselist = $data->{'uselist'}; - return error("You cannot edit directories.") if(-d $physical); + return error("You cannot edit directories.",upper_path($virtual)) if(-d $physical); return error_in_use($virtual) if($uselist->in_use($virtual)); - return error("You have not enough permissions to edit this file.") unless(-r $physical && -w $physical); + return error("You have not enough permissions to edit this file.",upper_path($virtual)) unless(-r $physical && -w $physical); # Check on binary files @@ -230,7 +228,7 @@ sub exec_beginedit($$) { # Binary file - return error("This editor is not able to view/edit binary files."); + return error("This editor is not able to view/edit binary files.",upper_path($virtual)); } else { @@ -301,7 +299,7 @@ sub exec_endedit($$) my $content = $data->{'cgi'}->param('filecontent'); return error("You cannot edit directories.") if(-d $physical); - return error("You have not enough permissions to edit this file.") unless(-r $physical && -w $physical); + return error("You have not enough permissions to edit this file.",upper_path($virtual)) unless(-r $physical && -w $physical); # Normalize newlines @@ -354,9 +352,7 @@ sub exec_mkfile($$) return error("A file or directory called '$new_virtual' already exists.",$dir) if(-e $new_physical); file_create($new_physical) or return error("Could not create file '$new_virtual'.",$dir); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=$dir"); - return \$output; + return devedit_reload({command => 'show', file => $dir}); } # exec_mkdir() @@ -379,9 +375,7 @@ sub exec_mkdir($$) return error("A file or directory called '$new_virtual' already exists.",$dir) if(-e $new_physical); mkdir($new_physical) or return error("Could not create directory '$new_virtual'.",$dir); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=$dir"); - return \$output; + return devedit_reload({command => 'show', file => $dir}); } # exec_workwithfile() @@ -412,11 +406,13 @@ sub exec_workwithfile($$) $output .= "

Someone else is currently editing this file. So not all features are available.

\n\n" unless($unused); - # Copying of the file as always allowed + $output .= "
\n\n"; - $output .= < + # Copying of the file is always allowed - but we need read access + if(-r $physical) + { + $output .= <Copy
@@ -428,6 +424,7 @@ sub exec_workwithfile($$)
END + } if($unused) { @@ -498,6 +495,7 @@ sub exec_copy($$) $new_virtual = encode_entities($new_virtual); return error("This editor is not able to copy directories.") if(-d $physical); + return error("You have not enough permissions to copy this file.") unless(-r $physical); if(-e $new_physical) { @@ -505,9 +503,7 @@ sub exec_copy($$) } copy($physical,$new_physical) or return error("Could not copy '$virtual' to '$new_virtual'",upper_path($virtual)); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=$dir"); - return \$output; + return devedit_reload({command => 'show', file => $dir}); } # exec_rename() @@ -537,9 +533,7 @@ sub exec_rename($$) } rename($physical,$new_physical) or return error("Could not move/rename '".encode_entities($virtual)."' to '$new_virtual'.",upper_path($virtual)); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=$dir"); - return \$output; + return devedit_reload({command => 'show', file => $dir}); } # exec_remove() @@ -557,13 +551,11 @@ sub exec_remove($$) my $physical = $data->{'physical'}; my $virtual = $data->{'virtual'}; - return error("Deleting directories is currently unsupported.") if(-d $physical); + return error("Deleting directories is currently unsupported.",upper_path($virtual)) if(-d $physical); return error_in_use($virtual) if($data->{'uselist'}->in_use($virtual)); unlink($physical) or return error("Could not delete file '".encode_entities($virtual)."'.",upper_path($virtual)); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=".upper_path($virtual)); - return \$output; + return devedit_reload({command => 'show', file => upper_path($virtual)}); } # exec_unlock() @@ -585,8 +577,7 @@ sub exec_unlock($$) $uselist->remove_file($virtual); $uselist->save; - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=".upper_path($virtual)); - return \$output; + return devedit_reload({command => 'show', file => upper_path($virtual)}); } # it's true, baby ;-)