188 |
$title = "("._("Detail Page").")" ; |
$title = "("._("Detail Page").")" ; |
189 |
StartHTML($title, $text) ; |
StartHTML($title, $text) ; |
190 |
|
|
191 |
echo "<H3>" . $relDir . "/" . $fn . "</H3>" ; |
print "<H3>".$relDir.$fn."</H3>"; |
192 |
|
|
193 |
if ($exists) { // get file info |
if ($exists) { // get file info |
194 |
$fsize = filesize($fsPath) ; |
$fsize = filesize($fsPath) ; |
195 |
$fmodified = date("$gblDateFmt $gblTimeFmt", filemtime($fsPath)) ; |
$fmodified = date("$gblDateFmt $gblTimeFmt", filemtime($fsPath)) ; |
633 |
if ( HTTP_GET_VAR("show_deleted") == 1 && ($dir = @opendir("$fsDir/.del")) ) { |
if ( HTTP_GET_VAR("show_deleted") == 1 && ($dir = @opendir("$fsDir/.del")) ) { |
634 |
while ($item = readdir($dir)) { |
while ($item = readdir($dir)) { |
635 |
if ( substr($item,0,1) == "." || strstr($hide_items,",$item,") || !check_perm($relDir.$item,trperm_w) ) continue ; |
if ( substr($item,0,1) == "." || strstr($hide_items,",$item,") || !check_perm($relDir.$item,trperm_w) ) continue ; |
636 |
$fileList[$item] = ".del/$item" ; |
if (is_file($fsDir.".del/$item")) { |
637 |
$fileDate[$item] = filemtime($fsDir.".del/$path") ; |
$fileList[$item] = ".del/$item" ; |
638 |
$fileSize[$item] = filesize($fsDir.".del/$path") ; |
$fileDate[$item] = filemtime($fsDir.".del/$item") ; |
639 |
$fileNote[$item] = ReadNote($fsDir.".del/$item"); |
$fileSize[$item] = filesize($fsDir.".del/$item") ; |
640 |
|
$fileNote[$item] = ReadNote($fsDir.".del/$item"); |
641 |
|
} else { |
642 |
|
$dirList[$item] = ".del/$item" ; |
643 |
|
$dirNote[$item] = ReadNote($fsDir.".del/$item"); |
644 |
|
} |
645 |
} |
} |
646 |
closedir($dir) ; |
closedir($dir) ; |
647 |
} |
} |
739 |
$dir = $dirList[$key]; |
$dir = $dirList[$key]; |
740 |
|
|
741 |
$info_url=self_args(array("A"=>"A=E", "F"=>"F=".urlencode($dir), "D"=>$D)); |
$info_url=self_args(array("A"=>"A=E", "F"=>"F=".urlencode($dir), "D"=>$D)); |
742 |
|
if (substr($dir,0,5) == ".del/") { |
743 |
|
$dir = substr($dir,5,strlen($dir)-5); |
744 |
|
$deleted = " <a href=\"$info_url#undelete\"><SPAN CLASS=deleted TITLE=\"deleted\">deleted</span></a>"; |
745 |
|
} else { |
746 |
|
$deleted = ""; |
747 |
|
} |
748 |
|
|
749 |
$dir_url=$self."?D=".urlencode(chopsl($relDir)."/".$dir); |
$dir_url=$self."?D=".urlencode(chopsl($relDir)."/".$dir); |
750 |
include("$html/Navigate-dirEntry.html"); |
include("$html/Navigate-dirEntry.html"); |
751 |
|
|
824 |
if (substr($file,0,5) != ".del/") { |
if (substr($file,0,5) != ".del/") { |
825 |
$file_url_html .= $file . "</A>" . $a ; |
$file_url_html .= $file . "</A>" . $a ; |
826 |
} else { |
} else { |
827 |
$file_url_html .= substr($file,5,strlen($file)-5) . "</a> <SPAN CLASS=RED TITLE=\"deleted\"> <a href=\"$info_url#undelete\">deleted</a> </span>"; |
$file_url_html .= substr($file,5,strlen($file)-5) . "</a> <a href=\"$info_url#undelete\"><SPAN CLASS=deleted TITLE=\"deleted\">deleted</span></a>"; |
828 |
} |
} |
829 |
|
|
830 |
$note_html="<a href=\"$info_url#note\">".$gblIcon("note")."</a>".ReadNote($path); |
$note_html="<a href=\"$info_url#note\">".$gblIcon("note")."</a>".ReadNote($path); |
1549 |
|
|
1550 |
function check_filename($file) { |
function check_filename($file) { |
1551 |
if (strstr($file,"..")) Error("Security violation","No parent dir <tt>..</tt> allowed in file name <tt>$file</tt>",1); |
if (strstr($file,"..")) Error("Security violation","No parent dir <tt>..</tt> allowed in file name <tt>$file</tt>",1); |
1552 |
|
// remove deleted directory (for undelete to work) |
1553 |
|
$file = str_replace(".del/","",$file); |
1554 |
if (strstr($file,"/")) Error("Security violation","No slashes <tt>/</tt> allowed in file name <tt>$file</tt>",1); |
if (strstr($file,"/")) Error("Security violation","No slashes <tt>/</tt> allowed in file name <tt>$file</tt>",1); |
1555 |
} |
} |
1556 |
|
|
1839 |
break ; |
break ; |
1840 |
|
|
1841 |
case "DELETE" : |
case "DELETE" : |
1842 |
if ( $CONFIRM != "on" ) break ; |
if ( $CONFIRM != "on" ) break; |
1843 |
|
|
1844 |
$tstr = "Attempt to delete non-existing object or " ; |
if ( isset($FN) && $FN != "") { |
1845 |
$tstr .= "insufficient privileges: " ; |
$path=$fsDir."/".$FN; |
1846 |
|
|
1847 |
|
$what = "file"; |
1848 |
|
if (is_dir($path)) { |
1849 |
|
$what = "dir"; |
1850 |
|
} |
1851 |
|
|
1852 |
|
if (! check_perm($relDir."/".$FN, trperm_w)) |
1853 |
|
Error("Access denied","User <tt>$gblLogin</tt> tried to erase $what <tt>$relDir/$FN</tt> without valid trustee.",1); |
1854 |
|
|
1855 |
|
$tstr = "Attempt to delete non-existing object or " ; |
1856 |
|
$tstr .= "insufficient privileges: " ; |
1857 |
|
|
|
if ( $FN != "") { // delete file |
|
|
$path = $fsDir . "/" . $FN ; |
|
|
|
|
1858 |
$dir=dirname($path); |
$dir=dirname($path); |
1859 |
$file=basename($path); |
$file=basename($path); |
1860 |
if (! file_exists("$dir/.del")) { |
if (! file_exists("$dir/.del")) { |
1862 |
} |
} |
1863 |
|
|
1864 |
// if ( ! @unlink($path) ) { |
// if ( ! @unlink($path) ) { |
1865 |
if ( ! rename($path,"$dir/.del/$file") ) { |
if ( ! @rename($path,"$dir/.del/$file") ) { |
1866 |
LogIt($path,"file delete failed"); |
LogIt($path,"$what delete failed"); |
1867 |
Error("File delete failed", $tstr . $path) ; |
Error("Can't delete $what",$tstr.$relDir."/".$FN) ; |
1868 |
} else { |
} else { |
1869 |
LogIt($path,"file deleted",trperm_w); |
LogIt($path,"$what deleted",trperm_w); |
1870 |
MoveTo("$dir/.log/$file","$dir/.del/.log/"); |
MoveTo("$dir/.log/$file","$dir/.del/.log/"); |
1871 |
MoveTo("$dir/.note/$file","$dir/.del/.note/"); |
MoveTo("$dir/.note/$file","$dir/.del/.note/"); |
1872 |
MoveTo("$dir/.lock/$file","$dir/.del/.lock/"); |
MoveTo("$dir/.lock/$file","$dir/.del/.lock/"); |
1873 |
} |
} |
1874 |
} else { // delete directory |
} else { |
1875 |
if ( ! @rrmdir($fsDir) ) { |
Error("Rmdir failed", $tstr . $fsDir) ; |
|
Error("Rmdir failed", $tstr . $fsDir) ; |
|
|
} else { |
|
|
LogIt($path,"dir deleted",trperm_w); |
|
|
$relDir = dirname($relDir) ; // move up |
|
|
} |
|
1876 |
} |
} |
1877 |
break ; |
break ; |
1878 |
|
|