From 0c1563637a036cda7297d7741c8b2c717ed65890 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 13 Jan 2012 09:42:53 +0100 Subject: [PATCH] allow to pass emtpy strings to delete settings --- PVE/API2/Domains.pm | 20 +++++++++++--------- PVE/AccessControl.pm | 4 +++- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/PVE/API2/Domains.pm b/PVE/API2/Domains.pm index 117ef3c..c79e44e 100644 --- a/PVE/API2/Domains.pm +++ b/PVE/API2/Domains.pm @@ -146,12 +146,15 @@ __PACKAGE__->register_method ({ foreach my $p (keys %$param) { next if $p eq 'realm'; - $cfg->{$realm}->{$p} = $param->{$p}; + $cfg->{$realm}->{$p} = $param->{$p} if $param->{$p}; } # port 0 ==> use default - if (defined($param->{port}) && !$param->{port}) { - delete $cfg->{$realm}->{port}; + # server2 == '' ===> delete server2 + for my $p (qw(port server2)) { + if (defined($param->{$p}) && !$param->{$p}) { + delete $cfg->{$realm}->{$p}; + } } cfs_write_file($domainconfigfile, $cfg); @@ -247,12 +250,11 @@ __PACKAGE__->register_method ({ } foreach my $p (keys %$param) { - $cfg->{$realm}->{$p} = $param->{$p}; - } - - # port 0 ==> use default - if (defined($param->{port}) && !$param->{port}) { - delete $cfg->{$realm}->{port}; + if ($param->{$p}) { + $cfg->{$realm}->{$p} = $param->{$p}; + } else { + delete $cfg->{$realm}->{$p}; + } } cfs_write_file($domainconfigfile, $cfg); diff --git a/PVE/AccessControl.pm b/PVE/AccessControl.pm index 3db2bff..5ba3d39 100644 --- a/PVE/AccessControl.pm +++ b/PVE/AccessControl.pm @@ -899,7 +899,7 @@ sub write_domains { $wrote_default = 1; } elsif (defined($formats->{$k})) { if (!$formats->{$k}) { - $data .= "\t$k\n"; + $data .= "\t$k\n" if $v; } elsif ($v =~ m/^$formats->{$k}$/) { $v = PVE::Tools::encode_text($v) if $k eq 'comment'; $data .= "\t$k $v\n"; @@ -994,6 +994,8 @@ sub parse_domains { warn "ignoring domain '$realm' - missing user attribute\n"; } elsif (($entry->{type} eq "ldap") && !$entry->{base_dn}) { warn "ignoring domain '$realm' - missing base_dn attribute\n"; + } elsif (($entry->{type} eq "ad") && !$entry->{domain}) { + warn "ignoring domain '$realm' - missing domain attribute\n"; } else { $cfg->{$realm} = $entry; } -- 2.39.2