]> git.proxmox.com Git - pmg-api.git/blobdiff - PMG/DBTools.pm
implement quarantine delete/deliver
[pmg-api.git] / PMG / DBTools.pm
index e24623c9ad7823240a3c58cc0d3f86ad2f1a6ac5..7ea760b802e2b9914984f56277d02c7eacfb436c 100644 (file)
@@ -1156,75 +1156,4 @@ sub load_mail_data {
     return $res;
 }
 
-sub add_to_blackwhite {
-    my ($dbh, $username, $listname, $addrs, $delete) = @_;
-
-    my $name = $listname eq 'BL' ? 'BL' : 'WL';
-    my $oname = $listname eq 'BL' ? 'WL' : 'BL';
-    my $qu = $dbh->quote ($username);
-
-    my $sth = $dbh->prepare(
-       "SELECT * FROM UserPrefs WHERE pmail = $qu AND (Name = 'BL' OR Name = 'WL')");
-    $sth->execute();
-
-    my $list = { 'WL' => {}, 'BL' => {} };
-
-    while (my $ref = $sth->fetchrow_hashref()) {
-       my $data = $ref->{data};
-       $data =~ s/[,;]/ /g;
-       my @alist = split('\s+', $data);
-
-       my $tmp = {};
-       foreach my $a (@alist) {
-           if ($a =~ m/^[[:ascii:]]+$/) {
-               $tmp->{$a} = 1;
-           }
-       }
-
-       $list->{$ref->{name}} = $tmp;
-    }
-
-    $sth->finish;
-
-    if ($addrs) {
-
-       foreach my $v (@$addrs) {
-           die "email address '$v' is too long (> 512 characters)\n"
-               if length($v) > 512;
-
-           if ($delete) {
-               delete($list->{$name}->{$v});
-           } else {
-               if ($v =~ m/[[:^ascii:]]/) {
-                   die "email address '$v' contains invalid characters\n";
-               }
-               $list->{$name}->{$v} = 1;
-               delete ($list->{$oname}->{$v});
-           }
-       }
-
-       my $wlist = $dbh->quote(join (',', keys %{$list->{WL}}) || '');
-       my $blist = $dbh->quote(join (',', keys %{$list->{BL}}) || '');
-
-       if (!$delete) {
-           my $maxlen = 200000;
-           die "whitelist size exceeds limit (> $maxlen bytes)\n"
-               if length($wlist) > $maxlen;
-           die "blacklist size exceeds limit (> $maxlen bytes)\n"
-               if length($blist) > $maxlen;
-       }
-
-       $dbh->do(
-           "DELETE FROM UserPrefs WHERE pmail = $qu AND (Name = 'WL' OR Name = 'BL');" .
-           "INSERT INTO UserPrefs (PMail, Name, Data, MTime) " .
-           "VALUES ($qu, 'BL', $blist, EXTRACT (EPOCH FROM now()));" .
-           "INSERT INTO UserPrefs (PMail, Name, Data, MTime) " .
-           "VALUES ($qu, 'WL', $wlist, EXTRACT (EPOCH FROM now()));");
-    }
-
-    my $values =  [ keys %{$list->{$name}} ];
-
-    return $values;
-}
-
 1;