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