2 ################################################################################
4 # File: $RCSfile: add2whitelist.cgi,v $
5 # Revision: $Revision: 1.1 $
6 # Description: Add an email address to the blacklist
7 # Author: Andrew@DeFaria.com
8 # Created: Mon Jan 16 20:25:32 PST 2006
9 # Modified: $Date: 2013/06/12 14:05:47 $
12 # (C) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
14 ################################################################################
19 $0 = $FindBin::Script;
21 use lib "$FindBin::Bin/../lib";
28 use CGI qw/:standard *table/;
29 use CGI::Carp 'fatalsToBrowser';
37 my $nextseq = GetNextSequenceNo($userid, $type);
40 my $pattern = param "pattern$nextseq";
41 my $domain = param "domain$nextseq";
42 my $comment = param "comment$nextseq";
44 last if ((!defined $pattern || $pattern eq '') &&
45 (!defined $domain || $domain eq ''));
47 $sender = CheckEmail $pattern, $domain;
49 my ($status, $rule) = OnWhitelist($sender, $userid);
52 print br {-class => 'error'}, "The email address $sender is already on ${Userid}'s $type list";
54 my $messages = Add2Whitelist($sender, $userid, $comment);
56 print br "The email address, $sender, has been added to ${Userid}'s $type list";
59 print br 'Your previous message has been delivered';
61 print br "Your previous $messages messages have been delivered";
63 } elsif ($messages == -1) {
64 print br {-class => 'error'}, 'Unable to deliver message';
66 print br 'Unable to find any old messages but future messages will now be delivered.';
69 # Now remove this entry from the other lists (if present)
70 for my $otherlist ('black', 'null') {
71 my $sth = FindList($otherlist, $sender);
72 my ($sequence, $count);
74 ($_, $_, $_, $_, $_, $sequence) = GetList($sth);
77 $count = DeleteList($otherlist, $sequence);
78 print br "Removed $sender from ${Userid}'s " . ucfirst $otherlist . ' list'
81 ResequenceList($userid, $otherlist);
98 $userid ||= $ENV{USER};
100 $Userid = ucfirst $userid;
104 NavigationBar($userid);
110 -action => 'processaction.cgi',
114 print '<p></p><center>',
115 hidden ({-name => 'type',
117 submit ({-name => 'action',