################################################################################
#
# File: $RCSfile: add2nulllist.cgi,v $
-# Revision: $Revision: 1.1 $
-# Description: Add an email address to the nulllist
+# Revision: $Revision: 1.1 $
+# Description: Add an email address to the nulllist
# Author: Andrew@DeFaria.com
# Created: Mon Jan 16 20:25:32 PST 2006
# Modified: $Date: 2013/06/12 14:05:47 $
use warnings;
use FindBin;
-$0 = $FindBin::Script;
-use lib $FindBin::Bin;
+local $0 = $FindBin::Script;
+
+use lib "$FindBin::Bin/../lib";
+use lib "$FindBin::Bin/../../lib";
+
+use Utils;
use MAPS;
use MAPSLog;
use CGI qw/:standard *table/;
use CGI::Carp 'fatalsToBrowser';
-my $userid;
-my $Userid;
-my $type = 'null';
+sub Add2List(%) {
+ my (%rec) = @_;
-sub Add2List {
- my $sender = '';
- my $nextseq = MAPSDB::GetNextSequenceNo $userid, $type;
+ CheckParms(['userid', 'type'], \%rec);
+
+ my $nextseq = GetNextSequenceNo(%rec);
+
+ my $Userid = ucfirst $rec{userid};
while () {
- my $pattern = param "pattern$nextseq";
- my $domain = param "domain$nextseq";
- my $comment = param "comment$nextseq";
+ $rec{pattern} = param "pattern$nextseq";
+ $rec{domain} = param "domain$nextseq";
+ $rec{comment} = param "comment$nextseq";
+ $rec{hit_count} = param "hit_count$nextseq";
+ $rec{retention} = param "retention$nextseq";
- last if ((!defined $pattern || $pattern eq '') &&
- (!defined $domain || $domain eq ''));
+ last unless $rec{pattern} or $rec{domain};
- $sender = lc "$pattern\@$domain";
+ $rec{sender} = CheckEmail $rec{pattern}, $rec{domain};
- my ($status, $rule) = OnNulllist $sender;
+ my ($status) = OnNulllist($rec{sender});
- if ($status != 0) {
- print br {-class => 'error'}, "The email address $sender is already on ${Userid}'s $type list";
+ if ($status) {
+ print br {-class => 'error'},
+ "The email address $rec{sender} is already on ${Userid}'s $rec{type} list";
} else {
- Add2Nulllist $sender, $userid, $comment;
+ my ($messages, $msg) = Add2Nulllist(%rec);
+
+ if ($messages < -1) {
+ print br {-class => 'error'}, "Unable to add $rec{sender} to $rec{type} list";
+ return;
+ } else {
+ print br "The email address, $rec{sender}, has been added to ${Userid}'s $rec{type} list";
+ } # if
- print br "The email address, $sender, has been added to ${Userid}'s $type list";
-
# Now remove this entry from the other lists (if present)
- foreach my $otherlist ('white', 'black') {
- my $sth = FindList $otherlist, $sender;
- my ($sequence, $count);
+ for my $otherlist ('white', 'black') {
+ FindList(
+ userid => $rec{userid},
+ type => $otherlist,
+ sender => $rec{sender},
+ );
- ($_, $_, $_, $_, $_, $sequence) = GetList $sth;
+ my $seq = GetList;
- if ($sequence) {
- $count = DeleteList $otherlist, $sequence;
+ if ($seq->{sequence}) {
+ my $err;
- print br "Removed $sender from ${Userid}'s " . ucfirst $otherlist . ' list'
- if $count > 0;
+ ($err, $msg) = DeleteList(
+ userid => $rec{userid},
+ type => $otherlist,
+ sequence => $seq->{sequence},
+ );
- ResequenceList $userid, $otherlist;
+ croak $msg if $err < 0;
+
+ print br "Removed $rec{sender} from ${Userid}'s " . ucfirst $otherlist . ' list'
+ if $err > 0;
+
+ ResequenceList(
+ userid => $rec{userid},
+ type => $otherlist,
+ );
} # if
- } # foreach
+ } # for
} # if
$nextseq++;
} # while
+
+ return;
} # Add2List
# Main
-$userid = Heading (
+my $userid = Heading(
'getcookie',
'',
'Add to Null List',
'Add to Null List',
);
-SetContext $userid;
+$userid ||= $ENV{USER};
-NavigationBar $userid;
+SetContext($userid);
-$Userid = ucfirst $userid;
+NavigationBar($userid);
-Add2List;
+my $type = 'null';
+
+Add2List(
+ userid => $userid,
+ type => $type,
+);
print start_form {
- -method => 'post',
- -action => 'processaction.cgi',
- -name => 'list'
+ -method => 'post',
+ -action => 'processaction.cgi',
+ -name => 'list'
};
print '<p></p><center>',
- hidden ({-name => 'type',
- -default => $type}),
- submit ({-name => 'action',
- -value => 'Add New Entry'}),
+ hidden ({-name => 'type',
+ -default => $type}),
+ submit ({-name => 'action',
+ -value => 'Add'}),
'</center>';
Footing;