Fix broken UI when trying to resolve an undefined `$macro$` (#5201)
fixes https://github.com/Icinga/icingaweb2/issues/5168
This commit is contained in:
commit
b370d9bd9f
|
@ -62,22 +62,35 @@ class Macro
|
|||
*/
|
||||
public static function resolveMacro($macro, $object)
|
||||
{
|
||||
if (isset(self::$icingaMacros[$macro]) && isset($object->{self::$icingaMacros[$macro]})) {
|
||||
if (isset(self::$icingaMacros[$macro], $object->{self::$icingaMacros[$macro]})) {
|
||||
return $object->{self::$icingaMacros[$macro]};
|
||||
}
|
||||
|
||||
try {
|
||||
$value = $object->$macro;
|
||||
} catch (Exception $e) {
|
||||
$objectName = $object->getName();
|
||||
if ($object instanceof Service) {
|
||||
$objectName = $object->getHost()->getName() . '!' . $objectName;
|
||||
if ($object instanceof MonitoredObject) {
|
||||
$objectName = $object instanceof Service
|
||||
? $object->getHost()->getName() . '!' . $object->getName()
|
||||
: $object->getName();
|
||||
} else {
|
||||
$host = 'host_name';
|
||||
$service = 'service_description';
|
||||
|
||||
$objectName = isset($object->$service)
|
||||
? $object->$service . '!' . $object->$host
|
||||
: $object->$host;
|
||||
}
|
||||
|
||||
$value = null;
|
||||
Logger::debug('Unable to resolve macro "%s" on object "%s". An error occured: %s', $macro, $objectName, $e);
|
||||
Logger::debug(
|
||||
'Unable to resolve macro "%s" on object "%s". An error occurred: %s',
|
||||
$macro,
|
||||
$objectName,
|
||||
$e
|
||||
);
|
||||
}
|
||||
|
||||
return $value !== null ? $value : $macro;
|
||||
return $value ?? $macro;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -400,11 +400,6 @@ parameters:
|
|||
count: 2
|
||||
path: library/Icinga/Web/Session/PhpSession.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$timestamp of function date expects int, int\\|false given\\.$#"
|
||||
count: 1
|
||||
path: library/Icinga/Web/Widget/Chart/HistoryColorGrid.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$str of function strtolower expects string, mixed given\\.$#"
|
||||
count: 1
|
||||
|
|
|
@ -620,11 +620,6 @@ parameters:
|
|||
count: 1
|
||||
path: modules/setup/library/Setup/Web/Form/Validator/TokenValidator.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$filename of function file_exists expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: modules/test/application/clicommands/PhpCommand.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$callback of function ob_start expects callable\\(\\)\\: mixed, null given\\.$#"
|
||||
count: 1
|
||||
|
|
|
@ -430,6 +430,11 @@ parameters:
|
|||
count: 1
|
||||
path: application/controllers/ConfigController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$query of method Icinga\\\\Web\\\\Controller\\:\\:setupPaginationControl\\(\\) expects Icinga\\\\Data\\\\QueryInterface, null given\\.$#"
|
||||
count: 1
|
||||
path: application/controllers/ConfigController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$name of class Icinga\\\\Application\\\\Modules\\\\Module constructor expects string, mixed given\\.$#"
|
||||
count: 1
|
||||
|
@ -730,6 +735,11 @@ parameters:
|
|||
count: 1
|
||||
path: application/controllers/ListController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$query of method Icinga\\\\Web\\\\Controller\\:\\:setupPaginationControl\\(\\) expects Icinga\\\\Data\\\\QueryInterface, null given\\.$#"
|
||||
count: 1
|
||||
path: application/controllers/ListController.php
|
||||
|
||||
-
|
||||
message: "#^Method Icinga\\\\Controllers\\\\ManageUserDevicesController\\:\\:deleteAction\\(\\) has no return type specified\\.$#"
|
||||
count: 1
|
||||
|
@ -950,6 +960,11 @@ parameters:
|
|||
count: 1
|
||||
path: application/controllers/RoleController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$query of method Icinga\\\\Web\\\\Controller\\:\\:setupPaginationControl\\(\\) expects Icinga\\\\Data\\\\QueryInterface, null given\\.$#"
|
||||
count: 1
|
||||
path: application/controllers/RoleController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$username of class Icinga\\\\User constructor expects string, mixed given\\.$#"
|
||||
count: 1
|
||||
|
@ -2552,6 +2567,11 @@ parameters:
|
|||
|
||||
-
|
||||
message: "#^Access to an undefined property object\\:\\:\\$permissions\\.$#"
|
||||
count: 2
|
||||
path: application/forms/Security/RoleForm.php
|
||||
|
||||
-
|
||||
message: "#^Access to an undefined property object\\:\\:\\$refusals\\.$#"
|
||||
count: 1
|
||||
path: application/forms/Security/RoleForm.php
|
||||
|
||||
|
@ -2565,16 +2585,6 @@ parameters:
|
|||
count: 1
|
||||
path: application/forms/Security/RoleForm.php
|
||||
|
||||
-
|
||||
message: "#^Access to an undefined property object\\|object\\:\\:\\$permissions\\.$#"
|
||||
count: 1
|
||||
path: application/forms/Security/RoleForm.php
|
||||
|
||||
-
|
||||
message: "#^Access to an undefined property object\\|object\\:\\:\\$refusals\\.$#"
|
||||
count: 1
|
||||
path: application/forms/Security/RoleForm.php
|
||||
|
||||
-
|
||||
message: "#^Call to an undefined method Icinga\\\\Repository\\\\Repository\\:\\:update\\(\\)\\.$#"
|
||||
count: 1
|
||||
|
@ -9046,7 +9056,7 @@ parameters:
|
|||
path: library/Icinga/File/Pdf.php
|
||||
|
||||
-
|
||||
message: "#^Cannot access offset 0 on array\\<mixed, mixed\\>\\|false\\.$#"
|
||||
message: "#^Cannot access offset 0 on array\\<mixed\\>\\|false\\.$#"
|
||||
count: 1
|
||||
path: library/Icinga/File/Storage/LocalFileStorage.php
|
||||
|
||||
|
@ -11405,11 +11415,6 @@ parameters:
|
|||
count: 1
|
||||
path: library/Icinga/Util/DirectoryIterator.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$array of class ArrayIterator constructor expects array\\<int, string\\>, array\\<int, string\\>\\|false given\\.$#"
|
||||
count: 1
|
||||
path: library/Icinga/Util/DirectoryIterator.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$path of static method Icinga\\\\Util\\\\DirectoryIterator\\:\\:isReadable\\(\\) expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
|
@ -16855,11 +16860,6 @@ parameters:
|
|||
count: 3
|
||||
path: modules/migrate/library/Migrate/Config/UserDomainMigration.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$filter of static method Icinga\\\\Data\\\\Filter\\\\Filter\\:\\:where\\(\\) expects string, int\\|string given\\.$#"
|
||||
count: 3
|
||||
path: modules/migrate/library/Migrate/Config/UserDomainMigration.php
|
||||
|
||||
-
|
||||
message: "#^Property Icinga\\\\Module\\\\Migrate\\\\Config\\\\UserDomainMigration\\:\\:\\$fromDomain has no type specified\\.$#"
|
||||
count: 1
|
||||
|
@ -17665,6 +17665,11 @@ parameters:
|
|||
count: 1
|
||||
path: modules/monitoring/application/controllers/ShowController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$query of method Icinga\\\\Web\\\\Controller\\:\\:setupPaginationControl\\(\\) expects Icinga\\\\Data\\\\QueryInterface, null given\\.$#"
|
||||
count: 1
|
||||
path: modules/monitoring/application/controllers/ShowController.php
|
||||
|
||||
-
|
||||
message: "#^Call to an undefined method Icinga\\\\Web\\\\View\\:\\:filteredUrl\\(\\)\\.$#"
|
||||
count: 2
|
||||
|
@ -23915,6 +23920,11 @@ parameters:
|
|||
count: 1
|
||||
path: modules/monitoring/library/Monitoring/Web/Controller/MonitoredObjectController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$query of method Icinga\\\\Web\\\\Controller\\:\\:setupPaginationControl\\(\\) expects Icinga\\\\Data\\\\QueryInterface, null given\\.$#"
|
||||
count: 1
|
||||
path: modules/monitoring/library/Monitoring/Web/Controller/MonitoredObjectController.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#"
|
||||
count: 1
|
||||
|
@ -25545,6 +25555,11 @@ parameters:
|
|||
count: 1
|
||||
path: modules/test/application/clicommands/PhpCommand.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$filename of function file_exists expects string, string\\|false given\\.$#"
|
||||
count: 1
|
||||
path: modules/test/application/clicommands/PhpCommand.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#1 \\$path of function realpath expects string, mixed given\\.$#"
|
||||
count: 1
|
||||
|
|
Loading…
Reference in New Issue