`ReflectionProperty::setAccessible()` has had no effect since PHP 8.1, as all
properties are accessible via reflection by default. The method is deprecated
as of PHP 8.5.
Since PHP 8.4 implicitly nullable parameter types are deprecated.
Normalize scoped PHPDoc for nullable-parameter updates: use `?Type` instead of
`Type|null` and remove column alignment.
Co-authored-by: "Eric Lippmann <eric.lippmann@icinga.com>"
* Auth: Add method `assertColumnRestrictions`
* ObjectSuggestions: Do not suggest protected variables
`assertColumnRestrictions` does not allow to use them
anymore, hence we should not suggest them in searches
as well to not to let the user run into an error by
accepting a suggestion. Though, when fetching values
as well, we still have to obfuscate, otherwise protected
vars won't show up in details anymore.
* Introduce Icinga\Module\Icingadb\Common\Model
Must be used as base for all models, to ensure
column restrictions are asserted on filters.
* Utilize `Icinga\Module\Icingadb\Common\Model` where applicable
A service that has no parent but is unreachable, has a host
which marks it as such. In other words, an implicit dependency.
As long as we don't fully support implicit dependencies,
such a service must be shown as root problem. Otherwise,
the message about insufficient access rights is shown.
- Disable the default sorting for the `$hasDependencyNode` and UnreachableParent's `$rootQuery`, as sort is not required here
and triggers an error, because the sort columns are not retrieved.
A node is responsible if:
* it's a host which is reachable but has a problem
* it's a service which is reachable but has a problem
* it's a redundancy group which is reachable but has failed