/[docman2]/docman.php
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /docman.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by dpavlin, Sun Jul 21 18:15:47 2002 UTC revision 1.3 by dpavlin, Sat Jul 27 14:45:30 2002 UTC
# Line 87  Line 87 
87          $realm="$HTTP_HOST";    // FIX          $realm="$HTTP_HOST";    // FIX
88    
89          $fsDocumentRoot = dirname($HTTP_SERVER_VARS[SCRIPT_FILENAME]);          $fsDocumentRoot = dirname($HTTP_SERVER_VARS[SCRIPT_FILENAME]);
90          if ($fsDocumentRoot == "") Error("Configuration error","Can't get SCRIPT_FILENAME from your web server. Please set <tt>\$fsDocumentRoot</tt> in <tt>\$</tt>");          if ($fsDocumentRoot == "") Error("Configuration error","Can't get SCRIPT_FILENAME from your web server. Please set <tt>\$fsDocumentRoot</tt> in <tt>\$</tt>",1);
91    
92          // globals for later          // globals for later
93          $gblLogin = $PHP_AUTH_USER;          $gblLogin = $PHP_AUTH_USER;
# Line 166  function DetailPage($fsRoot,$relDir,$fn) Line 166  function DetailPage($fsRoot,$relDir,$fn)
166          $file_lock = CheckLock($fsPath);          $file_lock = CheckLock($fsPath);
167    
168          if (!$editable && !$exists)          if (!$editable && !$exists)
169                  Error(_("Creation unsupported for type"),$relPath) ;                  Error("Creation unsupported for type",$relPath) ;
170          if (!exists && !is_writeable($fsDir) )          if (!exists && !is_writeable($fsDir) )
171                  Error(_("Creation denied"),$relDir) ;                  Error("Creation denied",$relDir) ;
172    
173          $text  = _("Use this page to view, modify or ") ;          $text  = _("Use this page to view, modify or ") ;
174          if (is_dir($fsPath)) {          if (is_dir($fsPath)) {
# Line 715  print "$item, "; Line 715  print "$item, ";
715    
716                          $dir = $dirList[$key];                          $dir = $dirList[$key];
717    
718                          $info_url=self_args(array("A" => "A=E", "F" => "F=".urlencode($dir)));                          $info_url=self_args(array("A"=>"A=E", "F"=>"F=".urlencode($dir), "D"=>$D));
719                          $dir_url=$self."?D=".urlencode($relDir.$dir);                          $dir_url=$self."?D=".urlencode($relDir."/".$dir);
720                          include("$html/Navigate-dirEntry.html");                          include("$html/Navigate-dirEntry.html");
721    
722                  }  // iterate over dirs                  }  // iterate over dirs
# Line 930  you must upgrade to an RFC1867-compliant Line 930  you must upgrade to an RFC1867-compliant
930    
931  //////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////
932    
933  function Error($title,$text="") {  // Error with sysadmin flag are reported to error_log or hidden from
934          StartHTML("(".$title.")",$text) ;  // users
935          echo "<P ALIGN=center>Hit your Browser's Back Button.</P>" ;  
936          EndHTML() ;  function Error($title,$text="",$sysadmin=0) {
937            global $gblSeparateAdminMessages,
938                    $gblMailAdminMessages,$realm,
939                    $HTTP_SERVER_VARS;
940            if ($sysadmin) {
941                    if ($gblSeparateAdminMessages) {
942                            $user="Your administrator ";
943                            if ($gblMailAdminMessages) {
944                                    mail($HTTP_SERVER_VARS["SERVER_ADMIN"], "docman $realm error message: $title", strip_tags($text));
945                                    $user.="<tt>".$HTTP_SERVER_VARS["SERVER_ADMIN"]."</tt> ";
946                            }
947                            $user.="has been notified about error" ;
948                            StartHTML("($title)",$user);
949                            echo "<P ALIGN=center>Hit your Browser's Back Button.</P>" ;
950                            EndHTML();
951                            error_log("docman $realm: ".strip_tags($text));
952                    } else {
953                            StartHTML("ADMIN: ".$title,$text) ;
954                            echo "<P ALIGN=center>Hit your Browser's Back Button.</P>" ;
955                            EndHTML();
956                    }
957            } else {
958                    StartHTML("(".$title.")",$text) ;
959                    echo "<P ALIGN=center>Hit your Browser's Back Button.</P>" ;
960                    EndHTML() ;
961            }
962          exit ;          exit ;
963  } // end function Error  } // end function Error
964    
965  //////////////////////////////////////////////////////////////////  function LogIt($target,$msg, $changelog=0) {
   
 function LogIt($target,$msg) {  
966    
967          $dir=dirname($target);          $dir=dirname($target);
968          if (! file_exists($dir."/.log")) {          if (! file_exists($dir."/.log")) {
969                  if (! @mkdir($dir."/.log",0700)) Error("docman installation problem","can't create log directory <tt>$dir/.log</tt>");                  if (! @mkdir($dir."/.log",0700)) Error("docman installation problem","can't create log directory <tt>$dir/.log</tt>",1);
970          }          }
971          $file=basename($target);          $file=basename($target);
972    
# Line 952  function LogIt($target,$msg) { Line 975  function LogIt($target,$msg) {
975                  "\t$GLOBALS[gblUserName]\t$msg\n");                  "\t$GLOBALS[gblUserName]\t$msg\n");
976          fclose($log);          fclose($log);
977    
978            if (! $changelog) return;
979    
980            global $gblFsRoot;
981            $log=fopen("$gblFsRoot/.changelog","a+");
982            if (substr($target,0,strlen($gblFsRoot)) == $gblFsRoot)
983                    $target=substr($target,strlen($gblFsRoot),strlen($target)-strlen($gblFsRoot));
984            $msg=str_replace("\t"," ",$msg);
985            fputs($log,time()."\t$target\t$GLOBALS[gblUserName]\t$msg\n");
986            fclose($log);
987    
988            // FIX: implement e-mail notification based on $changelog
989            // permission
990  }  }
991    
992    
# Line 970  function WriteNote($target,$msg) { Line 1005  function WriteNote($target,$msg) {
1005          fputs($note,"$msg\n");          fputs($note,"$msg\n");
1006          fclose($note);          fclose($note);
1007    
1008          Logit($target,"added note $msg");          LogIt($target,"added note $msg");
1009    
1010  }  }
1011    
# Line 1015  function Lock($target) { Line 1050  function Lock($target) {
1050          $file=basename($target);          $file=basename($target);
1051    
1052          if (file_exists("$dir/.lock/$file")) {          if (file_exists("$dir/.lock/$file")) {
1053                  Logit($target,"attempt to locked allready locked file!");                  LogIt($target,"attempt to locked allready locked file!");
1054          } else {          } else {
1055                  $lock=fopen("$dir/.lock/$file","w");                  $lock=fopen("$dir/.lock/$file","w");
1056                  fputs($lock,"$GLOBALS[gblUserName]\n");                  fputs($lock,"$GLOBALS[gblUserName]\n");
1057                  fclose($lock);                  fclose($lock);
1058    
1059                  Logit($target,"file locked");                  LogIt($target,"file locked");
1060          }          }
1061    
1062  }  }
# Line 1048  function Unlock($target) { Line 1083  function Unlock($target) {
1083          $file=basename($target);          $file=basename($target);
1084          if (file_exists($dir."/.lock/$file")) {          if (file_exists($dir."/.lock/$file")) {
1085                  unlink("$dir/.lock/$file");                  unlink("$dir/.lock/$file");
1086                  Logit($target,"file unlocked");                  LogIt($target,"file unlocked");
1087          } else {          } else {
1088                  Logit($target,"attempt to unlocked non-locked file!");                  LogIt($target,"attempt to unlocked non-locked file!");
1089          }          }
1090    
1091  }  }
# Line 1120  function rrmdir($dir) { Line 1155  function rrmdir($dir) {
1155    
1156  //////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////
1157    
 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);  
   
 }  
   
1158  function DisplayChangeLog($day) {  function DisplayChangeLog($day) {
1159    
1160          global $gblFsRoot;          global $gblFsRoot;
# Line 1267  if (! file_exists($trustee_conf)) { Line 1290  if (! file_exists($trustee_conf)) {
1290          $groups_arr = array();          $groups_arr = array();
1291          $perm_arr = array();          $perm_arr = array();
1292    
         $error=0;  
   
1293          $tr_arr = array();          $tr_arr = array();
1294    
1295          while (! feof($fp_conf)) {          while (! feof($fp_conf)) {
# Line 1336  if (! file_exists($trustee_conf)) { Line 1357  if (! file_exists($trustee_conf)) {
1357  }  }
1358    
1359  if ($error) {  if ($error) {
1360          Error("Trustee error",$error);          Error("Trustee error",$error,1);
1361  } else {  } else {
1362          include("$trustee_php");          include("$trustee_php");
1363  }  }
# Line 1484  print " return: $return<br>\n"; Line 1505  print " return: $return<br>\n";
1505                  exit ;                  exit ;
1506          }          }
1507    
1508            if (!is_dir($gblRepositoryDir)) Error("Repository dir not found","Can't find repository directory <tt>$gblRepositoryDir</tt>. Please fix that in <tt>$realm_config</tt> variable <tt>\$gblRepositoryDir</tt>.",1);
1509    
1510          // trustee (ACL) file configuration          // trustee (ACL) file configuration
1511          $trustee_conf="$gblIncDir/realm/$realm.trustee";          $trustee_conf="$gblIncDir/realm/$realm.trustee";
1512          // compiled version of trustee file          // compiled version of trustee file
# Line 1581  print " return: $return<br>\n"; Line 1604  print " return: $return<br>\n";
1604                  copy($source,$target) ;                  copy($source,$target) ;
1605                  chmod($target,$gblFilePerms) ;                  chmod($target,$gblFilePerms) ;
1606                  clearstatcache() ;                  clearstatcache() ;
                 Logit($target,"uploaded");  
1607                  if (isset($FILENAME)) {                  if (isset($FILENAME)) {
1608                            LogIt($target,"check-in",trperm_r | trperm_w);
1609                          Unlock($target);                          Unlock($target);
1610                    } else {
1611                            LogIt($target,"uploaded",trperm_r | trperm_w);
1612                  }                  }
                 ChangeLog($target,"updated");  
1613                  break ;                  break ;
1614    
1615          case "SAVE" :          case "SAVE" :
# Line 1602  print " return: $return<br>\n"; Line 1626  print " return: $return<br>\n";
1626                  fwrite($fh,$FILEDATA) ;                  fwrite($fh,$FILEDATA) ;
1627                  fclose($fh) ;                  fclose($fh) ;
1628                  clearstatcache() ;                  clearstatcache() ;
1629                  Logit($path,"saved changes");                  LogIt($path,"saved changes",trperm_r);
                 ChangeLog($path,"saved changes");  
1630                  break ;                  break ;
1631    
1632          case "CREATE" :          case "CREATE" :
# Line 1616  print " return: $return<br>\n"; Line 1639  print " return: $return<br>\n";
1639                  case "D" :  // create a directory                  case "D" :  // create a directory
1640                          if ( ! @mkdir($path,$gblDirPerms) )                          if ( ! @mkdir($path,$gblDirPerms) )
1641                                  Error("Mkdir failed",$relPath) ; // eg. if it exists                                  Error("Mkdir failed",$relPath) ; // eg. if it exists
1642                            else
1643                                    LogIt($path."/","dir created",trperm_w);
1644                          clearstatcache() ;                          clearstatcache() ;
1645                          break ;                          break ;
1646                  case "F" :  // create a new file                  case "F" :  // create a new file
# Line 1628  print " return: $return<br>\n"; Line 1653  print " return: $return<br>\n";
1653                          if ($fh) {                          if ($fh) {
1654                                  fputs($fh,"\n");                                  fputs($fh,"\n");
1655                                  fclose($fh) ;                                  fclose($fh) ;
1656                                  LogIt($path,"file created");                                  LogIt($path,"file created",trperm_r | trperm_w);
1657                          } else {                          } else {
1658                                  Error("Creation of file $relPath failed -- $path");                                  Error("Creation of file $relPath failed -- $path");
1659                          }                          }
1660                          $tstr = "$PHP_SELF?A=E&D=".urlencode($relDir)."&F=".urlencode($FN) ;                          $tstr = "$PHP_SELF?A=E&D=".urlencode($relDir)."&F=".urlencode($FN) ;
1661                          header("Location: " . $tstr) ;                          header("Location: " . $tstr) ;
                         ChangeLog($target,"created");  
1662                          exit ;                          exit ;
1663                  }                  }
1664                  break ;                  break ;
# Line 1657  print " return: $return<br>\n"; Line 1681  print " return: $return<br>\n";
1681  //                      if ( ! @unlink($path) ) {  //                      if ( ! @unlink($path) ) {
1682                          if ( ! rename($path,"$dir/.del/$file") ) {                          if ( ! rename($path,"$dir/.del/$file") ) {
1683                                  Error("File delete failed", $tstr . $path) ;                                  Error("File delete failed", $tstr . $path) ;
1684                                  Logit($path,"file delete failed");                                  LogIt($path,"file delete failed");
1685                                  exit ;                                  exit ;
1686                          } else {                          } else {
1687                                  Logit($path,"file deleted");                                  LogIt($path,"file deleted",trperm_w);
1688                                  MoveTo("$dir/.log/$file","$dir/.del/.log/");                                  MoveTo("$dir/.log/$file","$dir/.del/.log/");
1689                                  MoveTo("$dir/.note/$file","$dir/.del/.note/");                                  MoveTo("$dir/.note/$file","$dir/.del/.note/");
1690                                  MoveTo("$dir/.lock/$file","$dir/.del/.lock/");                                  MoveTo("$dir/.lock/$file","$dir/.del/.lock/");
1691                          }                          }
1692                  }                  } else {  // delete directory
1693                  else {  // delete directory                          if ( ! @rrmdir($fsDir) ) {
1694                    if ( ! @rrmdir($fsDir) ) {                                  Error("Rmdir failed", $tstr . $fsDir) ;
1695                      Error("Rmdir failed", $tstr . $fsDir) ;                          } else {
1696                    }                                  LogIt($path,"dir deleted",trperm_w);
1697                    else {                                  $relDir = dirname($relDir) ;  // move up
1698                      $relDir = dirname($relDir) ;  // move up                          }
                   }  
1699                  }                  }
1700                  break ;                  break ;
1701    
# Line 1682  print " return: $return<br>\n"; Line 1705  print " return: $return<br>\n";
1705                  if (substr($FN,0,4) != ".del") break ;                  if (substr($FN,0,4) != ".del") break ;
1706                  $file=substr($FN,4,strlen($FN)-4);                  $file=substr($FN,4,strlen($FN)-4);
1707    
1708                  Logit("$fsDir/.del/$file","undeleted");                  LogIt("$fsDir/.del/$file","undeleted",trperm_w);
1709                  MoveTo("$fsDir/.del/$file","$fsDir/");                  MoveTo("$fsDir/.del/$file","$fsDir/");
1710                  MoveTo("$fsDir/.del/.log/$file","$fsDir/.log/");                  MoveTo("$fsDir/.del/.log/$file","$fsDir/.log/");
1711                  MoveTo("$fsDir/.del/.note/$file","$fsDir/.note/");                  MoveTo("$fsDir/.del/.note/$file","$fsDir/.note/");
# Line 1693  print " return: $return<br>\n"; Line 1716  print " return: $return<br>\n";
1716          case "RENAME" :            case "RENAME" :  
1717                  if ( $CONFIRM != "on" ) break ;                  if ( $CONFIRM != "on" ) break ;
1718    
1719                  Logit("$fsDir/$FN","renamed $FN to $NEWNAME");                  LogIt("$fsDir/$FN","renamed $FN to $NEWNAME",trperm_r);
1720                  safe_rename($fsDir,$FN,$NEWNAME);                  safe_rename($fsDir,$FN,$NEWNAME);
1721                  break ;                  break ;
1722    
# Line 1803  print " return: $return<br>\n"; Line 1826  print " return: $return<br>\n";
1826          Navigate($gblFsRoot,$relDir) ;            Navigate($gblFsRoot,$relDir) ;  
1827          exit ;          exit ;
1828    
1829          Error("Whooah!","By cartesian logic, this never happens") ;          Error("Whooah!","By cartesian logic, this never happens",1) ;
1830  ?>  ?>

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.26