networks: Retrieve password while editing PPPoE

- Retrieve password using connection.get_secrets() instead of
  settings_pppoe.get_password().

- Make sure IPv4 settings are not accessed during PPPoE editing.
This commit is contained in:
Sunil Mohan Adapa 2015-08-22 20:41:15 +05:30
parent 5e6c54e600
commit 958c249dfb
2 changed files with 13 additions and 15 deletions

View File

@ -88,7 +88,7 @@ available over this interfaces. Select Internal only for trusted networks.'),
choices=[('external', 'External'), ('internal', 'Internal')]) choices=[('external', 'External'), ('internal', 'Internal')])
username = forms.CharField(label=_('Username')) username = forms.CharField(label=_('Username'))
password = forms.CharField(label=_('Password'), password = forms.CharField(label=_('Password'),
widget=forms.PasswordInput()) widget=forms.PasswordInput(render_value=True))
show_password = forms.BooleanField(label=_('Show password'), show_password = forms.BooleanField(label=_('Show password'),
required=False) required=False)

View File

@ -112,27 +112,21 @@ def edit(request, uuid):
'form': form}) 'form': form})
else: else:
settings_connection = connection.get_setting_connection() settings_connection = connection.get_setting_connection()
settings_ipv4 = connection.get_setting_ip4_config()
settings_pppoe = connection.get_setting_pppoe()
form_data['interface'] = connection.get_interface_name() form_data['interface'] = connection.get_interface_name()
try: try:
form_data['zone'] = settings_connection.get_zone() form_data['zone'] = settings_connection.get_zone()
except KeyError: except KeyError:
form_data['zone'] = 'external' form_data['zone'] = 'external'
form_data['ipv4_method'] = settings_ipv4.get_method() if settings_connection.get_connection_type() != 'pppoe':
if not settings_pppoe: settings_ipv4 = connection.get_setting_ip4_config()
form_data['username'] = '' form_data['ipv4_method'] = settings_ipv4.get_method()
form_data['password'] = ''
else:
form_data['username'] = settings_pppoe.get_username()
form_data['password'] = settings_pppoe.get_password()
if settings_ipv4.get_num_addresses(): if settings_ipv4.get_num_addresses():
# XXX: Plinth crashes here. Possibly because a double free bug # XXX: Plinth crashes here. Possibly because a double free bug
# address = settings_ipv4.get_address(0) # address = settings_ipv4.get_address(0)
# form_data['ipv4_address'] = address.get_address() # form_data['ipv4_address'] = address.get_address()
pass pass
if settings_connection.get_connection_type() == '802-11-wireless': if settings_connection.get_connection_type() == '802-11-wireless':
settings_wireless = connection.get_setting_wireless() settings_wireless = connection.get_setting_wireless()
@ -156,6 +150,10 @@ def edit(request, uuid):
elif settings_connection.get_connection_type() == '802-3-ethernet': elif settings_connection.get_connection_type() == '802-3-ethernet':
form = AddEthernetForm(form_data) form = AddEthernetForm(form_data)
elif settings_connection.get_connection_type() == 'pppoe': elif settings_connection.get_connection_type() == 'pppoe':
settings_pppoe = connection.get_setting_pppoe()
form_data['username'] = settings_pppoe.get_username()
secrets = connection.get_secrets('pppoe')
form_data['password'] = secrets['pppoe']['password']
form = AddPPPoEForm(form_data) form = AddPPPoEForm(form_data)
return TemplateResponse(request, 'connections_edit.html', return TemplateResponse(request, 'connections_edit.html',