From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id C4D1BC13A7 for ; Mon, 15 Jan 2024 12:13:14 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A69331A133 for ; Mon, 15 Jan 2024 12:12:44 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Mon, 15 Jan 2024 12:12:44 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id C719B49130 for ; Mon, 15 Jan 2024 12:12:43 +0100 (CET) From: Dominik Csapak To: pmg-devel@lists.proxmox.com Date: Mon, 15 Jan 2024 12:12:39 +0100 Message-Id: <20240115111242.2781994-3-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20240115111242.2781994-1-d.csapak@proxmox.com> References: <20240115111242.2781994-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.020 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pmg-devel] [PATCH pmg-api v2 2/2] fix #2430: ruledb disclaimer: make separator configurable X-BeenThere: pmg-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Mail Gateway development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2024 11:13:14 -0000 add a new 'add-separator' property (default true) that controls if the '--' separator is added. Signed-off-by: Dominik Csapak --- changes from v1: * change default handling so that only non default values land in the db src/PMG/RuleDB/Disclaimer.pm | 44 +++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/src/PMG/RuleDB/Disclaimer.pm b/src/PMG/RuleDB/Disclaimer.pm index 421a0dd..574f62e 100644 --- a/src/PMG/RuleDB/Disclaimer.pm +++ b/src/PMG/RuleDB/Disclaimer.pm @@ -49,7 +49,7 @@ If this e-mail or attached files contain information which do not relate to our _EOD_ sub new { - my ($type, $value, $ogroup, $top) = @_; + my ($type, $value, $ogroup, $top, $separator) = @_; my $class = ref($type) || $type; @@ -59,6 +59,7 @@ sub new { $self->{value} = $value; $self->{top} = $top; + $self->{separator} = $separator; return $self; } @@ -76,14 +77,16 @@ sub load_attr { $sth->execute($id); my $top = 0; + my $separator = 1; while (my $ref = $sth->fetchrow_hashref()) { $top = $ref->{value} if $ref->{name} eq 'top'; + $separator = $ref->{value} if $ref->{name} eq 'separator'; } $sth->finish(); - my $obj = $class->new(decode('UTF-8', $value), $ogroup, $top); + my $obj = $class->new(decode('UTF-8', $value), $ogroup, $top, $separator); $obj->{id} = $id; @@ -110,9 +113,11 @@ sub save { "UPDATE Object SET Value = ? WHERE ID = ?", undef, $value, $self->{id}); - $ruledb->{dbh}->do( - "DELETE FROM Attribut WHERE Name = ? and Object_ID = ?", - undef, 'top', $self->{id}); + for my $prop (qw(top separator)) { + $ruledb->{dbh}->do( + "DELETE FROM Attribut WHERE Name = ? and Object_ID = ?", + undef, $prop, $self->{id}); + } } else { # insert @@ -125,10 +130,12 @@ sub save { $self->{id} = PMG::Utils::lastid($ruledb->{dbh}, 'object_id_seq'); } - if (defined($self->{top})) { - $ruledb->{dbh}->do( - "INSERT INTO Attribut (Value, Name, Object_ID) VALUES (?, ?, ?)", - undef, $self->{top}, 'top', $self->{id}); + for my $prop (qw(top separator)) { + if (defined($self->{$prop})) { + $ruledb->{dbh}->do( + "INSERT INTO Attribut (Value, Name, Object_ID) VALUES (?, ?, ?)", + undef, $self->{$prop}, $prop, $self->{id}); + } } return $self->{id}; @@ -227,10 +234,11 @@ sub execute { foreach my $ta (@$subgroups) { my ($tg, $entity) = (@$ta[0], @$ta[1]); my $html; + my $separator = $self->{separator} ? '
--
' : '
'; if ($self->{top}) { - $html = PMG::Utils::subst_values ($self->{value}, $vars) . "
--
"; + $html = PMG::Utils::subst_values ($self->{value}, $vars) . $separator; } else { - $html = "
--
" . PMG::Utils::subst_values ($self->{value}, $vars); + $html = $separator . PMG::Utils::subst_values ($self->{value}, $vars); } my $text = ""; @@ -272,6 +280,13 @@ sub properties { optional => 1, default => 'end', }, + 'add-separator' => { + description => "If set to 1, adds a '--' separator between the disclaimer and the". + " content. Set to 0 to prevent that.", + type => 'boolean', + optional => 1, + default => 1, + }, }; } @@ -281,6 +296,7 @@ sub get { return { disclaimer => $self->{value}, position => $self->{top} ? 'start' : 'end', + 'add-separator' => $self->{separator} // 1, }; } @@ -293,6 +309,12 @@ sub update { } else { delete $self->{top}; } + + if (defined($param->{'add-separator'}) && $param->{'add-separator'} == 0) { + $self->{separator} = 0; + } else { + delete $self->{separator}; + } } 1; -- 2.30.2