[uiSettings] allow update of settings and/or permission management for uiSettings #94668
Labels
enhancement
New value added to drive a business result
Feature:uiSettings
impact:low
Addressing this issue will have a low level of impact on the quality/strength of our product.
loe:small
Small Level of Effort
old
Used to help sort old issues on GH Projects which don't support the Created search term.
Team:SharedUX
Team label for AppEx-SharedUX (formerly Global Experience)
Part of #48925
Probably related to #17888
uiSettings can currently only be registered synchronously during the
setup
phase. Also, there is no way to update a given setting's definition once it has been registered.It makes registering settings depending on runtime condition impossible. Also, there is no way to update a setting definition or to restrict its usage depending on a variable that may fluctuate in time, such as the license level or license validity.
One usage example would be #17298, were the
banners
plugin features are only enabled on gold and higher license. However currently, we don't have any way to specify that the associated ui settings should only be enabled or active when the license level match, meaning that the settings are active and displayed in theadvanced settings
management section even if the license conditions are not met.The most generic solution seems to be to provide a way to update the settings definition after their registration. It could be done for example via an
update
API, or by providing anupdater$
observable during the registration, which are both patterns already used in core's code.Depending on the needs from #17888, we may also need to just enable permission handling on uiSettings (
read
/write
), which may be complicated given that OSS code is only aware ofcapabilities
and not of things such as the license level. Such feature would probably be leveraging a similar pattern than theCapabilitiesSwitcher
we used forcapabilities
, to let plugins register more global updaters that can mutates all settings.The text was updated successfully, but these errors were encountered: