File: 0.02.25a/server/web/node.edit.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<5) UL_Error("Edit Node"); 32: ob_end_flush(); 33: Screen_Header("Node Editor",1); 34: ?> 35:
36: 37: if (isset($_REQUEST['action'])) 38: { 39: if ($_REQUEST['action']=="save_edit") 40: { 41: if (isset($_REQUEST['nodeenabled'])) $nodeenabled=1; 42: else $nodeenabled=0; 43: if (isset($_REQUEST['pingtest'])) $pingtest=1; 44: else $pingtest=0; 45: if (isset($_REQUEST['pingfatal'])) $pingfatal=1; 46: else $pingfatal=0; 47: if (isset($_REQUEST['nodealert'])) $nodealert=1; 48: else $nodealert=0; 49: 50: $q="UPDATE fnnode SET "; 51: $q.="nodename=\"".ss($_REQUEST['nodename'])."\","; 52: $q.="nodedesc=\"".ss($_REQUEST['nodedesc'])."\","; 53: $q.="nodeicon=\"".ss($_REQUEST['nodeicon'])."\","; 54: $q.="nodealert=".ss($nodealert).","; 55: $q.="nodeenabled=".ss($nodeenabled).",pingtest=".ss($pingtest).",pingfatal=".ss($pingfatal).","; 56: $q.="hostname=\"".ss($_REQUEST['hostname'])."\""; 57: 58: $q.=" WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 59: 60: $NATS->DB->Query($q); 61: 62: if ($NATS->DB->Affected_Rows()<=0) echo "Failed to Save Changes
";
63: else echo "Saved Changes
";
64: } 65: else if ($_REQUEST['action']=="save_actions") 66: { 67: // build the two lists... 68: $cur=array(); 69: $cc=0; 70: $nl=array(); 71: $nc=0; 72: 73: foreach($_REQUEST['links'] as $link) 74: { 75: $nl[$link]['proc']=false; // not processed or existing i.e. outstanding 76: $nl[$link]['aaid']=$link; 77: $nc++; 78: } 79: 80: $q="SELECT nalid,aaid FROM fnnalink WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\""; 81: $r=$NATS->DB->Query($q); 82: while ($row=$NATS->DB->Fetch_Array($r)) 83: { 84: //echo $row['aaid'].":"; 85: $cur[$row['aaid']]['proc']=false; 86: $cur[$row['aaid']]['nalid']=$row['nalid']; 87: $cur[$row['aaid']]['aaid']=$row['aaid']; 88: $cc++; 89: } 90: 91: // now we have the two lists lets process them 92: foreach($nl as $newone) 93: { 94: if (isset($cur[$newone['aaid']])) // exists - do nothing to both 95: { 96: //echo "
".$newone['aaid'].":";
97: $cur[$newone['aaid']]['proc']=true; 98: $nl[$newone['aaid']]['proc']=true; 99: } 100: // otherwise news are left false to insert and curs false to delete 101: } 102: 103: // so lets do that 104: foreach($nl as $newone) 105: { 106: if ($newone['proc']==false) 107: { 108: //echo $q; 109: $q="INSERT INTO fnnalink(aaid,nodeid) VALUES(".ss($newone['aaid']).",\"".ss($_REQUEST['nodeid'])."\")"; 110: $NATS->DB->Query($q); 111: } 112: } 113: foreach($cur as $curone) 114: { 115: if ($curone['proc']==false) 116: { 117: $q="DELETE FROM fnnalink WHERE nalid=".$curone['nalid']; 118: $NATS->DB->Query($q); 119: //echo $q; 120: } 121: } 122: 123: echo "Saved Alert List Preferences
";
124: 125: 126: } 127: 128: } 129: 130: 131: 132: echo "Editing Node: ".$_REQUEST['nodeid']."

";
133: 134: $q="SELECT * FROM fnnode WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" LIMIT 0,1"; 135: $r=$NATS->DB->Query($q); 136: if (!$row=$NATS->DB->Fetch_Array($r)) 137: { 138: echo "No such node.

";
139: Screen_Footer(); 140: exit(); 141: } 142: $NATS->DB->Free($r); 143: 144: echo ""; 145: echo "
";
146: echo ""; 147: echo ""; 148: echo ""; 149: 150: echo ""; 155: 156: echo ""; 161: 162: echo ""; 167: 168: echo ""; 173: 174: echo ""; 184: 185: echo ""; 193: 194: echo ""; 202: 203: echo ""; 211: 212: echo ""; 220: 221: echo ""; 225: echo ""; 226: 227: if (isset($_REQUEST['show_icons'])) 228: { 229: echo ""; 232: } 233: 234: 235: echo ""; 236: 237: $q="SELECT * FROM fnlocaltest WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" AND testtype!=\"ICMP\""; 238: $r=$NATS->DB->Query($q); 239: while ($row=$NATS->DB->Fetch_Array($r)) 240: { 241: echo ""; 249: 250: echo ""; 255: } 256: 257: echo "
";
258: echo "\n"; 259: echo ""; 260: echo ""; 261: echo ""; 267: 268: 269: echo "
Node Settings

151: NodeID 152: :"; 153: echo $row['nodeid']; 154: echo "
157: Node Name 158: :"; 159: echo ""; 160: echo "
163: Hostname 164: :"; 165: echo ""; 166: echo "
169: Description 170: :"; 171: echo ""; 172: echo "
175: Node Icon 176: :"; 177: echo " [ Show Icons ]"; 183: echo "
186: Enabled 187: :"; 188: if ($row['nodeenabled']==1) $s=" checked"; 189: else $s=""; 190: echo ""; 191: echo " ".hlink("Node:Enabled"); 192: echo "
195: Alerts Active 196: :"; 197: if ($row['nodealert']==1) $s=" checked"; 198: else $s=""; 199: echo ""; 200: echo " ".hlink("Node:AlertActive"); 201: echo "
204: Ping Test 205: :"; 206: if ($row['pingtest']==1) $s=" checked"; 207: else $s=""; 208: echo ""; 209: echo " ".hlink("Node:PingTest"); 210: echo "
213: Require Ping 214: :"; 215: if ($row['pingfatal']==1) $s=" checked"; 216: else $s=""; 217: echo ""; 218: echo " ".hlink("Node:RequirePing"); 219: echo "
"; 222: echo " Cancel Changes"; 223: echo "

";
224: echo "


"; 230: ShowIcons(); 231: echo "


Node Tests

"; 242: 243: echo ""; 244: if (strlen($row['testparam'])>10) $tp=substr($row['testparam'],0,8).".."; 245: else $tp=$row['testparam']; 246: echo lText($row['testtype'])." (".$tp.")"; 247: echo ""; 248: echo "Edit | "; 251: echo "Delete"; 252: 253: echo "  Last Tested: ".dtago($row['lastrunx']).""; 254: echo "
 
Add Test : "; 265: echo ""; 266: echo "
";
270: 271: echo "

Alert Actions

";
272: echo ""; 273: echo ""; 274: echo ""; 275: $q="SELECT aaid,aname FROM fnalertaction"; 276: $r=$NATS->DB->Query($q); 277: $c=0; 278: while ($row=$NATS->DB->Fetch_Array($r)) 279: { 280: // has link? 281: $lq="SELECT nalid FROM fnnalink WHERE nodeid=\"".ss($_REQUEST['nodeid'])."\" AND aaid=".ss($row['aaid'])." LIMIT 0,1"; 282: $lr=$NATS->DB->Query($lq); 283: if ($NATS->DB->Num_Rows($lr)>0) $s=" checked"; 284: else $s=""; 285: $NATS->DB->Free($lr); 286: echo ""; 288: } 289: $NATS->DB->Free($r); 290: echo ""; 291: echo "
"; 287: echo "".$row['aaid']." - ".$row['aname']."
";
292: ?> 293: 294: 295: 296: Screen_Footer(); 297: ?> 298: