Laravel 10.x Shift (#14995)

* Apply code style

* Remove explicit call to register policies

* Shift core files

* Shift config files

* Default config files

In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them and merged your true customizations -
where ENV variables may not be used.

* Bump Laravel dependencies

* Add type hints for Laravel 10

* Shift cleanup

* wip

* wip

* sync translation

* Sync back config

* Public Path Binding

* QueryException

* monolog

* db::raw

* monolog

* db::raw

* fix larastan collections

* fix phpstan bug looping forever

* larastan errors

* larastan: fix column type

* styleci

* initialize array

* fixes

* fixes

---------

Co-authored-by: Shift <shift@laravelshift.com>
This commit is contained in:
Jellyfrog 2023-05-24 22:21:54 +02:00 committed by GitHub
parent dd3ed41319
commit 2b3575a5e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
437 changed files with 1904 additions and 1913 deletions

View File

@ -167,7 +167,7 @@ jobs:
mysql -h"127.0.0.1" -P"$PORT" --user=librenms --password=librenms -e 'ALTER DATABASE librenms_phpunit_78hunjuybybh CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;' mysql -h"127.0.0.1" -P"$PORT" --user=librenms --password=librenms -e 'ALTER DATABASE librenms_phpunit_78hunjuybybh CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'
- -
name: Setup SQLite name: Setup SQLite
run: sqlite3 storage/testing.sqlite "" run: sqlite3 database/testing.sqlite ""
- -
name: Artisan serve name: Artisan serve
if: matrix.skip-web-check != '1' if: matrix.skip-web-check != '1'

View File

@ -83,7 +83,7 @@ class AlertDB
//Our first table has no valid glue, append the 'devices' table to it! //Our first table has no valid glue, append the 'devices' table to it!
array_unshift($tables, 'devices'); array_unshift($tables, 'devices');
} }
$x = sizeof($tables) - 1; $x = count($tables) - 1;
$i = 0; $i = 0;
$join = ''; $join = '';
while ($i < $x) { while ($i < $x) {

View File

@ -76,7 +76,7 @@ class AlertRules
$qry[$i]['ip'] = inet6_ntop($qry[$i]['ip']); $qry[$i]['ip'] = inet6_ntop($qry[$i]['ip']);
} }
} }
$s = sizeof($qry); $s = count($qry);
if ($s == 0 && $inv === false) { if ($s == 0 && $inv === false) {
$doalert = false; $doalert = false;
} elseif ($s > 0 && $inv === false) { } elseif ($s > 0 && $inv === false) {

View File

@ -300,8 +300,8 @@ class RunAlerts
$chk[$i]['ip'] = inet6_ntop($chk[$i]['ip']); $chk[$i]['ip'] = inet6_ntop($chk[$i]['ip']);
} }
} }
$o = sizeof($alert['details']['rule']); $o = count($alert['details']['rule']);
$n = sizeof($chk); $n = count($chk);
$ret = 'Alert #' . $alert['id']; $ret = 'Alert #' . $alert['id'];
$state = AlertState::CLEAR; $state = AlertState::CLEAR;
if ($n > $o) { if ($n > $o) {

View File

@ -25,8 +25,8 @@
namespace LibreNMS\Alerting; namespace LibreNMS\Alerting;
use DB;
use Illuminate\Database\Query\Builder; use Illuminate\Database\Query\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Log; use Log;

View File

@ -123,7 +123,7 @@ class LdapAuthorizationAuthorizer extends AuthorizerBase
} }
// Find all defined groups $username is in // Find all defined groups $username is in
$filter = '(&(|(cn=' . join(')(cn=', array_keys(Config::get('auth_ldap_groups'))) . '))(' . Config::get('auth_ldap_groupmemberattr') . '=' . $this->getMembername($username) . '))'; $filter = '(&(|(cn=' . implode(')(cn=', array_keys(Config::get('auth_ldap_groups'))) . '))(' . Config::get('auth_ldap_groupmemberattr') . '=' . $this->getMembername($username) . '))';
$search = ldap_search($this->ldap_connection, Config::get('auth_ldap_groupbase'), $filter); $search = ldap_search($this->ldap_connection, Config::get('auth_ldap_groupbase'), $filter);
$entries = ldap_get_entries($this->ldap_connection, $search); $entries = ldap_get_entries($this->ldap_connection, $search);

View File

@ -3,6 +3,7 @@
namespace LibreNMS\Authentication; namespace LibreNMS\Authentication;
use ErrorException; use ErrorException;
use LDAP\Connection;
use LibreNMS\Config; use LibreNMS\Config;
use LibreNMS\Exceptions\AuthenticationException; use LibreNMS\Exceptions\AuthenticationException;
use LibreNMS\Exceptions\LdapMissingException; use LibreNMS\Exceptions\LdapMissingException;

View File

@ -211,7 +211,7 @@ class SSOAuthorizer extends MysqlAuthorizer
if (isset($config_map[$value])) { if (isset($config_map[$value])) {
$map = $config_map[$value]; $map = $config_map[$value];
if (is_integer($map) && $level < $map) { if (is_int($map) && $level < $map) {
$level = $map; $level = $map;
} }
} }

View File

@ -115,7 +115,7 @@ class TwoFactor
$bin = str_split($bin, 5); $bin = str_split($bin, 5);
$ret = ''; $ret = '';
$x = -1; $x = -1;
while (++$x < sizeof($bin)) { while (++$x < count($bin)) {
$ret .= self::$base32_enc[(int) base_convert(str_pad($bin[$x], 5, '0'), 2, 10)]; $ret .= self::$base32_enc[(int) base_convert(str_pad($bin[$x], 5, '0'), 2, 10)];
} }

View File

@ -28,8 +28,8 @@ use App\Models\Bill;
use App\Models\Device; use App\Models\Device;
use App\Models\Port; use App\Models\Port;
use App\Models\User; use App\Models\User;
use DB;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use LibreNMS\Config; use LibreNMS\Config;
class PermissionsCache class PermissionsCache

View File

@ -25,8 +25,8 @@
namespace LibreNMS\DB; namespace LibreNMS\DB;
use DB;
use Illuminate\Database\Connection; use Illuminate\Database\Connection;
use Illuminate\Support\Facades\DB;
use LibreNMS\Util\Laravel; use LibreNMS\Util\Laravel;
use PDOException; use PDOException;

View File

@ -25,7 +25,7 @@
namespace LibreNMS\DB; namespace LibreNMS\DB;
use DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use LibreNMS\Config; use LibreNMS\Config;
use LibreNMS\Util\Version; use LibreNMS\Util\Version;
@ -349,9 +349,9 @@ class Schema
DB::statement("SET TIME_ZONE='+00:00'"); // set timezone to UTC to avoid timezone issues DB::statement("SET TIME_ZONE='+00:00'"); // set timezone to UTC to avoid timezone issues
foreach (DB::connection($connection)->select(DB::raw("SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = '$db_name' ORDER BY TABLE_NAME;")) as $table) { foreach (DB::connection($connection)->select(DB::raw("SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = '$db_name' ORDER BY TABLE_NAME;")->getValue(DB::connection($connection)->getQueryGrammar())) as $table) {
$table = $table->TABLE_NAME; $table = $table->TABLE_NAME;
foreach (DB::connection($connection)->select(DB::raw("SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, EXTRA FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$db_name' AND TABLE_NAME='$table' ORDER BY ORDINAL_POSITION")) as $data) { foreach (DB::connection($connection)->select(DB::raw("SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, EXTRA FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$db_name' AND TABLE_NAME='$table' ORDER BY ORDINAL_POSITION")->getValue(DB::connection($connection)->getQueryGrammar())) as $data) {
$def = [ $def = [
'Field' => $data->COLUMN_NAME, 'Field' => $data->COLUMN_NAME,
'Type' => preg_replace('/int\([0-9]+\)/', 'int', $data->COLUMN_TYPE), 'Type' => preg_replace('/int\([0-9]+\)/', 'int', $data->COLUMN_TYPE),
@ -371,7 +371,7 @@ class Schema
$output[$table]['Columns'][] = $def; $output[$table]['Columns'][] = $def;
} }
$keys = DB::connection($connection)->select(DB::raw("SHOW INDEX FROM `$table`")); $keys = DB::connection($connection)->select(DB::raw("SHOW INDEX FROM `$table`")->getValue(DB::connection($connection)->getQueryGrammar()));
usort($keys, function ($a, $b) { usort($keys, function ($a, $b) {
return $a->Key_name <=> $b->Key_name; return $a->Key_name <=> $b->Key_name;
}); });
@ -389,7 +389,7 @@ class Schema
} }
} }
$create = DB::connection($connection)->select(DB::raw("SHOW CREATE TABLE `$table`"))[0]; $create = DB::connection($connection)->select(DB::raw("SHOW CREATE TABLE `$table`")->getValue(DB::connection($connection)->getQueryGrammar()))[0];
if (isset($create->{'Create Table'})) { if (isset($create->{'Create Table'})) {
$constraint_regex = '/CONSTRAINT `(?<name>[A-Za-z_0-9]+)` FOREIGN KEY \(`(?<foreign_key>[A-Za-z_0-9]+)`\) REFERENCES `(?<table>[A-Za-z_0-9]+)` \(`(?<key>[A-Za-z_0-9]+)`\) ?(?<extra>[ A-Z]+)?/'; $constraint_regex = '/CONSTRAINT `(?<name>[A-Za-z_0-9]+)` FOREIGN KEY \(`(?<foreign_key>[A-Za-z_0-9]+)`\) REFERENCES `(?<table>[A-Za-z_0-9]+)` \(`(?<key>[A-Za-z_0-9]+)`\) ?(?<extra>[ A-Z]+)?/';

View File

@ -28,6 +28,7 @@ namespace LibreNMS\Data\Store;
use App\Polling\Measure\Measurement; use App\Polling\Measure\Measurement;
use InfluxDB\Client; use InfluxDB\Client;
use InfluxDB\Database;
use InfluxDB\Driver\UDP; use InfluxDB\Driver\UDP;
use LibreNMS\Config; use LibreNMS\Config;
use Log; use Log;
@ -37,7 +38,7 @@ class InfluxDB extends BaseDatastore
/** @var \InfluxDB\Database */ /** @var \InfluxDB\Database */
private $connection; private $connection;
public function __construct(\InfluxDB\Database $influx) public function __construct(Database $influx)
{ {
parent::__construct(); parent::__construct();
$this->connection = $influx; $this->connection = $influx;

View File

@ -272,13 +272,13 @@ class Rrd extends BaseDatastore
*/ */
public function proxmoxName($pmxcluster, $vmid, $vmport) public function proxmoxName($pmxcluster, $vmid, $vmport)
{ {
$pmxcdir = join('/', [$this->rrd_dir, 'proxmox', self::safeName($pmxcluster)]); $pmxcdir = implode('/', [$this->rrd_dir, 'proxmox', self::safeName($pmxcluster)]);
// this is not needed for remote rrdcached // this is not needed for remote rrdcached
if (! is_dir($pmxcdir)) { if (! is_dir($pmxcdir)) {
mkdir($pmxcdir, 0775, true); mkdir($pmxcdir, 0775, true);
} }
return join('/', [$pmxcdir, self::safeName($vmid . '_netif_' . $vmport . '.rrd')]); return implode('/', [$pmxcdir, self::safeName($vmid . '_netif_' . $vmport . '.rrd')]);
} }
/** /**

View File

@ -26,6 +26,7 @@
namespace LibreNMS\Exceptions; namespace LibreNMS\Exceptions;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Http\Response;
use LibreNMS\Interfaces\Exceptions\UpgradeableException; use LibreNMS\Interfaces\Exceptions\UpgradeableException;
class DatabaseConnectException extends \Exception implements UpgradeableException class DatabaseConnectException extends \Exception implements UpgradeableException

View File

@ -30,6 +30,6 @@ class InvalidTableColumnException extends ApiException
public function __construct( public function __construct(
public readonly array $columns public readonly array $columns
) { ) {
parent::__construct('Invalid columns: ' . join(',', $this->columns)); parent::__construct('Invalid columns: ' . implode(',', $this->columns));
} }
} }

View File

@ -150,7 +150,7 @@ class IRCBot
} }
} }
return $this->log('Cached ' . sizeof($this->external) . ' commands.'); return $this->log('Cached ' . count($this->external) . ' commands.');
} }
//end load_external() //end load_external()
@ -683,7 +683,7 @@ class IRCBot
private function ircRaw($params) private function ircRaw($params)
{ {
return fputs($this->socket['irc'], $params . "\r\n"); return fwrite($this->socket['irc'], $params . "\r\n");
} }
//end irc_raw() //end irc_raw()
@ -780,9 +780,9 @@ class IRCBot
private function _help($params) private function _help($params)
{ {
$msg = join(', ', $this->commands); $msg = implode(', ', $this->commands);
if (count($this->external) > 0) { if (count($this->external) > 0) {
$msg .= ', ' . join(', ', array_keys($this->external)); $msg .= ', ' . implode(', ', array_keys($this->external));
} }
return $this->respond("Available commands: $msg"); return $this->respond("Available commands: $msg");

View File

@ -25,11 +25,15 @@
namespace LibreNMS\Interfaces\Discovery; namespace LibreNMS\Interfaces\Discovery;
use Illuminate\Support\Collection;
interface SlaDiscovery interface SlaDiscovery
{ {
/** /**
* Discover additional information about the OS. * Discover additional information about the OS.
* Primarily this is just version, hardware, features, serial, but could be anything * Primarily this is just version, hardware, features, serial, but could be anything
*
* @return Collection<int, \App\Models\Sla>
*/ */
public function discoverSlas(); public function discoverSlas(): Collection;
} }

View File

@ -25,11 +25,13 @@
namespace LibreNMS\Interfaces\Polling; namespace LibreNMS\Interfaces\Polling;
use Illuminate\Database\Eloquent\Collection;
interface IsIsPolling interface IsIsPolling
{ {
/** /**
* @param \Illuminate\Support\Collection $adjacencies \App\Models\IsIsAdjacency * @param Collection<int, \App\Models\IsisAdjacency> $adjacencies
* @return \Illuminate\Support\Collection \App\Models\IsIsAdjacency * @return Collection<int, \App\Models\IsisAdjacency>
*/ */
public function pollIsIs($adjacencies); public function pollIsIs(Collection $adjacencies);
} }

View File

@ -25,11 +25,13 @@
namespace LibreNMS\Interfaces\Polling; namespace LibreNMS\Interfaces\Polling;
use Illuminate\Database\Eloquent\Collection;
interface MempoolsPolling interface MempoolsPolling
{ {
/** /**
* @param \Illuminate\Support\Collection $mempools \App\Models\Mempool * @param Collection<int, \App\Models\Mempool> $mempools
* @return \Illuminate\Support\Collection \App\Models\Mempool * @return Collection<int, \App\Models\Mempool>
*/ */
public function pollMempools($mempools); public function pollMempools(Collection $mempools);
} }

View File

@ -32,7 +32,7 @@ interface SlaPolling
/** /**
* Poll Sla data for Sla in database. * Poll Sla data for Sla in database.
* *
* @param Collection $slas * @param Collection<int, \App\Models\Sla> $slas
*/ */
public function pollSlas(Collection $slas); public function pollSlas(Collection $slas): void;
} }

View File

@ -138,7 +138,7 @@ class ArubaInstant extends OS implements
// fetch the MAC addresses of currently connected clients, then count them to get an overall total // fetch the MAC addresses of currently connected clients, then count them to get an overall total
$client_data = $this->getCacheTable('aiClientMACAddress', $ai_mib); $client_data = $this->getCacheTable('aiClientMACAddress', $ai_mib);
$total_clients = sizeof($client_data); $total_clients = count($client_data);
$combined_oid = sprintf('%s::%s', $ai_mib, 'aiClientMACAddress'); $combined_oid = sprintf('%s::%s', $ai_mib, 'aiClientMACAddress');
$oid = snmp_translate($combined_oid, 'ALL', 'arubaos', '-On'); $oid = snmp_translate($combined_oid, 'ALL', 'arubaos', '-On');
@ -161,7 +161,7 @@ class ArubaInstant extends OS implements
$ai_mib = 'AI-AP-MIB'; $ai_mib = 'AI-AP-MIB';
$ap_data = $this->getCacheTable('aiAPSerialNum', $ai_mib); $ap_data = $this->getCacheTable('aiAPSerialNum', $ai_mib);
$total_aps = sizeof($ap_data); $total_aps = count($ap_data);
$combined_oid = sprintf('%s::%s', $ai_mib, 'aiAPSerialNum'); $combined_oid = sprintf('%s::%s', $ai_mib, 'aiAPSerialNum');
$oid = snmp_translate($combined_oid, 'ALL', 'arubaos', '-On'); $oid = snmp_translate($combined_oid, 'ALL', 'arubaos', '-On');
@ -311,14 +311,14 @@ class ArubaInstant extends OS implements
} }
} else { } else {
// version is lower than 8.4.0.0 // version is lower than 8.4.0.0
if (! empty($sensors) && sizeof($sensors) == 1) { if (! empty($sensors) && count($sensors) == 1) {
$ai_mib = 'AI-AP-MIB'; $ai_mib = 'AI-AP-MIB';
$client_data = $this->getCacheTable('aiClientMACAddress', $ai_mib); $client_data = $this->getCacheTable('aiClientMACAddress', $ai_mib);
if (empty($client_data)) { if (empty($client_data)) {
$total_clients = 0; $total_clients = 0;
} else { } else {
$total_clients = sizeof($client_data); $total_clients = count($client_data);
} }
$data[$sensors[0]['sensor_id']] = $total_clients; $data[$sensors[0]['sensor_id']] = $total_clients;
@ -339,14 +339,14 @@ class ArubaInstant extends OS implements
public function pollWirelessApCount(array $sensors) public function pollWirelessApCount(array $sensors)
{ {
$data = []; $data = [];
if (! empty($sensors) && sizeof($sensors) == 1) { if (! empty($sensors) && count($sensors) == 1) {
$ai_mib = 'AI-AP-MIB'; $ai_mib = 'AI-AP-MIB';
$ap_data = $this->getCacheTable('aiAPSerialNum', $ai_mib); $ap_data = $this->getCacheTable('aiAPSerialNum', $ai_mib);
$total_aps = 0; $total_aps = 0;
if (! empty($ap_data)) { if (! empty($ap_data)) {
$total_aps = sizeof($ap_data); $total_aps = count($ap_data);
} }
$data[$sensors[0]['sensor_id']] = $total_aps; $data[$sensors[0]['sensor_id']] = $total_aps;

View File

@ -27,8 +27,7 @@ use App\Models\Device;
use LibreNMS\Interfaces\Discovery\OSDiscovery; use LibreNMS\Interfaces\Discovery\OSDiscovery;
use LibreNMS\OS; use LibreNMS\OS;
class Beagleboard extends OS implements class Beagleboard extends OS implements OSDiscovery
OSDiscovery
{ {
/** /**
* Retrieve basic information about the OS / device * Retrieve basic information about the OS / device

View File

@ -130,7 +130,7 @@ class Iosxe extends Ciscowlc implements
$uptime = SnmpQuery::walk('CISCO-IETF-ISIS-MIB::ciiISAdjLastUpTime')->values(); $uptime = SnmpQuery::walk('CISCO-IETF-ISIS-MIB::ciiISAdjLastUpTime')->values();
return $adjacencies->each(function (IsisAdjacency $adjacency) use ($states, $uptime) { return $adjacencies->each(function ($adjacency) use ($states, $uptime) {
$adjacency->isisISAdjState = $states['CISCO-IETF-ISIS-MIB::ciiISAdjState' . $adjacency->index] ?? $adjacency->isisISAdjState; $adjacency->isisISAdjState = $states['CISCO-IETF-ISIS-MIB::ciiISAdjState' . $adjacency->index] ?? $adjacency->isisISAdjState;
$adjacency->isisISAdjLastUpTime = $this->parseAdjacencyTime($uptime['CISCO-IETF-ISIS-MIB::ciiISAdjLastUpTime' . $adjacency->index] ?? 0); $adjacency->isisISAdjLastUpTime = $this->parseAdjacencyTime($uptime['CISCO-IETF-ISIS-MIB::ciiISAdjLastUpTime' . $adjacency->index] ?? 0);
}); });

View File

@ -70,7 +70,7 @@ class Junos extends \LibreNMS\OS implements SlaDiscovery, OSPolling, SlaPolling
} }
} }
public function discoverSlas() public function discoverSlas(): Collection
{ {
$slas = new Collection(); $slas = new Collection();
$sla_table = snmpwalk_group($this->getDeviceArray(), 'pingCtlTable', 'DISMAN-PING-MIB', 2, snmpFlags: '-OQUstX'); $sla_table = snmpwalk_group($this->getDeviceArray(), 'pingCtlTable', 'DISMAN-PING-MIB', 2, snmpFlags: '-OQUstX');
@ -96,7 +96,7 @@ class Junos extends \LibreNMS\OS implements SlaDiscovery, OSPolling, SlaPolling
return $slas; return $slas;
} }
public function pollSlas($slas) public function pollSlas($slas): void
{ {
$device = $this->getDeviceArray(); $device = $this->getDeviceArray();

View File

@ -316,7 +316,7 @@ class Cisco extends OS implements
return $processors; return $processors;
} }
public function discoverSlas() public function discoverSlas(): Collection
{ {
$slas = new Collection(); $slas = new Collection();
@ -414,7 +414,7 @@ class Cisco extends OS implements
return $nac; return $nac;
} }
public function pollSlas($slas) public function pollSlas($slas): void
{ {
$device = $this->getDeviceArray(); $device = $this->getDeviceArray();

View File

@ -34,7 +34,7 @@ class Stellar extends OS implements
if (empty($client_ws_data)) { if (empty($client_ws_data)) {
$total_clients = 0; $total_clients = 0;
} else { } else {
$total_clients = sizeof($client_ws_data); $total_clients = count($client_ws_data);
} }
$combined_oid = sprintf('%s::%s', $device['hardware'], 'apClientWlanService'); $combined_oid = sprintf('%s::%s', $device['hardware'], 'apClientWlanService');
@ -75,7 +75,7 @@ class Stellar extends OS implements
if (empty($client_ws_data)) { if (empty($client_ws_data)) {
$total_clients = 0; $total_clients = 0;
} else { } else {
$total_clients = sizeof($client_ws_data); $total_clients = count($client_ws_data);
} }
foreach ($sensors as $sensor) { foreach ($sensors as $sensor) {

View File

@ -227,7 +227,7 @@ class Vrp extends OS implements
$foundid = 0; $foundid = 0;
for ($z = 0; $z < sizeof($ap_db); $z++) { for ($z = 0; $z < count($ap_db); $z++) {
if ($ap_db[$z]['name'] == $name && $ap_db[$z]['radio_number'] == $radionum) { if ($ap_db[$z]['name'] == $name && $ap_db[$z]['radio_number'] == $radionum) {
$foundid = $ap_db[$z]['accesspoint_id']; $foundid = $ap_db[$z]['accesspoint_id'];
$ap_db[$z]['seen'] = 1; $ap_db[$z]['seen'] = 1;
@ -277,7 +277,7 @@ class Vrp extends OS implements
}//end foreach 1 }//end foreach 1
}//end foreach 2 }//end foreach 2
for ($z = 0; $z < sizeof($ap_db); $z++) { for ($z = 0; $z < count($ap_db); $z++) {
if (! isset($ap_db[$z]['seen']) && $ap_db[$z]['deleted'] == 0) { if (! isset($ap_db[$z]['seen']) && $ap_db[$z]['deleted'] == 0) {
dbUpdate(['deleted' => 1], 'access_points', '`accesspoint_id` = ?', [$ap_db[$z]['accesspoint_id']]); dbUpdate(['deleted' => 1], 'access_points', '`accesspoint_id` = ?', [$ap_db[$z]['accesspoint_id']]);
} }
@ -482,7 +482,7 @@ class Vrp extends OS implements
return $sensors; return $sensors;
} }
public function discoverSlas() public function discoverSlas(): Collection
{ {
$slas = new Collection(); $slas = new Collection();
// Get the index of the last finished test // Get the index of the last finished test
@ -513,7 +513,7 @@ class Vrp extends OS implements
return $slas; return $slas;
} }
public function pollSlas($slas) public function pollSlas($slas): void
{ {
$device = $this->getDeviceArray(); $device = $this->getDeviceArray();

View File

@ -100,7 +100,7 @@ class ObjectCache implements ArrayAccess
return $GLOBALS['_ObjCache'][$this->obj][$obj]['value']; return $GLOBALS['_ObjCache'][$this->obj][$obj]['value'];
} else { } else {
$GLOBALS['_ObjCache'][$this->obj][$obj]['value'] = dbFetchRows($this->data[$obj]['query'], isset($this->data[$obj]['params']) ? $this->data[$obj]['params'] : []); $GLOBALS['_ObjCache'][$this->obj][$obj]['value'] = dbFetchRows($this->data[$obj]['query'], isset($this->data[$obj]['params']) ? $this->data[$obj]['params'] : []);
if (sizeof($GLOBALS['_ObjCache'][$this->obj][$obj]['value']) == 1 && sizeof($GLOBALS['_ObjCache'][$this->obj][$obj]['value'][0]) == 1) { if (count($GLOBALS['_ObjCache'][$this->obj][$obj]['value']) == 1 && count($GLOBALS['_ObjCache'][$this->obj][$obj]['value'][0]) == 1) {
$GLOBALS['_ObjCache'][$this->obj][$obj]['value'] = current($GLOBALS['_ObjCache'][$this->obj][$obj]['value'][0]); $GLOBALS['_ObjCache'][$this->obj][$obj]['value'] = current($GLOBALS['_ObjCache'][$this->obj][$obj]['value'][0]);
} }

View File

@ -31,8 +31,8 @@ use App\Models\Device;
use App\Polling\Measure\Measurement; use App\Polling\Measure\Measurement;
use App\Polling\Measure\MeasurementManager; use App\Polling\Measure\MeasurementManager;
use Carbon\Carbon; use Carbon\Carbon;
use DB;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use LibreNMS\Enum\Alert; use LibreNMS\Enum\Alert;
use LibreNMS\Exceptions\PollerException; use LibreNMS\Exceptions\PollerException;
@ -264,8 +264,10 @@ class Poller
} elseif ($this->device_spec == 'all') { } elseif ($this->device_spec == 'all') {
return $query; return $query;
} elseif ($this->device_spec == 'even') { } elseif ($this->device_spec == 'even') {
/** @phpstan-ignore-next-line */
return $query->where(DB::raw('device_id % 2'), 0); return $query->where(DB::raw('device_id % 2'), 0);
} elseif ($this->device_spec == 'odd') { } elseif ($this->device_spec == 'odd') {
/** @phpstan-ignore-next-line */
return $query->where(DB::raw('device_id % 2'), 1); return $query->where(DB::raw('device_id % 2'), 1);
} elseif (is_numeric($this->device_spec)) { } elseif (is_numeric($this->device_spec)) {
return $query->where('device_id', $this->device_spec); return $query->where('device_id', $this->device_spec);

View File

@ -26,9 +26,9 @@
namespace LibreNMS\Util; namespace LibreNMS\Util;
use App\Models\Callback; use App\Models\Callback;
use DB;
use Illuminate\Database\Query\Builder; use Illuminate\Database\Query\Builder;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str; use Illuminate\Support\Str;
class Stats class Stats

View File

@ -27,6 +27,7 @@ namespace LibreNMS\Util;
use App\Models\Device; use App\Models\Device;
use App\Models\Port; use App\Models\Port;
use App\Models\Sensor;
use Carbon\Carbon; use Carbon\Carbon;
use Carbon\CarbonImmutable; use Carbon\CarbonImmutable;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;

View File

@ -25,8 +25,8 @@
namespace LibreNMS\Util; namespace LibreNMS\Util;
use DB;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use LibreNMS\Config; use LibreNMS\Config;
use LibreNMS\DB\Eloquent; use LibreNMS\DB\Eloquent;
use Symfony\Component\Process\Process; use Symfony\Component\Process\Process;

View File

@ -25,7 +25,7 @@
namespace LibreNMS\Validations\Database; namespace LibreNMS\Validations\Database;
use DB; use Illuminate\Support\Facades\DB;
use LibreNMS\DB\Eloquent; use LibreNMS\DB\Eloquent;
use LibreNMS\Interfaces\Validation; use LibreNMS\Interfaces\Validation;
use LibreNMS\ValidationResult; use LibreNMS\ValidationResult;

View File

@ -25,9 +25,9 @@
namespace LibreNMS\Validations\Database; namespace LibreNMS\Validations\Database;
use DB;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use LibreNMS\DB\Eloquent; use LibreNMS\DB\Eloquent;
use LibreNMS\Interfaces\Validation; use LibreNMS\Interfaces\Validation;
use LibreNMS\Interfaces\ValidationFixer; use LibreNMS\Interfaces\ValidationFixer;

View File

@ -25,8 +25,8 @@
namespace LibreNMS\Validations\Database; namespace LibreNMS\Validations\Database;
use DB;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\DB;
use LibreNMS\Config; use LibreNMS\Config;
use LibreNMS\DB\Eloquent; use LibreNMS\DB\Eloquent;
use LibreNMS\DB\Schema; use LibreNMS\DB\Schema;

View File

@ -62,7 +62,7 @@ class CheckRedis implements \LibreNMS\Interfaces\Validation
private function redisIsAvailable(): bool private function redisIsAvailable(): bool
{ {
try { try {
Redis::ping(); Redis::command('ping');
return true; return true;
} catch (\Exception $e) { } catch (\Exception $e) {

View File

@ -34,7 +34,7 @@ class System extends BaseValidation
protected static $RUN_BY_DEFAULT = true; protected static $RUN_BY_DEFAULT = true;
/** /**
* {@inheritdoc} * @inheritdoc
*/ */
public function validate(Validator $validator): void public function validate(Validator $validator): void
{ {

View File

@ -1,35 +0,0 @@
<?php
/**
* Application.php
*
* Extension of base application class
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* @link https://www.librenms.org
*
* @copyright 2018 Tony Murray
* @author Tony Murray <murraytony@gmail.com>
*/
namespace App;
class Application extends \Illuminate\Foundation\Application
{
public function publicPath()
{
// override the public path
return $this->basePath . DIRECTORY_SEPARATOR . 'html';
}
}

View File

@ -79,7 +79,7 @@ class SmokepingGenerateCommand extends LnmsCommand
$devices = Device::isNotDisabled()->orderBy('type')->orderBy('hostname')->get(); $devices = Device::isNotDisabled()->orderBy('type')->orderBy('hostname')->get();
if (sizeof($devices) < 1) { if (count($devices) < 1) {
$this->error(__('commands.smokeping:generate.no-devices')); $this->error(__('commands.smokeping:generate.no-devices'));
return 3; return 3;

View File

@ -13,7 +13,7 @@ class SnmpTranslate extends SnmpFetch
protected $name = 'snmp:translate'; protected $name = 'snmp:translate';
protected array $oids; protected array $oids;
protected function getDevices(): \Illuminate\Support\Collection protected function getDevices(): Collection
{ {
if (empty($this->oids)) { if (empty($this->oids)) {
$this->oids = [$this->deviceSpec]; $this->oids = [$this->deviceSpec];

View File

@ -16,7 +16,7 @@ class Kernel extends ConsoleKernel
* @param \Illuminate\Console\Scheduling\Schedule $schedule * @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void * @return void
*/ */
protected function schedule(Schedule $schedule) protected function schedule(Schedule $schedule): void
{ {
$this->scheduleMarkWorking($schedule); $this->scheduleMarkWorking($schedule);
} }
@ -26,7 +26,7 @@ class Kernel extends ConsoleKernel
* *
* @return void * @return void
*/ */
protected function commands() protected function commands(): void
{ {
$this->load(__DIR__ . '/Commands'); $this->load(__DIR__ . '/Commands');

View File

@ -3,14 +3,12 @@
namespace App\Events; namespace App\Events;
use App\Models\Device; use App\Models\Device;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
class DevicePolled class DevicePolled
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, SerializesModels;
/** /**
* @var \App\Models\Device * @var \App\Models\Device
@ -26,14 +24,4 @@ class DevicePolled
{ {
$this->device = $device; $this->device = $device;
} }
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}
} }

View File

@ -3,14 +3,12 @@
namespace App\Events; namespace App\Events;
use App\Models\Device; use App\Models\Device;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
class PollingDevice class PollingDevice
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, SerializesModels;
/** /**
* @var \App\Models\Device * @var \App\Models\Device
@ -26,14 +24,4 @@ class PollingDevice
{ {
$this->device = $device; $this->device = $device;
} }
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}
} }

View File

@ -3,13 +3,12 @@
namespace App\Events; namespace App\Events;
use App\Models\User; use App\Models\User;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
class UserCreated class UserCreated
{ {
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, SerializesModels;
public $user; public $user;
/** /**

View File

@ -3,11 +3,10 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController class Controller extends BaseController
{ {
use AuthorizesRequests, DispatchesJobs, ValidatesRequests; use AuthorizesRequests, ValidatesRequests;
} }

View File

@ -27,7 +27,7 @@ namespace App\Http\Controllers\Device\Tabs;
use App\Models\Device; use App\Models\Device;
use Carbon\Carbon; use Carbon\Carbon;
use DB; use Illuminate\Support\Facades\DB;
use LibreNMS\Config; use LibreNMS\Config;
use LibreNMS\Interfaces\UI\DeviceTab; use LibreNMS\Interfaces\UI\DeviceTab;
use LibreNMS\Util\Smokeping; use LibreNMS\Util\Smokeping;

View File

@ -26,7 +26,7 @@
namespace App\Http\Controllers\Device\Tabs; namespace App\Http\Controllers\Device\Tabs;
use App\Models\Device; use App\Models\Device;
use DB; use Illuminate\Support\Facades\DB;
use LibreNMS\Interfaces\UI\DeviceTab; use LibreNMS\Interfaces\UI\DeviceTab;
class ProcessesController implements DeviceTab class ProcessesController implements DeviceTab

View File

@ -72,7 +72,7 @@ class LegacyController extends Controller
} }
// create and set the title // create and set the title
$title = join(' - ', $pagetitle); $title = implode(' - ', $pagetitle);
$html .= "<script type=\"text/javascript\">\ndocument.title = '$title';\n</script>"; $html .= "<script type=\"text/javascript\">\ndocument.title = '$title';\n</script>";
} }

View File

@ -53,7 +53,7 @@ abstract class PaginatedAjaxController extends Controller
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder
*/ */
abstract protected function baseQuery($request); abstract protected function baseQuery(\Illuminate\Http\Request $request);
/** /**
* @param Paginator $paginator * @param Paginator $paginator
@ -79,7 +79,7 @@ abstract class PaginatedAjaxController extends Controller
* *
* @SuppressWarnings(PHPMD.UnusedFormalParameter) * @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/ */
protected function searchFields($request) protected function searchFields(\Illuminate\Http\Request $request)
{ {
return []; return [];
} }
@ -92,7 +92,7 @@ abstract class PaginatedAjaxController extends Controller
* *
* @SuppressWarnings(PHPMD.UnusedFormalParameter) * @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/ */
protected function filterFields($request) protected function filterFields(\Illuminate\Http\Request $request)
{ {
return []; return [];
} }
@ -105,7 +105,7 @@ abstract class PaginatedAjaxController extends Controller
* *
* @SuppressWarnings(PHPMD.UnusedFormalParameter) * @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/ */
protected function sortFields($request) protected function sortFields(\Illuminate\Http\Request $request)
{ {
return []; return [];
} }

View File

@ -27,7 +27,7 @@ namespace App\Http\Controllers\Table;
use App\Models\AlertSchedule; use App\Models\AlertSchedule;
use Carbon\Carbon; use Carbon\Carbon;
use DB; use Illuminate\Support\Facades\DB;
class AlertScheduleController extends TableController class AlertScheduleController extends TableController
{ {

View File

@ -46,7 +46,7 @@ class MempoolsController extends TableController
} }
/** /**
* {@inheritdoc} * @inheritdoc
*/ */
protected function baseQuery($request) protected function baseQuery($request)
{ {

View File

@ -26,9 +26,9 @@
namespace App\Http\Controllers\Table; namespace App\Http\Controllers\Table;
use App\Models\Port; use App\Models\Port;
use DB;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use LibreNMS\Util\Number; use LibreNMS\Util\Number;
use LibreNMS\Util\Rewrite; use LibreNMS\Util\Rewrite;
use LibreNMS\Util\Url; use LibreNMS\Util\Url;

View File

@ -26,8 +26,8 @@
namespace App\Http\Controllers\Widgets; namespace App\Http\Controllers\Widgets;
use App\Models\Component; use App\Models\Component;
use DB;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\View\View; use Illuminate\View\View;
class ComponentStatusController extends WidgetController class ComponentStatusController extends WidgetController

View File

@ -61,13 +61,13 @@ class Kernel extends HttpKernel
]; ];
/** /**
* The application's route middleware. * The application's middleware aliases.
* *
* These middleware may be assigned to groups or used individually. * Aliases may be used to conveniently assign middleware to routes and groups.
* *
* @var array<string, string> * @var array<string, string>
*/ */
protected $routeMiddleware = [ protected $middlewareAliases = [
'authenticate' => \App\Http\Middleware\Authenticate::class, 'authenticate' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,

View File

@ -3,19 +3,19 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware;
use Illuminate\Http\Request;
class Authenticate extends Middleware class Authenticate extends Middleware
{ {
/** /**
* Get the path the user should be redirected to when they are not authenticated. * Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|void
*/ */
protected function redirectTo($request) protected function redirectTo(Request $request): ?string
{ {
if (! $request->expectsJson()) { if (! $request->expectsJson()) {
return route('login'); return route('login');
} }
return null;
} }
} }

View File

@ -28,6 +28,7 @@ namespace App\Http\Middleware;
use Closure; use Closure;
use Illuminate\Auth\AuthenticationException; use Illuminate\Auth\AuthenticationException;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Response;
use LibreNMS\Config; use LibreNMS\Config;
use LibreNMS\Exceptions\InvalidIpException; use LibreNMS\Exceptions\InvalidIpException;
use LibreNMS\Util\IP; use LibreNMS\Util\IP;
@ -48,11 +49,10 @@ class AuthenticateGraph
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure $next * @param \Closure $next
* @param string|null $relative * @param string|null $relative
* @return \Illuminate\Http\Response
* *
* @throws \Illuminate\Auth\AuthenticationException * @throws \Illuminate\Auth\AuthenticationException
*/ */
public function handle($request, Closure $next, $relative = null) public function handle(Request $request, Closure $next, $relative = null): Response
{ {
// if user is logged in, allow // if user is logged in, allow
if (\Auth::check()) { if (\Auth::check()) {

View File

@ -27,7 +27,9 @@ namespace App\Http\Middleware;
use Closure; use Closure;
use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\Request;
use LibreNMS\Util\EnvHelper; use LibreNMS\Util\EnvHelper;
use Symfony\Component\HttpFoundation\Response;
class CheckInstalled class CheckInstalled
{ {
@ -36,9 +38,8 @@ class CheckInstalled
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure $next * @param \Closure $next
* @return mixed
*/ */
public function handle($request, Closure $next) public function handle(Request $request, Closure $next): Response
{ {
$installed = ! config('librenms.install') && file_exists(base_path('.env')); $installed = ! config('librenms.install') && file_exists(base_path('.env'));
$is_install_route = $request->is('install*'); $is_install_route = $request->is('install*');

View File

@ -3,6 +3,8 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Closure; use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class DenyDemoUser class DenyDemoUser
{ {
@ -11,9 +13,8 @@ class DenyDemoUser
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure $next * @param \Closure $next
* @return mixed
*/ */
public function handle($request, Closure $next) public function handle(Request $request, Closure $next): Response
{ {
if ($request->user()->isDemo()) { if ($request->user()->isDemo()) {
return response()->view('auth.deny-demo'); return response()->view('auth.deny-demo');

View File

@ -26,6 +26,8 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Closure; use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class EnforceJson class EnforceJson
{ {
@ -34,9 +36,8 @@ class EnforceJson
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure $next * @param \Closure $next
* @return mixed
*/ */
public function handle($request, Closure $next) public function handle(Request $request, Closure $next): Response
{ {
$request->headers->set('Accept', 'application/json'); $request->headers->set('Accept', 'application/json');

View File

@ -4,8 +4,10 @@ namespace App\Http\Middleware;
use App\Models\User; use App\Models\User;
use Closure; use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use LibreNMS\Authentication\LegacyAuth; use LibreNMS\Authentication\LegacyAuth;
use Symfony\Component\HttpFoundation\Response;
class LegacyExternalAuth class LegacyExternalAuth
{ {
@ -14,9 +16,8 @@ class LegacyExternalAuth
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure $next * @param \Closure $next
* @return mixed
*/ */
public function handle($request, Closure $next, $guard = null) public function handle(Request $request, Closure $next, $guard = null): Response
{ {
if (! Auth::guard($guard)->check()) { if (! Auth::guard($guard)->check()) {
// check for get variables // check for get variables

View File

@ -3,7 +3,9 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Closure; use Closure;
use Illuminate\Http\Request;
use LibreNMS\Config; use LibreNMS\Config;
use Symfony\Component\HttpFoundation\Response;
class LoadUserPreferences class LoadUserPreferences
{ {
@ -12,9 +14,8 @@ class LoadUserPreferences
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure $next * @param \Closure $next
* @return mixed
*/ */
public function handle($request, Closure $next) public function handle(Request $request, Closure $next): Response
{ {
$preferences = ['locale', 'site_style', 'timezone']; $preferences = ['locale', 'site_style', 'timezone'];
$this->loadPreferences($request, $preferences); $this->loadPreferences($request, $preferences);

View File

@ -6,18 +6,14 @@ use App\Providers\RouteServiceProvider;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class RedirectIfAuthenticated class RedirectIfAuthenticated
{ {
/** /**
* Handle an incoming request. * Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null ...$guards
* @return mixed
*/ */
public function handle(Request $request, Closure $next, ...$guards) public function handle(Request $request, Closure $next, string ...$guards): Response
{ {
$guards = empty($guards) ? [null] : $guards; $guards = empty($guards) ? [null] : $guards;

View File

@ -9,9 +9,9 @@ class TrustHosts extends Middleware
/** /**
* Get the host patterns that should be trusted. * Get the host patterns that should be trusted.
* *
* @return array * @return array<int, string|null>
*/ */
public function hosts() public function hosts(): array
{ {
return [ return [
$this->allSubdomainsOfApplicationUrl(), $this->allSubdomainsOfApplicationUrl(),

View File

@ -4,8 +4,10 @@ namespace App\Http\Middleware;
use App\Models\UserPref; use App\Models\UserPref;
use Closure; use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use LibreNMS\Config; use LibreNMS\Config;
use Symfony\Component\HttpFoundation\Response;
class VerifyTwoFactor class VerifyTwoFactor
{ {
@ -14,9 +16,8 @@ class VerifyTwoFactor
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure $next * @param \Closure $next
* @return mixed
*/ */
public function handle($request, Closure $next) public function handle(Request $request, Closure $next): Response
{ {
// check twofactor // check twofactor
if (Config::get('twofactor') === true) { if (Config::get('twofactor') === true) {

View File

@ -5,6 +5,7 @@ namespace App\Http\Middleware;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class VerifyUserEnabled class VerifyUserEnabled
{ {
@ -13,9 +14,8 @@ class VerifyUserEnabled
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/ */
public function handle(Request $request, Closure $next) public function handle(Request $request, Closure $next): Response
{ {
if (Auth::check() && ! Auth::user()->enabled) { if (Auth::check() && ! Auth::user()->enabled) {
Auth::logout(); Auth::logout();

View File

@ -15,7 +15,7 @@ class StoreUserRequest extends FormRequest
* *
* @return bool * @return bool
*/ */
public function authorize() public function authorize(): bool
{ {
return $this->user()->can('create', User::class); return $this->user()->can('create', User::class);
} }
@ -25,7 +25,7 @@ class StoreUserRequest extends FormRequest
* *
* @return array * @return array
*/ */
public function rules() public function rules(): array
{ {
return [ return [
'username' => [ 'username' => [

View File

@ -29,12 +29,12 @@ use Illuminate\Foundation\Http\FormRequest;
class TwoFactorManagementRequest extends FormRequest class TwoFactorManagementRequest extends FormRequest
{ {
public function rules() public function rules(): array
{ {
return []; return [];
} }
public function authorize() public function authorize(): bool
{ {
$user = $this->route()->parameter('user'); $user = $this->route()->parameter('user');
$auth_user = auth()->user(); $auth_user = auth()->user();

View File

@ -4,6 +4,7 @@ namespace App\Http\Requests;
use Hash; use Hash;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
use LibreNMS\Config; use LibreNMS\Config;
class UpdateUserRequest extends FormRequest class UpdateUserRequest extends FormRequest
@ -13,7 +14,7 @@ class UpdateUserRequest extends FormRequest
* *
* @return bool * @return bool
*/ */
public function authorize() public function authorize(): bool
{ {
if ($this->user()->isAdmin()) { if ($this->user()->isAdmin()) {
return true; return true;
@ -35,7 +36,7 @@ class UpdateUserRequest extends FormRequest
* *
* @return array * @return array
*/ */
public function rules() public function rules(): array
{ {
if ($this->user()->isAdmin()) { if ($this->user()->isAdmin()) {
return [ return [

View File

@ -15,9 +15,8 @@ class AlertRule extends JsonResource
* Transform the resource into an array. * Transform the resource into an array.
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
*/ */
public function toArray($request) public function toArray($request): array
{ {
$rule = parent::toArray($request); $rule = parent::toArray($request);
$rule['devices'] = $this->devices->pluck('device_id')->all(); $rule['devices'] = $this->devices->pluck('device_id')->all();

View File

@ -29,7 +29,6 @@ use App\Models\Device;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
@ -48,7 +47,7 @@ class PingCheck implements ShouldQueue
private $wait; private $wait;
private $rrd_tags; private $rrd_tags;
/** @var \Illuminate\Database\Eloquent\Collection List of devices keyed by hostname */ /** @var \Illuminate\Database\Eloquent\Collection<string, Device>|null List of devices keyed by hostname */
private $devices; private $devices;
/** @var array List of device group ids to check */ /** @var array List of device group ids to check */
private $groups = []; private $groups = [];
@ -93,7 +92,7 @@ class PingCheck implements ShouldQueue
* *
* @return void * @return void
*/ */
public function handle() public function handle(): void
{ {
$ping_start = microtime(true); $ping_start = microtime(true);
@ -158,7 +157,6 @@ class PingCheck implements ShouldQueue
return $this->devices; return $this->devices;
} }
/** @var Builder $query */
$query = Device::canPing() $query = Device::canPing()
->select(['devices.device_id', 'hostname', 'overwrite_ip', 'status', 'status_reason', 'last_ping', 'last_ping_timetaken', 'max_depth']) ->select(['devices.device_id', 'hostname', 'overwrite_ip', 'status', 'status_reason', 'last_ping', 'last_ping_timetaken', 'max_depth'])
->orderBy('max_depth'); ->orderBy('max_depth');
@ -168,8 +166,6 @@ class PingCheck implements ShouldQueue
} }
$this->devices = $query->get()->keyBy(function ($device) { $this->devices = $query->get()->keyBy(function ($device) {
/** @var Device $device */
return $device->overwrite_ip ?: $device->hostname; return $device->overwrite_ip ?: $device->hostname;
}); });
@ -235,7 +231,6 @@ class PingCheck implements ShouldQueue
echo "Attempting to record data for $hostname... "; echo "Attempting to record data for $hostname... ";
} }
/** @var Device $device */
$device = $this->devices->get($hostname); $device = $this->devices->get($hostname);
// process the data if this is a standalone device or in the current tier // process the data if this is a standalone device or in the current tier

View File

@ -3,9 +3,9 @@
namespace App\Listeners; namespace App\Listeners;
use App\Models\User; use App\Models\User;
use DB;
use Illuminate\Auth\Events\Login; use Illuminate\Auth\Events\Login;
use Illuminate\Auth\Events\Logout; use Illuminate\Auth\Events\Logout;
use Illuminate\Support\Facades\DB;
use Request; use Request;
class AuthEventListener class AuthEventListener

View File

@ -24,7 +24,7 @@ class CheckAlerts
* @param DevicePolled $event * @param DevicePolled $event
* @return void * @return void
*/ */
public function handle(DevicePolled $event) public function handle(DevicePolled $event): void
{ {
Log::info('#### Start Alerts ####'); Log::info('#### Start Alerts ####');
$start = microtime(true); $start = microtime(true);

View File

@ -22,7 +22,7 @@ class LegacyQueryListener
* @param \Illuminate\Database\Events\StatementPrepared $event * @param \Illuminate\Database\Events\StatementPrepared $event
* @return void * @return void
*/ */
public function handle(StatementPrepared $event) public function handle(StatementPrepared $event): void
{ {
global $PDO_FETCH_ASSOC; global $PDO_FETCH_ASSOC;

View File

@ -5,7 +5,7 @@ namespace App\Listeners;
use App\Events\UserCreated; use App\Events\UserCreated;
use App\Models\Notification; use App\Models\Notification;
use App\Models\NotificationAttrib; use App\Models\NotificationAttrib;
use DB; use Illuminate\Support\Facades\DB;
class MarkNotificationsRead class MarkNotificationsRead
{ {
@ -25,7 +25,7 @@ class MarkNotificationsRead
* @param UserCreated $event * @param UserCreated $event
* @return void * @return void
*/ */
public function handle(UserCreated $event) public function handle(UserCreated $event): void
{ {
$user = $event->user; $user = $event->user;
// mark pre-existing notifications as read // mark pre-existing notifications as read

View File

@ -24,7 +24,7 @@ class QueryDebugListener
* @param \Illuminate\Database\Events\QueryExecuted $query * @param \Illuminate\Database\Events\QueryExecuted $query
* @return void * @return void
*/ */
public function handle(QueryExecuted $query) public function handle(QueryExecuted $query): void
{ {
if (Debug::queryDebugIsEnabled()) { if (Debug::queryDebugIsEnabled()) {
// collect bindings and make them a little more readable // collect bindings and make them a little more readable

View File

@ -24,7 +24,7 @@ class QueryMetricListener
* @param \Illuminate\Database\Events\QueryExecuted $event * @param \Illuminate\Database\Events\QueryExecuted $event
* @return void * @return void
*/ */
public function handle(QueryExecuted $event) public function handle(QueryExecuted $event): void
{ {
$type = strtolower(substr($event->sql, 0, strpos($event->sql, ' '))); $type = strtolower(substr($event->sql, 0, strpos($event->sql, ' ')));
app(MeasurementManager::class)->recordDb(Measurement::make($type, $event->time ? $event->time / 100 : 0)); app(MeasurementManager::class)->recordDb(Measurement::make($type, $event->time ? $event->time / 100 : 0));

View File

@ -25,7 +25,7 @@ class UpdateDeviceGroups
* @param DevicePolled $event * @param DevicePolled $event
* @return void * @return void
*/ */
public function handle(DevicePolled $event) public function handle(DevicePolled $event): void
{ {
Log::info('### Start Device Groups ###'); Log::info('### Start Device Groups ###');
$dg_start = microtime(true); $dg_start = microtime(true);

View File

@ -31,10 +31,8 @@ class CliColorFormatter extends \Monolog\Formatter\LineFormatter
* @var \Console_Color2 * @var \Console_Color2
*/ */
private $console_color; private $console_color;
/**
* @var bool protected bool $console;
*/
private $console;
public function __construct() public function __construct()
{ {
@ -46,15 +44,25 @@ class CliColorFormatter extends \Monolog\Formatter\LineFormatter
); );
$this->console_color = new \Console_Color2(); $this->console_color = new \Console_Color2();
$this->console = \App::runningInConsole(); $this->console = $this->console ?? \App::runningInConsole();
} }
public function format(array $record): string public function format(\Monolog\LogRecord $record): string
{ {
// only format messages where color is enabled // only format messages where color is enabled
if (isset($record['context']['color']) && $record['context']['color']) { if (isset($record->context['color']) && $record->context['color']) {
$record['message'] = $this->console_color->convert($record['message'], $this->console); $context = $record->context;
unset($record['context']['color']); unset($context['color']);
$record = new \Monolog\LogRecord(
$record->datetime,
$record->channel,
$record->level,
$this->console_color->convert($record->message, $this->console),
$context,
$record->extra,
$record->formatted,
);
} }
return parent::format($record); return parent::format($record);

View File

@ -25,27 +25,7 @@
namespace App\Logging; namespace App\Logging;
class NoColorFormatter extends \Monolog\Formatter\LineFormatter class NoColorFormatter extends CliColorFormatter
{ {
/** protected bool $console = false;
* @var \Console_Color2
*/
private $console_color;
public function __construct()
{
parent::__construct(null, null, true, true);
$this->console_color = new \Console_Color2();
}
public function format(array $record): string
{
// only strip messages where color is enabled
if (isset($record['context']['color']) && $record['context']['color']) {
$record['message'] = $this->console_color->convert($record['message'], false);
unset($record['context']['color']);
}
return parent::format($record);
}
} }

View File

@ -31,11 +31,9 @@ use Spatie\FlareClient\Report;
class AddGitInformation implements \Spatie\FlareClient\FlareMiddleware\FlareMiddleware class AddGitInformation implements \Spatie\FlareClient\FlareMiddleware\FlareMiddleware
{ {
/** /**
* @param \Spatie\FlareClient\Report $report
* @param callable $next next in the pipeline
* @return mixed * @return mixed
*/ */
public function handle(Report $report, $next) public function handle(Report $report, \Closure $next)
{ {
$git = Git::make(180); $git = Git::make(180);

View File

@ -32,11 +32,9 @@ class CleanContext implements \Spatie\FlareClient\FlareMiddleware\FlareMiddlewar
/** /**
* Middleware to remove sensitive data from the context. * Middleware to remove sensitive data from the context.
* *
* @param \Spatie\FlareClient\Report $report
* @param callable $next
* @return mixed * @return mixed
*/ */
public function handle(Report $report, $next) public function handle(Report $report, \Closure $next)
{ {
try { try {
$report->setApplicationPath(''); $report->setApplicationPath('');

View File

@ -33,11 +33,9 @@ class SetGroups implements \Spatie\FlareClient\FlareMiddleware\FlareMiddleware
/** /**
* Middleware to set LibreNMS and Tools grouping data * Middleware to set LibreNMS and Tools grouping data
* *
* @param \Spatie\FlareClient\Report $report
* @param callable $next
* @return mixed * @return mixed
*/ */
public function handle(Report $report, $next) public function handle(Report $report, \Closure $next)
{ {
try { try {
$version = Version::get(); $version = Version::get();

View File

@ -30,11 +30,9 @@ class SetInstanceId implements \Spatie\FlareClient\FlareMiddleware\FlareMiddlewa
/** /**
* Middleware to add instance ID, piggybacks on the "user id" feature. * Middleware to add instance ID, piggybacks on the "user id" feature.
* *
* @param \Spatie\FlareClient\Report $report
* @param callable $next
* @return mixed * @return mixed
*/ */
public function handle(Report $report, $next) public function handle(Report $report, \Closure $next)
{ {
try { try {
$user = $report->getGroup('user', []); $user = $report->getGroup('user', []);

View File

@ -28,10 +28,10 @@ namespace App\Models;
use Carbon\Carbon; use Carbon\Carbon;
use Carbon\CarbonImmutable; use Carbon\CarbonImmutable;
use Date; use Date;
use DB;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Database\Eloquent\Relations\MorphToMany;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use LibreNMS\Enum\AlertScheduleStatus; use LibreNMS\Enum\AlertScheduleStatus;

View File

@ -2,12 +2,12 @@
namespace App\Models; namespace App\Models;
use DB;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use LibreNMS\Util\Rewrite; use LibreNMS\Util\Rewrite;
use Permissions; use Permissions;

View File

@ -45,16 +45,15 @@ class AlertNotification extends Notification
->action('Acknowledge', 'alert.acknowledge') ->action('Acknowledge', 'alert.acknowledge')
->action('View', 'alert.view') ->action('View', 'alert.view')
->options(['TTL' => 2000]) ->options(['TTL' => 2000])
->data(['id' => $alert_id]) ->data(['id' => $alert_id]);
// ->badge() // ->badge()
// ->dir() // ->dir()
// ->image() // ->image()
// ->lang() // ->lang()
// ->renotify() // ->renotify()
// ->requireInteraction() // ->requireInteraction()
// ->tag() // ->tag()
// ->vibrate() // ->vibrate()
;
} }
/** /**

View File

@ -31,7 +31,7 @@ use Rrd;
class MempoolObserver extends ModuleModelObserver class MempoolObserver extends ModuleModelObserver
{ {
/** @param \App\Models\Mempool $model */ /** @param \App\Models\Mempool $model */
public function updated($model) public function updated($model): void
{ {
parent::updated($model); parent::updated($model);

View File

@ -57,7 +57,7 @@ class ModuleModelObserver
/** /**
* @param Eloquent $model * @param Eloquent $model
*/ */
public function updated($model) public function updated($model): void
{ {
d_echo('Updated data:', 'U'); d_echo('Updated data:', 'U');
d_echo($model->getDirty()); d_echo($model->getDirty());
@ -66,7 +66,7 @@ class ModuleModelObserver
/** /**
* @param Eloquent $model * @param Eloquent $model
*/ */
public function created($model) public function created($model): void
{ {
echo '+'; echo '+';
} }
@ -74,7 +74,7 @@ class ModuleModelObserver
/** /**
* @param Eloquent $model * @param Eloquent $model
*/ */
public function deleted($model) public function deleted($model): void
{ {
echo '-'; echo '-';
} }

View File

@ -14,7 +14,7 @@ class PackageObserver
* @param \App\Models\Package $package * @param \App\Models\Package $package
* @return void * @return void
*/ */
public function created(Package $package) public function created(Package $package): void
{ {
Eventlog::log('Package installed: ' . $package, $package->device_id, 'package', 3); Eventlog::log('Package installed: ' . $package, $package->device_id, 'package', 3);
Log::info("+ $package"); Log::info("+ $package");
@ -26,7 +26,7 @@ class PackageObserver
* @param \App\Models\Package $package * @param \App\Models\Package $package
* @return void * @return void
*/ */
public function updated(Package $package) public function updated(Package $package): void
{ {
if ($package->getOriginal('version') !== $package->version || $package->getOriginal('build') !== $package->build) { if ($package->getOriginal('version') !== $package->version || $package->getOriginal('build') !== $package->build) {
$message = $package . ' from ' . $package->getOriginal('version') . ($package->getOriginal('build') ? '-' . $package->getOriginal('build') : ''); $message = $package . ' from ' . $package->getOriginal('version') . ($package->getOriginal('build') ? '-' . $package->getOriginal('build') : '');
@ -41,7 +41,7 @@ class PackageObserver
* @param \App\Models\Package $package * @param \App\Models\Package $package
* @return void * @return void
*/ */
public function deleted(Package $package) public function deleted(Package $package): void
{ {
Eventlog::log('Package removed: ' . $package, $package->device_id, 'package', 3); Eventlog::log('Package removed: ' . $package, $package->device_id, 'package', 3);
Log::info("- $package"); Log::info("- $package");
@ -53,7 +53,7 @@ class PackageObserver
* @param \App\Models\Package $package * @param \App\Models\Package $package
* @return void * @return void
*/ */
public function restored(Package $package) public function restored(Package $package): void
{ {
// //
} }
@ -64,7 +64,7 @@ class PackageObserver
* @param \App\Models\Package $package * @param \App\Models\Package $package
* @return void * @return void
*/ */
public function forceDeleted(Package $package) public function forceDeleted(Package $package): void
{ {
// //
} }

View File

@ -12,7 +12,7 @@ class ServiceObserver
* @param \App\Models\Service $service * @param \App\Models\Service $service
* @return void * @return void
*/ */
public function created(Service $service) public function created(Service $service): void
{ {
// //
} }
@ -23,7 +23,7 @@ class ServiceObserver
* @param \App\Models\Service $service * @param \App\Models\Service $service
* @return void * @return void
*/ */
public function updated(Service $service) public function updated(Service $service): void
{ {
// //
} }
@ -34,7 +34,7 @@ class ServiceObserver
* @param \App\Models\Service $service * @param \App\Models\Service $service
* @return void * @return void
*/ */
public function deleted(Service $service) public function deleted(Service $service): void
{ {
// //
} }
@ -45,7 +45,7 @@ class ServiceObserver
* @param \App\Models\Service $service * @param \App\Models\Service $service
* @return void * @return void
*/ */
public function restored(Service $service) public function restored(Service $service): void
{ {
// //
} }
@ -56,7 +56,7 @@ class ServiceObserver
* @param \App\Models\Service $service * @param \App\Models\Service $service
* @return void * @return void
*/ */
public function forceDeleted(Service $service) public function forceDeleted(Service $service): void
{ {
// //
} }

View File

@ -12,7 +12,7 @@ class UserObserver
* @param \App\Models\User $user * @param \App\Models\User $user
* @return void * @return void
*/ */
public function deleted(User $user) public function deleted(User $user): void
{ {
$user->apiTokens()->delete(); $user->apiTokens()->delete();
$user->notificationAttribs()->delete(); $user->notificationAttribs()->delete();

View File

@ -24,9 +24,8 @@ class DashboardPolicy
* Determine whether the user can view any dashboard. * Determine whether the user can view any dashboard.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function viewAny(User $user) public function viewAny(User $user): bool
{ {
return true; return true;
} }
@ -36,9 +35,8 @@ class DashboardPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Dashboard $dashboard * @param \App\Models\Dashboard $dashboard
* @return mixed
*/ */
public function view(User $user, Dashboard $dashboard) public function view(User $user, Dashboard $dashboard): bool
{ {
return $dashboard->user_id == $user->user_id || $dashboard->access > 0; return $dashboard->user_id == $user->user_id || $dashboard->access > 0;
} }
@ -47,9 +45,8 @@ class DashboardPolicy
* Determine whether the user can create dashboards. * Determine whether the user can create dashboards.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function create(User $user) public function create(User $user): bool
{ {
return true; return true;
} }
@ -59,9 +56,8 @@ class DashboardPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Dashboard $dashboard * @param \App\Models\Dashboard $dashboard
* @return mixed
*/ */
public function update(User $user, Dashboard $dashboard) public function update(User $user, Dashboard $dashboard): bool
{ {
return $dashboard->user_id == $user->user_id || $dashboard->access > 1; return $dashboard->user_id == $user->user_id || $dashboard->access > 1;
} }
@ -71,9 +67,8 @@ class DashboardPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Dashboard $dashboard * @param \App\Models\Dashboard $dashboard
* @return mixed
*/ */
public function delete(User $user, Dashboard $dashboard) public function delete(User $user, Dashboard $dashboard): bool
{ {
return $dashboard->user_id == $user->user_id || $user->isAdmin(); return $dashboard->user_id == $user->user_id || $user->isAdmin();
} }
@ -84,7 +79,6 @@ class DashboardPolicy
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Dashboard $dashboard * @param \App\Models\Dashboard $dashboard
* @param int $target_user_id * @param int $target_user_id
* @return bool
*/ */
public function copy(User $user, Dashboard $dashboard, int $target_user_id): bool public function copy(User $user, Dashboard $dashboard, int $target_user_id): bool
{ {

View File

@ -21,9 +21,8 @@ class DeviceGroupPolicy
* Determine whether the user can manage device groups. * Determine whether the user can manage device groups.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return bool
*/ */
public function manage(User $user) public function manage(User $user): bool
{ {
return false; return false;
} }
@ -33,9 +32,8 @@ class DeviceGroupPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\DeviceGroup $deviceGroup * @param \App\Models\DeviceGroup $deviceGroup
* @return mixed
*/ */
public function view(User $user, DeviceGroup $deviceGroup) public function view(User $user, DeviceGroup $deviceGroup): bool
{ {
return false; return false;
} }
@ -44,9 +42,8 @@ class DeviceGroupPolicy
* Determine whether the user can view any device group. * Determine whether the user can view any device group.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function viewAny(User $user) public function viewAny(User $user): bool
{ {
return false; return false;
} }
@ -55,9 +52,8 @@ class DeviceGroupPolicy
* Determine whether the user can create device groups. * Determine whether the user can create device groups.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function create(User $user) public function create(User $user): bool
{ {
return false; return false;
} }
@ -67,9 +63,8 @@ class DeviceGroupPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\DeviceGroup $deviceGroup * @param \App\Models\DeviceGroup $deviceGroup
* @return mixed
*/ */
public function update(User $user, DeviceGroup $deviceGroup) public function update(User $user, DeviceGroup $deviceGroup): bool
{ {
return false; return false;
} }
@ -79,9 +74,8 @@ class DeviceGroupPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\DeviceGroup $deviceGroup * @param \App\Models\DeviceGroup $deviceGroup
* @return mixed
*/ */
public function delete(User $user, DeviceGroup $deviceGroup) public function delete(User $user, DeviceGroup $deviceGroup): bool
{ {
return false; return false;
} }
@ -91,9 +85,8 @@ class DeviceGroupPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\DeviceGroup $deviceGroup * @param \App\Models\DeviceGroup $deviceGroup
* @return mixed
*/ */
public function restore(User $user, DeviceGroup $deviceGroup) public function restore(User $user, DeviceGroup $deviceGroup): bool
{ {
return false; return false;
} }
@ -103,9 +96,8 @@ class DeviceGroupPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\DeviceGroup $deviceGroup * @param \App\Models\DeviceGroup $deviceGroup
* @return mixed
*/ */
public function forceDelete(User $user, DeviceGroup $deviceGroup) public function forceDelete(User $user, DeviceGroup $deviceGroup): bool
{ {
return false; return false;
} }

View File

@ -15,9 +15,8 @@ class DevicePolicy
* Determine whether the user can view any devices. * Determine whether the user can view any devices.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function viewAny(User $user) public function viewAny(User $user): bool
{ {
return $user->hasGlobalRead(); return $user->hasGlobalRead();
} }
@ -27,9 +26,8 @@ class DevicePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Device $device * @param \App\Models\Device $device
* @return mixed
*/ */
public function view(User $user, Device $device) public function view(User $user, Device $device): bool
{ {
return $this->viewAny($user) || Permissions::canAccessDevice($device, $user); return $this->viewAny($user) || Permissions::canAccessDevice($device, $user);
} }
@ -38,9 +36,8 @@ class DevicePolicy
* Determine whether the user can create devices. * Determine whether the user can create devices.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function create(User $user) public function create(User $user): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }
@ -50,9 +47,8 @@ class DevicePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Device $device * @param \App\Models\Device $device
* @return mixed
*/ */
public function update(User $user, Device $device) public function update(User $user, Device $device): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -62,9 +58,8 @@ class DevicePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Device $device * @param \App\Models\Device $device
* @return mixed
*/ */
public function delete(User $user, Device $device) public function delete(User $user, Device $device): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -74,9 +69,8 @@ class DevicePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Device $device * @param \App\Models\Device $device
* @return mixed
*/ */
public function restore(User $user, Device $device) public function restore(User $user, Device $device): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }
@ -86,9 +80,8 @@ class DevicePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Device $device * @param \App\Models\Device $device
* @return mixed
*/ */
public function forceDelete(User $user, Device $device) public function forceDelete(User $user, Device $device): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -99,9 +92,8 @@ class DevicePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Device $device * @param \App\Models\Device $device
* @return mixed
*/ */
public function showConfig(User $user, Device $device) public function showConfig(User $user, Device $device): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -111,9 +103,8 @@ class DevicePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Device $device * @param \App\Models\Device $device
* @return mixed
*/ */
public function updateNotes(User $user, Device $device) public function updateNotes(User $user, Device $device): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }

View File

@ -14,9 +14,8 @@ class PollerClusterPolicy
* Determine whether the user can view any poller clusters. * Determine whether the user can view any poller clusters.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function viewAny(User $user) public function viewAny(User $user): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }
@ -26,22 +25,20 @@ class PollerClusterPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\PollerCluster $pollerCluster * @param \App\Models\PollerCluster $pollerCluster
* @return mixed
*/ */
public function view(User $user, PollerCluster $pollerCluster) public function view(User $user, PollerCluster $pollerCluster): bool
{ {
// return $this->viewAny($user);
} }
/** /**
* Determine whether the user can create poller clusters. * Determine whether the user can create poller clusters.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function create(User $user) public function create(User $user): bool
{ {
// return $this->viewAny($user);
} }
/** /**
@ -49,9 +46,8 @@ class PollerClusterPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\PollerCluster $pollerCluster * @param \App\Models\PollerCluster $pollerCluster
* @return mixed
*/ */
public function update(User $user, PollerCluster $pollerCluster) public function update(User $user, PollerCluster $pollerCluster): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -61,9 +57,8 @@ class PollerClusterPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\PollerCluster $pollerCluster * @param \App\Models\PollerCluster $pollerCluster
* @return mixed
*/ */
public function delete(User $user, PollerCluster $pollerCluster) public function delete(User $user, PollerCluster $pollerCluster): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -73,11 +68,10 @@ class PollerClusterPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\PollerCluster $pollerCluster * @param \App\Models\PollerCluster $pollerCluster
* @return mixed
*/ */
public function restore(User $user, PollerCluster $pollerCluster) public function restore(User $user, PollerCluster $pollerCluster): bool
{ {
// return $this->viewAny($user);
} }
/** /**
@ -85,20 +79,18 @@ class PollerClusterPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\PollerCluster $pollerCluster * @param \App\Models\PollerCluster $pollerCluster
* @return mixed
*/ */
public function forceDelete(User $user, PollerCluster $pollerCluster) public function forceDelete(User $user, PollerCluster $pollerCluster): bool
{ {
// return $this->viewAny($user);
} }
/** /**
* Determine whether the user can manage the poller cluster. * Determine whether the user can manage the poller cluster.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function manage(User $user) public function manage(User $user): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }

View File

@ -15,9 +15,8 @@ class PortPolicy
* Determine whether the user can view any ports. * Determine whether the user can view any ports.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function viewAny(User $user) public function viewAny(User $user): bool
{ {
return $user->hasGlobalRead(); return $user->hasGlobalRead();
} }
@ -27,9 +26,8 @@ class PortPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Port $port * @param \App\Models\Port $port
* @return mixed
*/ */
public function view(User $user, Port $port) public function view(User $user, Port $port): bool
{ {
return $this->viewAny($user) || Permissions::canAccessDevice($port->device_id, $user) || Permissions::canAccessPort($port, $user); return $this->viewAny($user) || Permissions::canAccessDevice($port->device_id, $user) || Permissions::canAccessPort($port, $user);
} }
@ -38,9 +36,8 @@ class PortPolicy
* Determine whether the user can create ports. * Determine whether the user can create ports.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function create(User $user) public function create(User $user): bool
{ {
return false; return false;
} }
@ -50,9 +47,8 @@ class PortPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Port $port * @param \App\Models\Port $port
* @return mixed
*/ */
public function update(User $user, Port $port) public function update(User $user, Port $port): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }
@ -62,9 +58,8 @@ class PortPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Port $port * @param \App\Models\Port $port
* @return mixed
*/ */
public function delete(User $user, Port $port) public function delete(User $user, Port $port): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }
@ -74,9 +69,8 @@ class PortPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Port $port * @param \App\Models\Port $port
* @return mixed
*/ */
public function restore(User $user, Port $port) public function restore(User $user, Port $port): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }
@ -86,9 +80,8 @@ class PortPolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\Port $port * @param \App\Models\Port $port
* @return mixed
*/ */
public function forceDelete(User $user, Port $port) public function forceDelete(User $user, Port $port): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }

View File

@ -14,9 +14,8 @@ class ServiceTemplatePolicy
* Determine whether the user can view any service templates. * Determine whether the user can view any service templates.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function viewAny(User $user) public function viewAny(User $user): bool
{ {
return $user->hasGlobalRead(); return $user->hasGlobalRead();
} }
@ -26,9 +25,8 @@ class ServiceTemplatePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\ServiceTemplate $template * @param \App\Models\ServiceTemplate $template
* @return mixed
*/ */
public function view(User $user, ServiceTemplate $template) public function view(User $user, ServiceTemplate $template): bool
{ {
return $this->viewAny($user); return $this->viewAny($user);
} }
@ -37,9 +35,8 @@ class ServiceTemplatePolicy
* Determine whether the user can create service templates. * Determine whether the user can create service templates.
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @return mixed
*/ */
public function create(User $user) public function create(User $user): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }
@ -49,9 +46,8 @@ class ServiceTemplatePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\ServiceTemplate $template * @param \App\Models\ServiceTemplate $template
* @return mixed
*/ */
public function update(User $user, ServiceTemplate $template) public function update(User $user, ServiceTemplate $template): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -61,9 +57,8 @@ class ServiceTemplatePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\ServiceTemplate $template * @param \App\Models\ServiceTemplate $template
* @return mixed
*/ */
public function delete(User $user, ServiceTemplate $template) public function delete(User $user, ServiceTemplate $template): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -73,9 +68,8 @@ class ServiceTemplatePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\ServiceTemplate $template * @param \App\Models\ServiceTemplate $template
* @return mixed
*/ */
public function restore(User $user, ServiceTemplate $template) public function restore(User $user, ServiceTemplate $template): bool
{ {
return $user->hasGlobalAdmin(); return $user->hasGlobalAdmin();
} }
@ -85,9 +79,8 @@ class ServiceTemplatePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\ServiceTemplate $template * @param \App\Models\ServiceTemplate $template
* @return mixed
*/ */
public function forceDelete(User $user, ServiceTemplate $template) public function forceDelete(User $user, ServiceTemplate $template): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -98,9 +91,8 @@ class ServiceTemplatePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\ServiceTemplate $template * @param \App\Models\ServiceTemplate $template
* @return mixed
*/ */
public function showConfig(User $user, ServiceTemplate $template) public function showConfig(User $user, ServiceTemplate $template): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -110,9 +102,8 @@ class ServiceTemplatePolicy
* *
* @param \App\Models\User $user * @param \App\Models\User $user
* @param \App\Models\ServiceTemplate $template * @param \App\Models\ServiceTemplate $template
* @return mixed
*/ */
public function updateNotes(User $user, ServiceTemplate $template) public function updateNotes(User $user, ServiceTemplate $template): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }

View File

@ -13,9 +13,8 @@ class UserPolicy
* Determine whether the user can manage users. * Determine whether the user can manage users.
* *
* @param User $user * @param User $user
* @return bool
*/ */
public function manage(User $user) public function manage(User $user): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -25,9 +24,8 @@ class UserPolicy
* *
* @param User $user * @param User $user
* @param User $target * @param User $target
* @return bool
*/ */
public function view(User $user, User $target) public function view(User $user, User $target): bool
{ {
return $user->isAdmin() || $target->is($user); return $user->isAdmin() || $target->is($user);
} }
@ -36,9 +34,8 @@ class UserPolicy
* Determine whether the user can view any user. * Determine whether the user can view any user.
* *
* @param User $user * @param User $user
* @return mixed
*/ */
public function viewAny(User $user) public function viewAny(User $user): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -47,9 +44,8 @@ class UserPolicy
* Determine whether the user can create users. * Determine whether the user can create users.
* *
* @param User $user * @param User $user
* @return bool
*/ */
public function create(User $user) public function create(User $user): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }
@ -59,9 +55,8 @@ class UserPolicy
* *
* @param User $user * @param User $user
* @param User $target * @param User $target
* @return bool
*/ */
public function update(User $user, User $target) public function update(User $user, User $target): bool
{ {
return $user->isAdmin() || $target->is($user); return $user->isAdmin() || $target->is($user);
} }
@ -71,9 +66,8 @@ class UserPolicy
* *
* @param User $user * @param User $user
* @param User $target * @param User $target
* @return bool
*/ */
public function delete(User $user, User $target) public function delete(User $user, User $target): bool
{ {
return $user->isAdmin(); return $user->isAdmin();
} }

View File

@ -20,7 +20,7 @@ class AppServiceProvider extends ServiceProvider
* *
* @return void * @return void
*/ */
public function register() public function register(): void
{ {
$this->registerFacades(); $this->registerFacades();
$this->registerGeocoder(); $this->registerGeocoder();
@ -48,7 +48,7 @@ class AppServiceProvider extends ServiceProvider
* *
* @return void * @return void
*/ */
public function boot() public function boot(): void
{ {
\Illuminate\Pagination\Paginator::useBootstrap(); \Illuminate\Pagination\Paginator::useBootstrap();

Some files were not shown because too many files have changed in this diff Show More