Hides the value of 'password' field being displayed in the InfoTab. Fixes #3426

This commit is contained in:
Madhur Garg 2019-03-16 06:30:43 +05:30
parent f7e3e003a2
commit fa8c53e097
2 changed files with 7 additions and 1 deletions

View file

@ -447,6 +447,8 @@ class Config(RawConfigParser):
RawConfigParser.set(self, section, option, value)
if not self.write_in_file(section, option, value):
return ('Unable to write in the config file', 'Error')
if 'password' in option and 'eval_password' not in option:
value = '*'*len(value)
return ("%s=%s" % (option, value), 'Info')
def remove_and_save(self, option: str,

View file

@ -526,6 +526,8 @@ class CommandCore:
theme.COLOR_INFORMATION_TEXT),
})
for option_name, option_value in section.items():
if 'password' in option_name and 'eval_password' not in option_name:
option_value = '*'*len(option_value)
lines.append(
'%s\x19%s}=\x19o%s' %
(option_name, dump_tuple(
@ -534,6 +536,8 @@ class CommandCore:
elif len(args) == 1:
option = args[0]
value = config.get(option)
if 'password' in option and 'eval_password' not in option and value is not None:
value = '*'*len(value)
if value is None and '=' in option:
args = option.split('=', 1)
info = ('%s=%s' % (option, value), 'Info')
@ -591,7 +595,7 @@ class CommandCore:
section = args[0]
option = args[1]
value = args[2]
info = config.set_and_save(option, value, section)
info = config.set_and_save(option, value_info, section)
self.core.trigger_configuration_change(option, value)
elif len(args) > 3:
return self.help('set')