[pve-devel] [PATCH manager] acme: ui: handle missing meta field in directory response

Stoiko Ivanov s.ivanov at proxmox.com
Mon Apr 22 11:06:56 CEST 2024


Gave this patch a spin against a quickly setup step-ca container I had
lying around - the issue of not being able to register an account without
EAB is gone with it.

Tested-by: Stoiko Ivanov <s.ivanov at proxmox.com>

On Mon, 22 Apr 2024 11:01:02 +0200
Folke Gleumes <f.gleumes at proxmox.com> wrote:

> When none of the meta fields is set by the directory, the whole
> dictionary is missing from the response, leading to an exception
> when testing for fields inside it.
> 
> Signed-off-by: Folke Gleumes <f.gleumes at proxmox.com>
> ---
>  www/manager6/node/ACME.js | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/www/manager6/node/ACME.js b/www/manager6/node/ACME.js
> index a0db51a6..7fe49171 100644
> --- a/www/manager6/node/ACME.js
> +++ b/www/manager6/node/ACME.js
> @@ -150,15 +150,18 @@ Ext.define('PVE.node.ACMEAccountCreate', {
>  				    directory: value,
>  				},
>  				success: function(response, opt) {
> -				    if (response.result.data.termsOfService) {
> +				    if (response.result.data && response.result.data.termsOfService) {
>  					field.setValue(response.result.data.termsOfService);
>  					disp.setValue(response.result.data.termsOfService);
>  					checkbox.setHidden(false);
>  				    } else {
> -					checkbox.setValue(false);
> +					// Needed to pass input verification and enable register button
> +					// has no influence on the submitted form
> +					checkbox.setValue(true);
>  					disp.setValue("No terms of service agreement required");
>  				    }
> -				    vm.set('eabRequired', !!response.result.data.externalAccountRequired);
> +				    vm.set('eabRequired', !!(response.result.data &&
> +					response.result.data.externalAccountRequired));
>  				},
>  				failure: function(response, opt) {
>  				    disp.setValue(undefined);





More information about the pve-devel mailing list