Exemplo n.º 1
0
 /**
  * Fetches changelog entries for all slave subnets recursive
  *
  * @access public
  * @param mixed $subnetId
  * @param int $limit (default: 50)
  * @return void
  */
 public function fetch_subnet_slaves_changlog_entries_recursive($subnetId, $limit = 50)
 {
     # limit check
     if (!is_numeric($limit)) {
         $this->Result->show("danger", "Invalid limit", true);
         return false;
     }
     # $subnetId check
     if (!is_numeric($subnetId)) {
         $this->Result->show("danger", "Invalid subnet Id", true);
         return false;
     }
     # fetch all slave subnet ids
     $Subnets = new Subnets($this->Database);
     $Subnets->reset_subnet_slaves_recursive();
     $Subnets->fetch_subnet_slaves_recursive($subnetId);
     # remove master subnet ID
     $key = array_search($subnetId, $Subnets->slaves);
     unset($Subnets->slaves[$key]);
     $Subnets->slaves = array_unique($Subnets->slaves);
     # if some slaves are present get changelog
     if (sizeof($Subnets->slaves) > 0) {
         # set query
         $query = "select\n\t\t\t\t\t\t`u`.`real_name`,`o`.`sectionId`,`o`.`subnet`,`o`.`mask`,`o`.`isFolder`,`o`.`description`,`o`.`id`,`c`.`caction`,`c`.`cresult`,`c`.`cdate`,`c`.`cdiff`  from `changelog` as `c`, `users` as `u`, `subnets` as `o`\n\t\t\t\t\t\twhere `c`.`cuser` = `u`.`id` and `c`.`coid`=`o`.`id`\n\t\t\t\t\t\tand (";
         foreach ($Subnets->slaves as $slaveId) {
             if (!isset($args)) {
                 $args = array();
             }
             $query .= "`c`.`coid` = ? or ";
             $args[] = $slaveId;
             //set keys
         }
         $query = substr($query, 0, -3);
         $query .= ") and `c`.`ctype` = 'subnet' order by `c`.`cid` desc limit {$limit};";
         # fetch
         try {
             $logs = $this->Database->getObjectsQuery($query, $args);
         } catch (Exception $e) {
             $this->Result->show("danger", $e->getMessage(), false);
             return false;
         }
         # return result
         return $logs;
     } else {
         return false;
     }
 }
Exemplo n.º 2
0
         }
         # save to update array
         $values[$myField['name']] = $_POST[$myField['name']];
     }
 }
 # execute
 if (!$Subnets->modify_subnet($_POST['action'], $values)) {
     $Result->show("danger", _('Error editing subnet'), true);
 } else {
     # if add save id !
     if ($_POST['action'] == "add") {
         $new_subnet_id = $Subnets->lastInsertId;
     }
     # update also all slave subnets if section changes!
     if (isset($values['sectionId']) && $_POST['action'] == "edit" || $_POST['action'] == "delete") {
         $Subnets->reset_subnet_slaves_recursive();
         $Subnets->fetch_subnet_slaves_recursive($_POST['subnetId']);
         $Subnets->remove_subnet_slaves_master($_POST['subnetId']);
         if (sizeof($Subnets->slaves) > 0) {
             foreach ($Subnets->slaves as $slaveId) {
                 if ($_POST['action'] == "edit") {
                     $Admin->object_modify("subnets", "edit", "id", array("id" => $slaveId, "sectionId" => $_POST['sectionIdNew']));
                 } else {
                     $Admin->object_modify("subnets", "delete", "id", array("id" => $slaveId));
                 }
             }
         }
     }
     # edit success
     if ($_POST['action'] == "delete") {
         $Result->show("success", _('Subnet, IP addresses and all belonging subnets deleted successfully') . '!', false);