File: 0.02.56a/server/web/admin.php (View as Code)

1: 2: /* ------------------------------------------------------------- 3: This file is part of FreeNATS 4: 5: FreeNATS is (C) Copyright 2008 PurplePixie Systems 6: 7: FreeNATS is free software: you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation, either version 3 of the License, or 10: (at your option) any later version. 11: 12: FreeNATS is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with FreeNATS. If not, see www.gnu.org/licenses 19: 20: For more information see www.purplepixie.org/freenats 21: -------------------------------------------------------------- */ 22: 23: ob_start(); 24: require("include.php"); 25: $NATS->Start(); 26: if (!$NATS_Session->Check($NATS->DB)) 27: { 28: header("Location: ./?login_msg=Invalid+Or+Expired+Session"); 29: exit(); 30: } 31: if ($NATS_Session->userlevel<9) UL_Error("Action Node"); 32: 33: if (isset($_REQUEST['action'])) 34: { 35: switch($_REQUEST['action']) 36: { 37: case "save_user": 38: $q="UPDATE fnuser SET realname=\"".ss($_REQUEST['realname'])."\",userlevel=".ss($_REQUEST['userlevel']); 39: if ((isset($_REQUEST['pword']))&&($_REQUEST['pword']!="_NOTTHIS_")) $q.=",password=MD5(\"".ss($_REQUEST['pword'])."\")"; 40: $q.=" WHERE username=\"".ss($_REQUEST['username'])."\""; 41: $NATS->DB->Query($q); 42: if ($NATS->DB->Affected_Rows()<=0) $amsg="Save User Failed or Nothing Changed"; 43: else $amsg="Save User ".$_REQUEST['username']." Succeeded"; 44: break; 45: 46: case "create_user": 47: $q="INSERT INTO fnuser(username,password,realname,userlevel) VALUES(\"".ss($_REQUEST['username'])."\","; 48: $q.="MD5(\"".ss($_REQUEST['pword'])."\"),\"".ss($_REQUEST['realname'])."\",".ss($_REQUEST['userlevel']).")"; 49: $NATS->DB->Query($q); 50: //echo $q; 51: if ($NATS->DB->Affected_Rows()<=0) $amsg="Create User Failed"; 52: else $amsg="User ".$_REQUEST['username']." Created"; 53: break; 54: 55: case "delete_user": 56: /* - disabled for 0.02.44 to allow duplicate deletion 57: if ($_REQUEST['username']=="admin") 58: { 59: $amsg="Can't delete the admin user"; 60: break; 61: } 62: */ 63: if (!isset($_REQUEST['confirmed'])) 64: { 65: $back=urlencode("admin.php?action=delete_user&mode=users&username=".$_REQUEST['username']."&confirmed=1"); 66: $url="confirm.php?action=Delete+User+".$_REQUEST['username']."&back=".$back; 67: header("Location: ".$url); 68: exit(); 69: } 70: $q="DELETE FROM fnuser WHERE username=\"".ss($_REQUEST['username'])."\""; 71: $NATS->DB->Query($q); 72: $amsg="User ".$_REQUEST['username']." Deleted"; 73: break; 74: 75: case "var_save": 76: if ($_REQUEST['new_var']=="") // delete 77: { 78: $q="DELETE FROM fnconfig WHERE fnc_var=\"".ss($_REQUEST['orig_var'])."\""; 79: } 80: else // update 81: { 82: $q="UPDATE fnconfig SET fnc_var=\"".ss($_REQUEST['new_var'])."\",fnc_val=\"".ss($_REQUEST['new_val'])."\" "; 83: $q.="WHERE fnc_var=\"".ss($_REQUEST['orig_var'])."\""; 84: } 85: $NATS->DB->Query($q); 86: if ($NATS->DB->Affected_Rows()<=0) $amsg="Update/Delete Variable Failed"; 87: else $amsg="Updated/Deleted Variable"; 88: break; 89: case "var_new": 90: $q="INSERT INTO fnconfig(fnc_var,fnc_val) VALUES(\"".ss($_REQUEST['new_var'])."\",\"".ss($_REQUEST['new_val'])."\")"; 91: //echo $q; 92: $NATS->DB->Query($q); 93: if ($NATS->DB->Affected_Rows()<=0) $amsg="Create Variable Failed"; 94: else $amsg="Created Variable"; 95: break; 96: 97: case "save_aa": 98: $q="UPDATE fnalertaction SET "; 99: $q.="atype=\"".ss($_REQUEST['atype'])."\","; 100: $q.="ctrlimit=".ss($_REQUEST['ctrlimit']).","; 101: $q.="ctrtoday=".ss($_REQUEST['ctrtoday']).","; 102: $q.="aname=\"".ss($_REQUEST['aname'])."\","; 103: if (isset($_REQUEST['efrom'])) $q.="efrom=\"".ss($_REQUEST['efrom'])."\","; 104: $q.="etolist=\"".ss($_REQUEST['etolist'])."\","; 105: if (isset($_REQUEST['esubject'])) $q.="esubject=".ss($_REQUEST['esubject']).","; 106: $q.="etype=".ss($_REQUEST['etype']); 107: if (isset($_REQUEST['awarnings'])) $q.=",awarnings=".ss($_REQUEST['awarnings']); 108: else $q.=",awarnings=0"; 109: if (isset($_REQUEST['adecrease'])) $q.=",adecrease=".ss($_REQUEST['adecrease']); 110: else $q.=",adecrease=0"; 111: $q.=" WHERE aaid=".ss($_REQUEST['aaid']); 112: //echo $q; 113: $NATS->DB->Query($q); 114: if ($NATS->DB->Affected_Rows()<=0) $amsg="Action Update Failed or Nothing Changed"; 115: else $amsg="Action Updated"; 116: break; 117: 118: case "action_test": 119: $q="SELECT mdata FROM fnalertaction WHERE aaid=".ss($_REQUEST['aaid'])." LIMIT 0,1"; 120: $r=$NATS->DB->Query($q); 121: $row=$NATS->DB->Fetch_Array($r); 122: $oldm=$row['mdata']; 123: $q="UPDATE fnalertaction SET mdata=\"** ACTION TEST **\" WHERE aaid=".ss($_REQUEST['aaid']); 124: $NATS->DB->Query($q); 125: $NATS->ActionFlush(); 126: $q="UPDATE fnalertaction SET mdata=\"".ss($oldm)."\" WHERE aaid=".ss($_REQUEST['aaid']); 127: $NATS->DB->Query($q); 128: $amsg="Alert Action Tested & Flushed"; 129: break; 130: 131: case "action_create": 132: $q="INSERT INTO fnalertaction(atype) VALUES(\"\")"; 133: $NATS->DB->Query($q); 134: $amsg="Created New Alert Action"; 135: break; 136: 137: case "action_delete": 138: if (!isset($_REQUEST['confirmed'])) 139: { 140: $back=urlencode("admin.php?mode=alertactions&aaid_del=".$_REQUEST['aaid_del']."&action=action_delete&confirmed=1"); 141: $url="confirm.php?action=Delete+alert+action&back=".$back; 142: header("Location: ".$url); 143: exit(); 144: } 145: // otherwise confirmed 146: $q="DELETE FROM fnalertaction WHERE aaid=".ss($_REQUEST['aaid_del']); 147: $NATS->DB->Query($q); 148: if ($NATS->DB->Affected_Rows()>0) $amsg="Alert Action Deleted"; 149: else $amsg="Alert Action Delete Failed"; 150: $q="DELETE FROM fnnalink WHERE aaid=".ss($_REQUEST['aaid_del']); 151: $NATS->DB->Query($q); 152: break; 153: 154: } 155: } 156: 157: ob_end_flush(); 158: Screen_Header("Administration Interface",1); 159: 160: if (isset($_REQUEST['mode'])) $mode=$_REQUEST['mode']; 161: else $mode=""; 162: 163: if (isset($_REQUEST['message'])) echo "
".$_REQUEST['message']."
";
164: if (isset($amsg)) echo "
".$amsg."
";
165: 166: echo "
";
167: if (isset($_REQUEST['updatecheck'])) 168: { 169: // check for updates 170: $dq="?CheckVersion=".$NATS->Version."&JSMode=1"; 171: $dl="http://www.purplepixie.org/freenats/download.php"; 172: $du=$dl.$dq; 173: /* old method 174: $cp=@fopen($du,"r"); 175: if ($cp>0) 176: { 177: $cs=@fgets($cp,128); 178: @fclose($cp); 179: if ($cs=="0") echo "System Up to Date
";
180: else echo "Update Available: ".$cs."
";
181: } 182: else echo "Error Checking for Updates
";
183: */ 184: echo "Checking Version: "; 185: echo "\n"; 186: echo "

";
187: } 188: else if ($mode=="") 189: { 190: echo "Check for FreeNATS Updates

";
191: } 192: 193: function tul($l) 194: { 195: if ($l>9) return "Administrator"; 196: if ($l>4) return "Power User"; 197: if ($l>0) return "Normal User"; 198: return "Disabled"; 199: } 200: 201: function aat_etype($type) 202: { 203: switch ($type) 204: { 205: case 0: return "Short"; 206: case 1: return "Long"; 207: default: return "Unknown"; 208: } 209: } 210: 211: function aat_esub($type) 212: { 213: switch ($type) 214: { 215: case 0: return "Blank"; 216: case 1: return "Short"; 217: case 2: return "Long"; 218: default: return "Unknown"; 219: } 220: } 221: 222: function aat_atype($type) 223: { 224: switch($type) 225: { 226: case "": case "Disabled": return "Disabled"; 227: case "email": return "EMail"; 228: case "url": return "URL"; 229: default: return "Unknown"; 230: } 231: } 232: 233: if ($mode=="users") 234: { 235: echo "Users

";
236: 237: 238: 239: 240: $q="SELECT username,realname,userlevel FROM fnuser"; 241: $r=$NATS->DB->Query($q); 242: echo ""; 243: echo ""; 244: echo ""; 245: while ($row=$NATS->DB->Fetch_Array($r)) 246: { 247: echo "
";
248: echo ""; 249: echo ""; 250: echo ""; 251: echo ""; 252: echo ""; 253: echo ""; 261: echo ""; 262: echo ""; 263: echo ""; 264: echo ""; 265: } 266: echo "
";
267: echo ""; 268: echo ""; 269: echo ""; 270: echo ""; 271: echo ""; 277: echo ""; 278: echo ""; 279: echo ""; 280: echo "
Username Real NameUser LevelPasswordOptions
".$row['username'].""; 260: echo " Delete

";
281: echo "
";
282: $NATS->DB->Free($r); 283: } 284: else if ($mode=="testsessions") 285: { 286: echo "Test Sessions

";
287: $q="SELECT * FROM fntestrun ORDER BY trid DESC"; 288: if (!isset($_REQUEST['ShowAllSessions'])) $q.=" LIMIT 0,5"; 289: $r=$NATS->DB->Query($q); 290: echo ""; 291: while ($row=$NATS->DB->Fetch_Array($r)) 292: { 293: echo ""; 294: echo ""; 299: } 300: echo "
run/".$row['trid']."".nicedt($row['startx'])." - "; 295: if ($row['finishx']>0) echo nicedt($row['finishx']); 296: else echo "Still Running"; 297: echo " (System Logs)"; 298: echo "
";
301: $NATS->DB->Free($r); 302: echo "
";
303: if (!isset($_REQUEST['ShowAllSessions'])) echo "Show All Testing Sessions

";
304: echo "
";
305: } 306: else if ($mode=="alertactions") 307: { 308: echo "Alert Actions

";
309: 310: if (isset($_REQUEST['aaid'])) 311: { // view/edit aaid 312: $q="SELECT * FROM fnalertaction WHERE aaid=".ss($_REQUEST['aaid']); 313: $r=$NATS->DB->Query($q); 314: if (!$row=$NATS->DB->Fetch_Array($r)) 315: { 316: echo "Error Fetching AAID

";
317: Screen_Footer(); 318: exit(); 319: } 320: echo ""; 321: echo "
";
322: echo ""; 323: echo ""; 324: echo ""; 325: echo ""; 326: 327: echo ""; 328: echo ""; 331: 332: echo ""; 340: 341: echo ""; 342: if ($row['awarnings']==1) $s=" checked"; 343: else $s=""; 344: echo ""; 345: 346: echo ""; 347: if ($row['adecrease']==1) $s=" checked"; 348: else $s=""; 349: echo ""; 350: 351: echo ""; 352: echo ""; 356: 357: echo ""; 358: echo ""; 366: 367: if ($row['atype']!="url") 368: { 369: 370: echo ""; 371: echo ""; 374: 375: echo ""; 383: 384: } 385: 386: echo ""; 393: 394: echo ""; 397: 398: echo ""; 402: 403: echo "
ID : action/".$_REQUEST['aaid']."
Action Name : "; 329: echo ""; 330: echo "
Type : "; 333: echo ""; 339: echo "
Warnings : ".hlink("AAction:Warnings")."
Decreases : ".hlink("AAction:Decreases")."
Action Limit : "; 353: echo " "; 354: echo hlink("AAction:Limit"); 355: echo "
Action Counter : "; 359: echo " "; 360: echo hlink("AAction:Counter"); 361: echo " (for "; 362: if ($row['ctrdate']=="") echo "unknown"; 363: else echo substr($row['ctrdate'],6,2)."/".substr($row['ctrdate'],4,2)."/".substr($row['ctrdate'],0,4); 364: echo ")"; 365: echo "
Email From : "; 372: echo ""; 373: echo "
Email Subject : "; 376: echo ""; 382: echo "
Msg Type : "; 387: echo ""; 392: echo "
Email To
or URL :
"; 395: echo ""; 396: echo "
  Cancel Update | "; 399: echo "Test Action | "; 400: echo "Delete Action"; 401: echo "


";
404: $NATS->DB->Free($r); 405: } 406: 407: $q="SELECT aaid,atype,aname FROM fnalertaction"; 408: $r=$NATS->DB->Query($q); 409: while ($row=$NATS->DB->Fetch_Array($r)) 410: { 411: echo "action/".$row['aaid']." : ".$row['aname']." - "; 412: echo aat_atype($row['atype']); 413: echo "
";
414: } 415: 416: echo "
Create New Alert Action
";
417: echo "

";
418: } 419: else if ($mode=="logs") 420: { 421: echo "System Logs

";
422: echo "System Event Log

";
423: 424: echo "

";
425: } 426: else if ($mode=="variables") 427: { 428: echo "Variables ".hlink("Variable")."

";
429: $q="SELECT * FROM fnconfig ORDER BY fnc_var ASC"; 430: $r=$NATS->DB->Query($q); 431: echo ""; 432: while ($row=$NATS->DB->Fetch_Array($r)) 433: { 434: echo "
";
435: echo ""; 436: echo ""; 437: echo ""; 438: echo ""; 439: echo ""; 441: echo ""; 442: echo ""; 443: echo ""; 446: echo ""; 447: echo ""; 448: } 449: echo "
";
450: echo ""; 451: echo ""; 452: echo ""; 453: echo ""; 454: echo ""; 455: echo ""; 456: echo ""; 457: echo ""; 458: echo "
"; 440: echo "= "; 444: echo hlink("Var:".$row['fnc_var']); 445: echo "
=
";
459: } 460: else // catch-all 461: { 462: echo "User Administration

";
463: echo "System Event Log

";
464: echo "Alert Actions

";
465: echo "System Variables

";
466: echo "Test Sessions

";
467: } 468: 469: if ($mode!="") echo "Back to Main Admin Menu

";
470: ?> 471: 472: 473: 474: Screen_Footer(); 475: ?> 476: