mirror of
https://github.com/ansible/awx.git
synced 2026-03-19 18:07:33 -02:30
add special case read-only support for isolated public/private keys
We recently made AWX_ISOLATED_PRIVATE_KEY and AWX_ISOLATED_PUBLIC_KEY read-only so that they're not inadvertently modified and/or deleted (which would cause isolated task execution to break). Tower's notion of a read-only setting, though, is really more like "hard-coded in a .py file". What we really need is support for settings that are not user configurable/changeable, but that we still want to display to users from the DB. In leiu of a complicated change to `awx.conf.settings`, this change provides special support to these two settings so they behave in the manner we expect. see: https://github.com/ansible/ansible-tower/issues/7375
This commit is contained in:
@@ -293,7 +293,12 @@ class SettingsWrapper(UserSettingsHolder):
|
|||||||
field = self.registry.get_setting_field(name)
|
field = self.registry.get_setting_field(name)
|
||||||
if value is empty:
|
if value is empty:
|
||||||
setting = None
|
setting = None
|
||||||
if not field.read_only:
|
if not field.read_only or name in (
|
||||||
|
# these two values are read-only - however - we *do* want
|
||||||
|
# to fetch their value from the database
|
||||||
|
'AWX_ISOLATED_PRIVATE_KEY',
|
||||||
|
'AWX_ISOLATED_PUBLIC_KEY',
|
||||||
|
):
|
||||||
setting = Setting.objects.filter(key=name, user__isnull=True).order_by('pk').first()
|
setting = Setting.objects.filter(key=name, user__isnull=True).order_by('pk').first()
|
||||||
if setting:
|
if setting:
|
||||||
if getattr(field, 'encrypted', False):
|
if getattr(field, 'encrypted', False):
|
||||||
|
|||||||
Reference in New Issue
Block a user