When `PermittedParams#settings` was called, it was not permitting any
params, which lead to "Unpermitted parameters: ..." messages being
logged, and then merged the resulting empty params with the controller
params after having filtered them manually. It was ok-ish but the logged
error message was misleading.
The `#settings` method was refactored to permit params that are allowed
in a single step and avoid the misleading log messages.
Also makes ckEditorAugmentedTextarea read-only if the wrapped text area
is disabled.
As for the invitation_expiration_days setting, commit 269f9416dd and
commit 286d862c38 got intertwined with merge commit eb63698a3d, and
resulted in hiding the setting when
`OpenProject::Configuration.registration_footer` is set.
As for the registration_footer setting, PR #6321 intent was to prevent
modifying it if it was already set via env var or configuration file.
When `OpenProject::Configuration` and `Settings` were merged, this code
was not updated. With the default value being non-blank, it lead to
hiding the setting from the administration pages.
This commit restores both settings.
They are for now still available as separate entities but that is more due to existing references to them both. Under the hood, they now depend on the
same structure `Settings::Definition` which just as well could have been named `Configuration::Definition`, that defines:
* the name
* the default value
* the type (which might be deferred from the default value)
* the array of allowed values
Both Setting and Configuration can now be overwritten using the same mechanisms:
* Default value
* Database value
* configuration.yml (settings.yml is removed)
* ENV vars