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)
|
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]};
|
return $object->{self::$icingaMacros[$macro]};
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$value = $object->$macro;
|
$value = $object->$macro;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$objectName = $object->getName();
|
if ($object instanceof MonitoredObject) {
|
||||||
if ($object instanceof Service) {
|
$objectName = $object instanceof Service
|
||||||
$objectName = $object->getHost()->getName() . '!' . $objectName;
|
? $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;
|
$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
|
count: 2
|
||||||
path: library/Icinga/Web/Session/PhpSession.php
|
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\\.$#"
|
message: "#^Parameter \\#1 \\$str of function strtolower expects string, mixed given\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
|
|
@ -620,11 +620,6 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: modules/setup/library/Setup/Web/Form/Validator/TokenValidator.php
|
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\\.$#"
|
message: "#^Parameter \\#1 \\$callback of function ob_start expects callable\\(\\)\\: mixed, null given\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
|
|
@ -430,6 +430,11 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: application/controllers/ConfigController.php
|
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\\.$#"
|
message: "#^Parameter \\#2 \\$name of class Icinga\\\\Application\\\\Modules\\\\Module constructor expects string, mixed given\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
@ -730,6 +735,11 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: application/controllers/ListController.php
|
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\\.$#"
|
message: "#^Method Icinga\\\\Controllers\\\\ManageUserDevicesController\\:\\:deleteAction\\(\\) has no return type specified\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
@ -950,6 +960,11 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: application/controllers/RoleController.php
|
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\\.$#"
|
message: "#^Parameter \\#1 \\$username of class Icinga\\\\User constructor expects string, mixed given\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
@ -2552,6 +2567,11 @@ parameters:
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Access to an undefined property object\\:\\:\\$permissions\\.$#"
|
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
|
count: 1
|
||||||
path: application/forms/Security/RoleForm.php
|
path: application/forms/Security/RoleForm.php
|
||||||
|
|
||||||
|
@ -2565,16 +2585,6 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: application/forms/Security/RoleForm.php
|
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\\(\\)\\.$#"
|
message: "#^Call to an undefined method Icinga\\\\Repository\\\\Repository\\:\\:update\\(\\)\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
@ -9046,7 +9056,7 @@ parameters:
|
||||||
path: library/Icinga/File/Pdf.php
|
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
|
count: 1
|
||||||
path: library/Icinga/File/Storage/LocalFileStorage.php
|
path: library/Icinga/File/Storage/LocalFileStorage.php
|
||||||
|
|
||||||
|
@ -11405,11 +11415,6 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: library/Icinga/Util/DirectoryIterator.php
|
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\\.$#"
|
message: "#^Parameter \\#1 \\$path of static method Icinga\\\\Util\\\\DirectoryIterator\\:\\:isReadable\\(\\) expects string, string\\|false given\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
@ -16855,11 +16860,6 @@ parameters:
|
||||||
count: 3
|
count: 3
|
||||||
path: modules/migrate/library/Migrate/Config/UserDomainMigration.php
|
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\\.$#"
|
message: "#^Property Icinga\\\\Module\\\\Migrate\\\\Config\\\\UserDomainMigration\\:\\:\\$fromDomain has no type specified\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
@ -17665,6 +17665,11 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: modules/monitoring/application/controllers/ShowController.php
|
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\\(\\)\\.$#"
|
message: "#^Call to an undefined method Icinga\\\\Web\\\\View\\:\\:filteredUrl\\(\\)\\.$#"
|
||||||
count: 2
|
count: 2
|
||||||
|
@ -23915,6 +23920,11 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: modules/monitoring/library/Monitoring/Web/Controller/MonitoredObjectController.php
|
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\\.$#"
|
message: "#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
@ -25545,6 +25555,11 @@ parameters:
|
||||||
count: 1
|
count: 1
|
||||||
path: modules/test/application/clicommands/PhpCommand.php
|
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\\.$#"
|
message: "#^Parameter \\#1 \\$path of function realpath expects string, mixed given\\.$#"
|
||||||
count: 1
|
count: 1
|
||||||
|
|
Loading…
Reference in New Issue