2 # Display entries in the auto-whitelist
4 require './spam-lib.pl';
6 &set_config_file_in(\%in);
8 &ui_print_header($header_subtext, $text{'awl_title'}, "");
11 # Check if we need a username
12 if (&supports_auto_whitelist() == 2) {
13 print &ui_form_start("edit_awl.cgi");
15 print "<b>$text{'awl_user'}</b>\n";
16 print &ui_user_textbox("user", $in{'user'}),"\n",
17 &ui_submit($text{'awl_uok'});
27 # Open the DBM, or give up
28 $awf = &get_auto_whitelist_file($in{'user'});
29 $ok = &open_auto_whitelist_dbm($in{'user'});
30 if (!&can_edit_awl($in{'user'})) {
31 &ui_print_endpage("<b>".&text('awl_cannotuser',
32 "<tt>".&html_escape($in{'user'})."</tt>")."</b>");
34 elsif (!defined(getpwnam($in{'user'})) && !$module_info{'usermin'}) {
35 &ui_print_endpage("<b>".&text('awl_nouser',
36 "<tt>".&html_escape($in{'user'})."</tt>")."</b>");
39 &ui_print_endpage("<b>".&text('awl_nofile',
40 "<tt>".&html_escape($in{'user'})."</tt>")."</b>");
43 &ui_print_endpage("<b>".&text('awl_cannot', $awf)."</b>");
46 &ui_print_endpage("<b>".&text('awl_empty', $awf)."</b>");
50 @keys = sort { $a cmp $b } keys %awl;
51 @keys = grep { !/\|totscore/ } @keys;
52 print &ui_form_start("edit_awl.cgi");
54 print "<b>$text{'awl_search'}</b>\n";
55 print &ui_textbox("search", $in{'search'}, 30),"\n",
56 &ui_submit($text{'awl_ok'});
57 print &ui_hidden("user", $in{'user'});
61 @keys = grep { /\Q$in{'search'}\E/i } @keys;
62 print &text('awl_searching',
63 "<i>".&html_escape($in{'search'})."</i>"),"<p>\n";
66 if (@keys > $max_awl_keys && !$in{'search'}) {
68 print "<b>",&text('awl_toomany', scalar(@keys),
69 $max_awl_keys),"</b><p>\n";
73 print &ui_form_start("delete_awl.cgi", "post");
75 print &ui_hidden("search", $in{'search'});
76 print &ui_hidden("user", $in{'user'});
77 @links = ( &select_all_link("d", $formno),
78 &select_invert_link("d", $formno) );
80 print &ui_links_row(\@links);
81 print &ui_columns_start([ "",
85 $text{'awl_score'} ], undef, 0, \@tds);
87 ($email, $ip, $rest) = split(/\|/, $k);
88 if ($ip eq "ip=none") {
89 $ip = $text{'awl_none'};
91 elsif ($ip =~ /^ip=(\S+)$/) {
95 $ip = $text{'awl_unknown'};
97 $score = $awl{$k."|totscore"};
98 print &ui_checked_columns_row([ $email, $ip, $awl{$k}, $score ],
101 print &ui_columns_end();
102 print &ui_links_row(\@links);
103 print &ui_form_end([ [ undef, $text{'awl_delete'} ],
104 [ 'white', $text{'awl_white'} ],
105 [ 'black', $text{'awl_black'} ] ]);
107 &close_auto_whitelist_dbm();
109 # Show delete buttons
112 print &ui_buttons_start();
113 if ($in{'user'} || &supports_auto_whitelist() == 1) {
114 # Delete for this user
115 print &ui_buttons_row("deleteone_awl.cgi",
116 $text{'awl_deleteone'}, &text('awl_deleteonedesc',
117 "<tt>".&html_escape($in{'user'})."</tt>"),
118 &ui_hidden("user", $in{'user'}).
121 if (&supports_auto_whitelist() == 2) {
122 # Delete for all users
123 print &ui_buttons_row("deleteall_awl.cgi",
124 $text{'awl_deleteall'}, $text{'awl_deletealldesc'},
127 print &ui_buttons_end();
129 &ui_print_footer("", $text{'index_return'});