[pve-devel] [PATCH proxmox-widget-toolkit 1/3] fix #5588: notification: smtp: fix 'Authenticate' checkbox in Chromium
Michael Köppl
m.koeppl at proxmox.com
Tue Jul 8 19:15:37 CEST 2025
Tested this on the latest master with both Chromium 137.0.7151.68 and
Firefox 139.0.1. Was able to reproduce the original issue #5588 on PBS
in Chromium before applying the patches.
Ensured that:
- the "Authenticate" checkbox stays unchecked in Chromium
- "Unchanged" is only shown as the empty text *with* authentication
activated
- the password field is actually empty upon creation of a new SMTP
target, instead of showing "Unchanged"
Did not notice anything off. The implementation looks good to me. I
spent a few minutes tinkering around with an alternative approach of
detecting whether the user had previously entered a password, but the
approach in 2/3 is works as expected and doesn't add unnecessary complexity.
Consider this:
Tested-by: Michael Köppl <m.koeppl at proxmox.com>
Reviewed-by: Michael Köppl <m.koeppl at proxmox.com>
On 6/27/25 14:13, Lukas Wagner wrote:
> When editing an SMTP endpoint that has no authentication settings, in
> Chromium-based browsers, the 'Authenticate' checkbox was ticked because
> of a race condition between the view-model default and the InputPanel
> logic setting the existing values for the endpoint. Explicitly setting
> the value in the view model in onSetValues seems to fix this reliably.
>
> Tested on:
> - Firefox 140
> - Chromium 137
> - Chrome 138
> - Gnome Web (Webkit-based) 48
>
> Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
> ---
> src/panel/SmtpEditPanel.js | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/src/panel/SmtpEditPanel.js b/src/panel/SmtpEditPanel.js
> index df6e3b7..fd10b54 100644
> --- a/src/panel/SmtpEditPanel.js
> +++ b/src/panel/SmtpEditPanel.js
> @@ -196,10 +196,17 @@ Ext.define('Proxmox.panel.SmtpEditPanel', {
> },
>
> onSetValues: function (values) {
> + let me = this;
> +
> values.authentication = !!values.username;
> values.enable = !values.disable;
> delete values.disable;
>
> + // Fix race condition in chromium-based browsers. Without this, the
> + // 'Authenticate' remains ticked (the default value) if loading an
> + // SMTP target without authentication.
> + me.getViewModel().set('authentication', values.authentication);
> +
> return values;
> },
> });
More information about the pve-devel
mailing list