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 38037B217 for ; Wed, 23 Nov 2022 15:52:26 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E8113239E5 for ; Wed, 23 Nov 2022 15:52:25 +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 ; Wed, 23 Nov 2022 15:52:24 +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 9AAB844D9C for ; Wed, 23 Nov 2022 15:52:23 +0100 (CET) From: Dominik Csapak To: pmg-devel@lists.proxmox.com Date: Wed, 23 Nov 2022 15:52:21 +0100 Message-Id: <20221123145222.834345-2-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221123145222.834345-1-d.csapak@proxmox.com> References: <20221123145222.834345-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.065 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% 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 Subject: [pmg-devel] [PATCH pmg-api 1/1] fix #3287: add pmail parameter to virus/attch. quarantine list 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: Wed, 23 Nov 2022 14:52:26 -0000 so that we can filter by the recipient email for that we also have to add the quarantine type to the 'spamusers' api call, or else we cannot list which recipients have mails in the respective quarantine Signed-off-by: Dominik Csapak --- src/PMG/API2/Quarantine.pm | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/PMG/API2/Quarantine.pm b/src/PMG/API2/Quarantine.pm index ddf7c04..71aaf0c 100644 --- a/src/PMG/API2/Quarantine.pm +++ b/src/PMG/API2/Quarantine.pm @@ -389,6 +389,12 @@ __PACKAGE__->register_method ({ }}); +my $quar_type_map = { + spam => 'S', + attachment => 'A', + virus => 'V', +}; + __PACKAGE__->register_method ({ name => 'spamusers', path => 'spamusers', @@ -400,6 +406,13 @@ __PACKAGE__->register_method ({ properties => { starttime => get_standard_option('pmg-starttime'), endtime => get_standard_option('pmg-endtime'), + 'quarantine-type' => { + description => 'Query this type of quarantine for users.', + type => 'string', + default => 'spam', + optional => 1, + enum => [keys $quar_type_map->%*], + }, }, }, returns => { @@ -427,14 +440,16 @@ __PACKAGE__->register_method ({ my $start = $param->{starttime} // (time - 86400); my $end = $param->{endtime} // ($start + 86400); + my $quar_type = $param->{'quarantine-type'} // 'spam'; + my $sth = $dbh->prepare( "SELECT DISTINCT pmail " . "FROM CMailStore, CMSReceivers WHERE " . "time >= $start AND time < $end AND " . - "QType = 'S' AND CID = CMailStore_CID AND RID = CMailStore_RID " . + "QType = ? AND CID = CMailStore_CID AND RID = CMailStore_RID " . "AND Status = 'N' ORDER BY pmail"); - $sth->execute(); + $sth->execute($quar_type_map->{$quar_type}); while (my $ref = $sth->fetchrow_hashref()) { push @$res, { mail => $ref->{pmail} }; @@ -657,6 +672,7 @@ __PACKAGE__->register_method ({ properties => { starttime => get_standard_option('pmg-starttime'), endtime => get_standard_option('pmg-endtime'), + pmail => $pmail_param_type, }, }, returns => { @@ -706,7 +722,7 @@ __PACKAGE__->register_method ({ }, code => sub { my ($param) = @_; - return $quarantine_api->($param, 'V'); + return $quarantine_api->($param, 'V', defined($param->{pmail})); }}); __PACKAGE__->register_method ({ @@ -720,6 +736,7 @@ __PACKAGE__->register_method ({ properties => { starttime => get_standard_option('pmg-starttime'), endtime => get_standard_option('pmg-endtime'), + pmail => $pmail_param_type, }, }, returns => { @@ -765,7 +782,7 @@ __PACKAGE__->register_method ({ }, code => sub { my ($param) = @_; - return $quarantine_api->($param, 'A'); + return $quarantine_api->($param, 'A', defined($param->{pmail})); }}); __PACKAGE__->register_method ({ -- 2.30.2