home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Freeware / Programare / groupoffice-com-2.01 / modules / wiki / action / admin.php next >
PHP Script  |  2004-03-08  |  4KB  |  142 lines

  1. <?php
  2. // $Id: admin.php,v 1.1 2004/01/12 22:14:04 comsubvie Exp $
  3.  
  4. // Don't freak out lib/init.php.
  5. $document = $categories = $comment = $page = '';
  6.  
  7. require('lib/init.php');
  8. require('parse/html.php');
  9. require('parse/transforms.php');
  10. require('template/admin.php');
  11.  
  12. if($AdminEnabled != 1)
  13.   { die(ACTION_ErrorAdminDisabled); }
  14.  
  15. // Harvest script parameters.
  16.  
  17. $REMOTE_ADDR = isset($HTTP_SERVER_VARS['REMOTE_ADDR'])
  18.                ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : '';
  19.  
  20. if(isset($HTTP_GET_VARS['locking']))
  21.   { $locking = $HTTP_GET_VARS['locking']; }
  22. if(isset($HTTP_GET_VARS['blocking']))
  23.   { $blocking = $HTTP_GET_VARS['blocking']; }
  24. if(!isset($locking))
  25. {
  26.   $locking  = isset($HTTP_POST_VARS['locking'])
  27.               ? $HTTP_POST_VARS['locking'] : '';
  28. }
  29. if(!isset($blocking))
  30. {
  31.   $blocking = isset($HTTP_POST_VARS['blocking'])
  32.               ? $HTTP_POST_VARS['blocking'] : '';
  33. }
  34.  
  35. $Block   = isset($HTTP_POST_VARS['Block'])
  36.            ? $HTTP_POST_VARS['Block'] : '';
  37. $Unblock = isset($HTTP_POST_VARS['Unblock'])
  38.            ? $HTTP_POST_VARS['Unblock'] : '';
  39. $Save    = isset($HTTP_POST_VARS['Save'])
  40.            ? $HTTP_POST_VARS['Save'] : '';
  41. $address = isset($HTTP_POST_VARS['address'])
  42.            ? $HTTP_POST_VARS['address'] : '';
  43.  
  44. $count = isset($HTTP_POST_VARS['count']) ? $HTTP_POST_VARS['count'] : 0;
  45.  
  46. if($locking && $count > 0)
  47. {
  48.   for($i = 1; $i <= $count; $i++)
  49.   {
  50.     $var = 'name' + $i;
  51.     $$var = isset($HTTP_POST_VARS[$var]) ? $HTTP_POST_VARS[$var] : '';
  52.     $var = 'lock' + $i;
  53.     $$var = isset($HTTP_POST_VARS[$var]) ? $HTTP_POST_VARS[$var] : '';
  54.   }
  55. }
  56.  
  57. if($locking)                            // Locking/unlocking pages.
  58. {
  59.   if(empty($Save))                      // Not saving results; display form.
  60.   {
  61.     $html = html_lock_start();
  62.     $pagelist = $pagestore->allpages();
  63.     foreach($pagelist as $page)
  64.       { $html = $html . html_lock_page($page[1], $page[6]); }
  65.     template_admin(array('html' => $html . html_lock_end(count($pagelist))));
  66.   }
  67.   else                                  // Lock/unlock pages at admin's request.
  68.   {
  69.     $pagestore->lock();                 // Exclusive access to database.
  70.     for($i = 1; $i <= $count; $i++)
  71.     {
  72.       $page = urldecode($HTTP_POST_VARS['name' . $i]);
  73.       if(isset($HTTP_POST_VARS['lock' . $i]))
  74.         { $lock = $HTTP_POST_VARS['lock' . $i]; }
  75.       else
  76.         { $lock = 0; }
  77.       $pg = $pagestore->page($page);
  78.       $pg->read();
  79.       $pg->version++;
  80.       $pg->hostname = gethostbyaddr($REMOTE_ADDR);
  81.       $pg->username = $UserName;
  82.       $pg->comment = '';
  83.       $pg->text = str_replace('\\', '\\\\', $pg->text);
  84.       $pg->text = str_replace('\'', '\\\'', $pg->text);
  85.       if($pg->exists && $pg->mutable && $lock)
  86.       {
  87.         $pg->mutable = 0;
  88.         $pg->write();
  89.       }
  90.       else if($pg->exists && !$pg->mutable && !$lock)
  91.       {
  92.         $pg->mutable = 1;
  93.         $pg->write();
  94.       }
  95.     }
  96.  
  97.     $pagestore->unlock();
  98.     header('Location: ' . $AdminScript);
  99.   }
  100. }
  101. else if($blocking)                      // Blocking/unblocking IP addrs.
  102. {
  103.   if(empty($Block) && empty($Unblock))  // Not saving results; display form.
  104.   {
  105.     $html = '';
  106.     if($RatePeriod == 0)
  107.     {
  108.       $html = $html . html_bold_start() .
  109.               ACTION_RateControlIpBlocking .
  110.               html_bold_end() . html_newline();
  111.     }
  112.  
  113.     $html = $html . html_rate_start();
  114.     $blocklist = rateBlockList($pagestore->dbh);
  115.     foreach($blocklist as $block)
  116.       { $html = $html . html_rate_entry($block); }
  117.     $html = $html . html_rate_end();
  118.  
  119.     template_admin(array('html' => $html));
  120.   }
  121.   else                                  // Block/unblock an address group.
  122.   {
  123.     if(!empty($Block))
  124.       { rateBlockAdd($pagestore->dbh, $address); }
  125.     else if(!empty($Unblock))
  126.       { rateBlockRemove($pagestore->dbh, $address); }
  127.  
  128.     header('Location: ' . $AdminScript);
  129.   }
  130. }
  131. else                                    // Display main menu for admin.
  132. {
  133.   template_admin(array('html' => html_url($AdminScript . '?locking=1',
  134.                                           ACTION_LockUnlockPages) .
  135.                                  html_newline() .
  136.                                  html_url($AdminScript . '?blocking=1',
  137.                                           ACTION_BLockUnblockHosts) .
  138.                                  html_newline()));
  139. }
  140.  
  141. ?>
  142.