diff --git a/lam/lib/modules/fixed_ip.inc b/lam/lib/modules/fixed_ip.inc index 2aa5af725..abeaa41f8 100644 --- a/lam/lib/modules/fixed_ip.inc +++ b/lam/lib/modules/fixed_ip.inc @@ -204,13 +204,13 @@ class fixed_ip extends baseModule { // Only run it, when ranges already exists: if (is_array($this->fixed_ip)) { $ex_subnet = explode(".", $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]); - foreach ($this->fixed_ip as $id => $arr) { - if (!empty($this->fixed_ip[$id]['ip']) && !range::check_subnet_range($this->fixed_ip[$id]['ip'], + foreach ($this->fixed_ip as $id => $value) { + if (!empty($value['ip']) && !range::check_subnet_range($value['ip'], $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0], $this->getAccountContainer()->getAccountModule('dhcp_settings')->getDHCPOption('subnet-mask'))) { // Range anpassen: - $ex = explode(".", $this->fixed_ip[$id]['ip']); - $tmp = $this->fixed_ip[$id]['ip']; + $ex = explode(".", $value['ip']); + $tmp = $value['ip']; $this->fixed_ip[$id]['ip'] = $ex_subnet['0'] . "." . $ex_subnet['1'] . "." . $ex_subnet['2'] . "." . $ex['3']; if ($tmp != $this->fixed_ip[$id]['ip']) { $ip_edit = true; @@ -230,7 +230,7 @@ class fixed_ip extends baseModule { if (!$this->isRootNode()) { $searchAttributes = ['cn', 'dhcphwaddress', 'dhcpstatements', 'dhcpcomments']; $entries = searchLDAP($this->getAccountContainer()->dn_orig, '(objectClass=dhcpHost)', $searchAttributes); - for ($i = 0; $i < sizeof($entries); $i++) { + for ($i = 0; $i < count($entries); $i++) { $dhcphwaddress = explode(" ", $entries[$i]['dhcphwaddress'][0]); $dhcphwaddress = array_pop($dhcphwaddress); $dhcpstatements = []; @@ -273,7 +273,7 @@ class fixed_ip extends baseModule { } natcasesort($order); $newVal = []; - foreach ($order as $index => $sortval) { + foreach (array_keys($order) as $index) { $newVal[] = $this->fixed_ip[$index]; } $this->fixed_ip = $newVal; @@ -410,7 +410,7 @@ class fixed_ip extends baseModule { $this->initCache(); // auto-completion for host names $autoNames = []; - if (!empty($this->hostCache) && (sizeof($this->hostCache) < 200)) { + if (!empty($this->hostCache) && (count($this->hostCache) < 200)) { foreach ($this->hostCache as $attrs) { if (!empty($attrs['cn'][0])) { $autoNames[] = $attrs['cn'][0]; @@ -429,21 +429,21 @@ class fixed_ip extends baseModule { } $pcs = []; $messages = []; - foreach ($this->fixed_ip as $id => $arr) { + foreach ($this->fixed_ip as $id => $value) { // pc name $existsInDifferentDn = false; if (!empty($_POST['pc_' . $id])) { $existsInDifferentDn = $this->hostNameExists($_POST['pc_' . $id]); } if ($this->processed) { - if (strlen($this->fixed_ip[$id]['cn']) > 20) { - $messages[] = new htmlStatusMessage('ERROR', _("The PC name may not be longer than 20 characters."), htmlspecialchars($this->fixed_ip[$id]['cn'])); + if (strlen($value['cn']) > 20) { + $messages[] = new htmlStatusMessage('ERROR', _("The PC name may not be longer than 20 characters."), htmlspecialchars($value['cn'])); } - elseif (strlen($this->fixed_ip[$id]['cn']) < 2) { - $messages[] = new htmlStatusMessage('ERROR', _("The PC name needs to be at least 2 characters long."), htmlspecialchars($this->fixed_ip[$id]['cn'])); + elseif (strlen($value['cn']) < 2) { + $messages[] = new htmlStatusMessage('ERROR', _("The PC name needs to be at least 2 characters long."), htmlspecialchars($value['cn'])); } - elseif (in_array($this->fixed_ip[$id]['cn'], $pcs)) { - $messages[] = new htmlStatusMessage('ERROR', _("This PC name already exists."), htmlspecialchars($this->fixed_ip[$id]['cn'])); + elseif (in_array($value['cn'], $pcs)) { + $messages[] = new htmlStatusMessage('ERROR', _("This PC name already exists."), htmlspecialchars($value['cn'])); } elseif (isset($_POST['pc_' . $id]) && !preg_match("/^[A-Za-z0-9\\._-]*$/", $_POST['pc_' . $id])) { $messages[] = new htmlStatusMessage('ERROR', _("The PC name may only contain A-Z, a-z and 0-9."), htmlspecialchars($_POST['pc_' . $id])); @@ -452,42 +452,42 @@ class fixed_ip extends baseModule { $messages[] = new htmlStatusMessage('ERROR', sprintf(_('This PC name already exists in %s. Use e.g. %s.'), $existsInDifferentDn[0], $existsInDifferentDn[1])); } } - $pcs[] = $this->fixed_ip[$id]['cn']; + $pcs[] = $value['cn']; // MAC address - if ($this->processed && $this->check_mac($this->fixed_ip[$id]['mac'])) { - $messages[] = new htmlStatusMessage('ERROR', _("Invalid MAC address."), htmlspecialchars($this->fixed_ip[$id]['mac'])); + if ($this->processed && $this->check_mac($value['mac'])) { + $messages[] = new htmlStatusMessage('ERROR', _("Invalid MAC address."), htmlspecialchars($value['mac'])); } // description - if ($this->processed && !get_preg($this->fixed_ip[$id]['description'], 'ascii')) { - $messages[] = new htmlStatusMessage('ERROR', _("Invalid description."), htmlspecialchars($this->fixed_ip[$id]['description'])); + if ($this->processed && !get_preg($value['description'], 'ascii')) { + $messages[] = new htmlStatusMessage('ERROR', _("Invalid description."), htmlspecialchars($value['description'])); } // fixed ip - if ($this->processed && !empty($this->fixed_ip[$id]['ip'])) { - if (!check_ip($this->fixed_ip[$id]['ip'])) { - $messages[] = new htmlStatusMessage('ERROR', _("The IP address is invalid."), htmlspecialchars($this->fixed_ip[$id]['ip'])); + if ($this->processed && !empty($value['ip'])) { + if (!check_ip($value['ip'])) { + $messages[] = new htmlStatusMessage('ERROR', _("The IP address is invalid."), htmlspecialchars($value['ip'])); } - elseif (!range::check_subnet_range($this->fixed_ip[$id]['ip'], + elseif (!range::check_subnet_range($value['ip'], $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0], $this->getAccountContainer()->getAccountModule('dhcp_settings')->getDHCPOption('subnet-mask'))) { - $messages[] = new htmlStatusMessage('ERROR', _("The IP address does not match the subnet."), htmlspecialchars($this->fixed_ip[$id]['ip'])); + $messages[] = new htmlStatusMessage('ERROR', _("The IP address does not match the subnet."), htmlspecialchars($value['ip'])); } - elseif (!$this->isNotOverlappedIp($this->fixed_ip[$id]['ip'])) { - $messages[] = new htmlStatusMessage('ERROR', _("The IP address is already in use."), htmlspecialchars($this->fixed_ip[$id]['ip'])); + elseif (!$this->isNotOverlappedIp($value['ip'])) { + $messages[] = new htmlStatusMessage('ERROR', _("The IP address is already in use."), htmlspecialchars($value['ip'])); } } $entry = []; - $entry[] = new htmlInputField('ip_' . $id, $this->fixed_ip[$id]['ip']); - $pcInput = new htmlInputField('pc_' . $id, $this->fixed_ip[$id]['cn']); + $entry[] = new htmlInputField('ip_' . $id, $value['ip']); + $pcInput = new htmlInputField('pc_' . $id, $value['cn']); if (!empty($autoNames)) { $pcInput->enableAutocompletion($autoNames); } $entry[] = $pcInput; - $entry[] = new htmlInputField('mac_' . $id, $this->fixed_ip[$id]['mac']); - $entry[] = new htmlInputField('description_' . $id, $this->fixed_ip[$id]['description']); - $entry[] = new htmlInputCheckbox('active_' . $id, $this->fixed_ip[$id]['active']); + $entry[] = new htmlInputField('mac_' . $id, $value['mac']); + $entry[] = new htmlInputField('description_' . $id, $value['description']); + $entry[] = new htmlInputCheckbox('active_' . $id, $value['active']); $entry[] = new htmlButton('drop_ip_' . $id, 'del.svg', true); $data[] = $entry; } @@ -552,7 +552,7 @@ class fixed_ip extends baseModule { $matches = []; $number = 0; $namePrefix = $name; - if (preg_match('/(.*[^0-9])([0-9]+)/', $name, $matches)) { + if (preg_match('/(.*[^0-9])(\d+)/', $name, $matches)) { $namePrefix = $matches[1]; $number = $matches[2]; } @@ -753,7 +753,7 @@ class fixed_ip extends baseModule { */ function get_pdfEntries($pdfKeys, $typeId) { $return = []; - if (is_array($this->fixed_ip) && (sizeof($this->fixed_ip) > 0)) { + if (is_array($this->fixed_ip) && ($this->fixed_ip !== [])) { $pdfTable = new PDFTable(); $pdfRow = new PDFTableRow(); $pdfRow->cells[] = new PDFTableCell(_('PC name'), '20%', null, true); @@ -762,7 +762,7 @@ class fixed_ip extends baseModule { $pdfRow->cells[] = new PDFTableCell(_('Active'), '10%', null, true); $pdfRow->cells[] = new PDFTableCell(_('Description'), '30%', null, true); $pdfTable->rows[] = $pdfRow; - for ($i = 0; $i < sizeof($this->fixed_ip); $i++) { + for ($i = 0; $i < count($this->fixed_ip); $i++) { $name = $this->fixed_ip[$i]['cn']; $mac = $this->fixed_ip[$i]['mac']; $ip = $this->fixed_ip[$i]['ip']; @@ -792,7 +792,7 @@ class fixed_ip extends baseModule { public static function extractIP($dhcpStatements) { $return = null; if (is_array($dhcpStatements)) { - for ($i = 0; $i < sizeof($dhcpStatements); $i++) { + for ($i = 0; $i < count($dhcpStatements); $i++) { if (str_starts_with($dhcpStatements[$i], 'fixed-address ')) { $return = substr($dhcpStatements[$i], strlen('fixed-address') + 1); break; @@ -809,7 +809,7 @@ class fixed_ip extends baseModule { * @param String $ip new IP */ private function setIP(&$dhcpStatements, $ip) { - for ($i = 0; $i < sizeof($dhcpStatements); $i++) { + for ($i = 0; $i < count($dhcpStatements); $i++) { if (str_starts_with($dhcpStatements[$i], 'fixed-address ')) { unset($dhcpStatements[$i]); $dhcpStatements = array_values($dhcpStatements); @@ -827,10 +827,10 @@ class fixed_ip extends baseModule { */ public static function isActive($dhcpStatements) { if (is_array($dhcpStatements)) { - for ($i = 0; $i < sizeof($dhcpStatements); $i++) { + for ($i = 0; $i < count($dhcpStatements); $i++) { if (strpos($dhcpStatements[$i], ' booting') === (strlen($dhcpStatements[$i]) - strlen(' booting'))) { $val = substr($dhcpStatements[$i], 0, (strlen($dhcpStatements[$i]) - strlen(' booting'))); - if ($val == 'deny') { + if ($val === 'deny') { return false; } break; @@ -847,18 +847,13 @@ class fixed_ip extends baseModule { * @param boolean $active is active */ private function setActive(&$dhcpStatements, $active) { - for ($i = 0; $i < sizeof($dhcpStatements); $i++) { + for ($i = 0; $i < count($dhcpStatements); $i++) { if (str_contains($dhcpStatements[$i], ' booting')) { unset($dhcpStatements[$i]); $dhcpStatements = array_values($dhcpStatements); } } - if ($active) { - $dhcpStatements[] = 'allow booting'; - } - else { - $dhcpStatements[] = 'deny booting'; - } + $dhcpStatements[] = $active ? 'allow booting' : 'deny booting'; } /** @@ -920,10 +915,10 @@ class fixed_ip extends baseModule { return function(array $entry, string $attribute): ?htmlElement { // find all fixed addresses: $entries = searchLDAP($entry['dn'], 'objectClass=dhcpHost', ['dhcpstatements', 'dhcphwaddress', 'cn']); - if (sizeof($entries) > 0) { + if (count($entries) > 0) { // sort by IP $order = []; - for ($i = 0; $i < sizeof($entries); $i++) { + for ($i = 0; $i < count($entries); $i++) { $order[$i] = ''; if (!empty($entries[$i]['dhcpstatements'])) { $order[$i] = fixed_ip::extractIP($entries[$i]['dhcpstatements']); @@ -931,7 +926,7 @@ class fixed_ip extends baseModule { } $group = new htmlGroup(); natcasesort($order); - for ($i = 0; $i < sizeof($order); $i++) { + for ($i = 0; $i < count($order); $i++) { $dhcpstatements = []; if (isset($entries[$i]['dhcpstatements'][0])) { $dhcpstatements = $entries[$i]['dhcpstatements']; @@ -959,7 +954,7 @@ class fixed_ip extends baseModule { $name->setCSSClasses($cssClasses); $group->addElement($name); $group->addElement(new htmlOutputText('
', false)); - if ($i < (sizeof($order) - 1)) { + if ($i < (count($order) - 1)) { $group->addElement(new htmlOutputText('
', false)); } }