--- docman.php 2002/07/21 18:15:47 1.1 +++ docman.php 2002/07/25 21:16:08 1.2 @@ -715,8 +715,8 @@ $dir = $dirList[$key]; - $info_url=self_args(array("A" => "A=E", "F" => "F=".urlencode($dir))); - $dir_url=$self."?D=".urlencode($relDir.$dir); + $info_url=self_args(array("A"=>"A=E", "F"=>"F=".urlencode($dir), "D"=>$D)); + $dir_url=$self."?D=".urlencode($relDir."/".$dir); include("$html/Navigate-dirEntry.html"); } // iterate over dirs @@ -939,7 +939,7 @@ ////////////////////////////////////////////////////////////////// -function LogIt($target,$msg) { +function LogIt($target,$msg, $changelog=0) { $dir=dirname($target); if (! file_exists($dir."/.log")) { @@ -952,6 +952,18 @@ "\t$GLOBALS[gblUserName]\t$msg\n"); fclose($log); + if (! $changelog) return; + + global $gblFsRoot; + $log=fopen("$gblFsRoot/.changelog","a+"); + if (substr($target,0,strlen($gblFsRoot)) == $gblFsRoot) + $target=substr($target,strlen($gblFsRoot),strlen($target)-strlen($gblFsRoot)); + $msg=str_replace("\t"," ",$msg); + fputs($log,time()."\t$target\t$GLOBALS[gblUserName]\t$msg\n"); + fclose($log); + + // FIX: implement e-mail notification based on $changelog + // permission } @@ -970,7 +982,7 @@ fputs($note,"$msg\n"); fclose($note); - Logit($target,"added note $msg"); + LogIt($target,"added note $msg"); } @@ -1015,13 +1027,13 @@ $file=basename($target); if (file_exists("$dir/.lock/$file")) { - Logit($target,"attempt to locked allready locked file!"); + LogIt($target,"attempt to locked allready locked file!"); } else { $lock=fopen("$dir/.lock/$file","w"); fputs($lock,"$GLOBALS[gblUserName]\n"); fclose($lock); - Logit($target,"file locked"); + LogIt($target,"file locked"); } } @@ -1048,9 +1060,9 @@ $file=basename($target); if (file_exists($dir."/.lock/$file")) { unlink("$dir/.lock/$file"); - Logit($target,"file unlocked"); + LogIt($target,"file unlocked"); } else { - Logit($target,"attempt to unlocked non-locked file!"); + LogIt($target,"attempt to unlocked non-locked file!"); } } @@ -1120,18 +1132,6 @@ ////////////////////////////////////////////////////////////////// -function ChangeLog($target,$msg) { - - global $gblFsRoot; - $log=fopen("$gblFsRoot/.changelog","a+"); - if (substr($target,0,strlen($gblFsRoot)) == $gblFsRoot) - $target=substr($target,strlen($gblFsRoot),strlen($target)-strlen($gblFsRoot)); - $msg=str_replace("\t"," ",$msg); - fputs($log,time()."\t$target\t$GLOBALS[gblUserName]\t$msg\n"); - fclose($log); - -} - function DisplayChangeLog($day) { global $gblFsRoot; @@ -1581,11 +1581,12 @@ copy($source,$target) ; chmod($target,$gblFilePerms) ; clearstatcache() ; - Logit($target,"uploaded"); if (isset($FILENAME)) { + LogIt($target,"check-in",trperm_r | trperm_w); Unlock($target); + } else { + LogIt($target,"uploaded",trperm_r | trperm_w); } - ChangeLog($target,"updated"); break ; case "SAVE" : @@ -1602,8 +1603,7 @@ fwrite($fh,$FILEDATA) ; fclose($fh) ; clearstatcache() ; - Logit($path,"saved changes"); - ChangeLog($path,"saved changes"); + LogIt($path,"saved changes",trperm_r); break ; case "CREATE" : @@ -1616,6 +1616,8 @@ case "D" : // create a directory if ( ! @mkdir($path,$gblDirPerms) ) Error("Mkdir failed",$relPath) ; // eg. if it exists + else + LogIt($path."/","dir created",trperm_w); clearstatcache() ; break ; case "F" : // create a new file @@ -1628,13 +1630,12 @@ if ($fh) { fputs($fh,"\n"); fclose($fh) ; - LogIt($path,"file created"); + LogIt($path,"file created",trperm_r | trperm_w); } else { Error("Creation of file $relPath failed -- $path"); } $tstr = "$PHP_SELF?A=E&D=".urlencode($relDir)."&F=".urlencode($FN) ; header("Location: " . $tstr) ; - ChangeLog($target,"created"); exit ; } break ; @@ -1657,22 +1658,21 @@ // if ( ! @unlink($path) ) { if ( ! rename($path,"$dir/.del/$file") ) { Error("File delete failed", $tstr . $path) ; - Logit($path,"file delete failed"); + LogIt($path,"file delete failed"); exit ; } else { - Logit($path,"file deleted"); + LogIt($path,"file deleted",trperm_w); MoveTo("$dir/.log/$file","$dir/.del/.log/"); MoveTo("$dir/.note/$file","$dir/.del/.note/"); MoveTo("$dir/.lock/$file","$dir/.del/.lock/"); } - } - else { // delete directory - if ( ! @rrmdir($fsDir) ) { - Error("Rmdir failed", $tstr . $fsDir) ; - } - else { - $relDir = dirname($relDir) ; // move up - } + } else { // delete directory + if ( ! @rrmdir($fsDir) ) { + Error("Rmdir failed", $tstr . $fsDir) ; + } else { + LogIt($path,"dir deleted",trperm_w); + $relDir = dirname($relDir) ; // move up + } } break ; @@ -1682,7 +1682,7 @@ if (substr($FN,0,4) != ".del") break ; $file=substr($FN,4,strlen($FN)-4); - Logit("$fsDir/.del/$file","undeleted"); + LogIt("$fsDir/.del/$file","undeleted",trperm_w); MoveTo("$fsDir/.del/$file","$fsDir/"); MoveTo("$fsDir/.del/.log/$file","$fsDir/.log/"); MoveTo("$fsDir/.del/.note/$file","$fsDir/.note/"); @@ -1693,7 +1693,7 @@ case "RENAME" : if ( $CONFIRM != "on" ) break ; - Logit("$fsDir/$FN","renamed $FN to $NEWNAME"); + LogIt("$fsDir/$FN","renamed $FN to $NEWNAME",trperm_r); safe_rename($fsDir,$FN,$NEWNAME); break ;