source: trunk/Modules/Network/HostList.php

Last change on this file was 912, checked in by chronos, 3 years ago
  • Modified: Updated Common package.
File size: 3.5 KB
Line 
1<?php
2
3include_once(dirname(__FILE__).'/../../Common/Global.php');
4
5class PageHostList extends Page
6{
7 function __construct(System $System)
8 {
9 parent::__construct($System);
10 $this->Title = 'Seznam počítačů';
11 $this->Description = 'Seznam registrovaných počítačů';
12 $this->ParentClass = 'PageNetwork';
13 }
14
15 function Show(): string
16 {
17 if (!ModuleUser::Cast($this->System->GetModule('User'))->User->CheckPermission('Network', 'ShowHostList'))
18 return 'Nemáte oprávnění';
19
20 if (array_key_exists('admin', $_GET)) $Where = 'AND NetworkDevice.Type IN (1,4,5) ';
21 else $Where = '';
22 $Output = '<div align="center" style="font-size: small;"><table class="WideTable">';
23 $Output .= '<tr><th>Jméno počítače</th><th>IP adresa</th><th>Veřejná IP</th><th>Typ</th><th>Naposledy online</th><th>Správce</th></tr>';
24 $DbResult = $this->Database->query('SELECT NetworkDevice.*, User.Name as UserName, NetworkDeviceType.Name AS HostType FROM NetworkDevice '.
25 'LEFT JOIN Member ON Member.Id = NetworkDevice.Member '.
26 'LEFT JOIN User ON Member.ResponsibleUser = User.Id '.
27 'LEFT JOIN NetworkDeviceType ON NetworkDeviceType.Id = NetworkDevice.Type WHERE NetworkDevice.Used = 1 '.$Where.'ORDER BY NetworkDevice.Name');
28 while ($Device = $DbResult->fetch_assoc())
29 {
30 if ($Device['Online'] == 1) $Style = 'color: blue;'; else $Style = '';
31 $DbResult2 = $this->Database->query('SELECT COUNT(*) FROM NetworkInterface WHERE Device = '.$Device['Id']);
32 $DbRow = $DbResult2->fetch_row();
33 if ($DbRow[0] == 1)
34 {
35 $DbResult2 = $this->Database->query('SELECT * FROM NetworkInterface WHERE Device = '.$Device['Id']);
36 $Interface = $DbResult2->fetch_assoc();
37 if ($Interface['ExternalIP'] == '') $Interface['ExternalIP'] = '&nbsp;';
38 if ($Interface['LocalIP'] == '') $Interface['LocalIP'] = '&nbsp;';
39 if ($Interface['Online'] == 1) $Style = 'font-weight: bold; color: blue;'; else $Style = '';
40 $InterfaceName = $Device['Name'];
41 if ($Interface['Name'] != '') $InterfaceName .= '-'.$Interface['Name'];
42 $Output .= '<tr><td style="text-align: left; '.$Style.'">'.$InterfaceName.'</td><td>'.$Interface['LocalIP'].'</td><td>'.$Interface['ExternalIP'].'</td><td>'.$Device['HostType'].'</td><td style="text-align: right;">'.HumanDate($Device['LastOnline']).'</td><td style="text-align: right;">'.$Device['UserName'].'</td></tr>';
43 } else
44 {
45 $Output .= '<tr><td colspan="3" style="text-align: left; font-weight: bold; '.$Style.'">'.$Device['Name'].'</td><td>'.$Device['HostType'].'</td><td style="text-align: right;">'.HumanDate($Device['LastOnline']).'</td><td style="text-align: right;">'.$Device['UserName'].'</td></tr>';
46 $DbResult2 = $this->Database->query('SELECT * FROM NetworkInterface WHERE Device = '.$Device['Id']);
47 while ($Interface = $DbResult2->fetch_assoc())
48 {
49 if ($Interface['LocalIP'] == '') $Interface['LocalIP'] = '&nbsp;';
50 if ($Interface['Online'] == 1) $Style = 'font-weight: bold; color: blue;'; else $Style = '';
51 $InterfaceName = $Device['Name'];
52 if ($Interface['Name'] != '') $InterfaceName .= '-'.$Interface['Name'];
53 $Output .= '<tr><td style="text-align: left; '.$Style.'">&nbsp;&nbsp;'.$InterfaceName.'</td><td>'.$Interface['LocalIP'].'</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
54 }
55 }
56 }
57 $Output .= '</table></div>';
58 return $Output;
59 }
60}
Note: See TracBrowser for help on using the repository browser.