* 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
Currently, the limit is globally set to 50, hence the short custom
variable names which overlaps with most of the column names will not be
suggested and instead only column names will be suggested. To prevent
this the default limit is split in half and adjusted dynamically based
on available suggestions.
resolves#1094
The basefilter may contain relations, that are not know to `CustomvarFlat`, which can leads to errors.
For example: RedundancygroupController:completeActions's base filter is not known to `CustomvarFlat`.
All other columns are already qualified relative to the
base model. This is usually sufficient because qualification
is only required if applied to a query, which isn't happening
at this stage.
fixes#979
The `isHasOne` check was made as the ipl-orm couldn't have known
about specific relations. The relation collection is now part of
this module so it can decide based on the name whether to collect
one or not.
fixes#534
* Command forms: Use strict interfaces to construct ipl\Html objects
* BaseTableRowItem: Use strict interfaces to create ipl\Html objects
* ObjectInspectionDetail: Use strict interfaces..
..to create ipl\Html objects
* Setup/*Step: Use strict interfaces to create ipl\Html objects
* ObjectSuggestions: Use strict interfaces to create ipl\Html objects
* Widget: Use strict interfaces to create ipl\Html objects
* Widget\Detail: Use strict interfaces to create ipl\Html objects
* Widget\ItemList: Use strict interfaces to create ipl\Html objects
* ServiceLink: Don't return an array