Changeset 742

Show
Ignore:
Timestamp:
07/21/2005 08:02:45 PM (3 years ago)
Author:
dmorton
Message:

Trunk - Ticket #42

adding support for emailed quarantine digests which allow a user to view the quarantine contents, and log in and manage messages based off of a tokenized URL.

Fixed silly sql errors, and '==' instead of '='
Added ham cache to digest
Changed order of columns in digest email
Refactored code from ham-cache.php into db.php

Still TODO:

Template touchup.
confirm release/report?

Location:
trunk
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/php/confirm.php

    r741 r742  
    110110    require_once ("./locale/$display_language/reportspam.php"); 
    111111 
     112    if ($HTTP_GET_VARS['manage'] == 'true') { 
     113        header("Location: welcome.php"); 
     114        exit; 
     115    } 
     116 
    112117    $cutoff_date = $timestamp; 
    113118 
  • trunk/php/db.php

    r741 r742  
    19191919                        delete_mail_reference($user_id, $mail_id); 
    19201920                    } 
     1921                } else { 
     1922                    trigger_error("rescue attempt failed!"); 
    19211923                } 
    19221924            } 
  • trunk/php/rescue.php

    r741 r742  
    113113    require_once ("./locale/$display_language/quarantine.php"); 
    114114    require_once ("./locale/$display_language/reportspam.php"); 
     115    require_once ("./locale/$display_language/wblist.php"); 
    115116 
    116117        $message = ""; 
     
    118119      case "ham":  //Ok, this isn't really "releasing", but the logic is the same. 
    119120        $reported = 0; 
    120         $select = "SELECT maia_mail.id " . 
     121        $select = "SELECT maia_mail.id, maia_mail.sender_email " . 
    121122                  "FROM maia_mail, maia_mail_recipients " . 
    122123                  "WHERE maia_mail.id = maia_mail_recipients.mail_id " . 
     
    129130        { 
    130131            $mail_id = $row["id"]; 
     132            $sender  = $row["sender_email"]; 
     133            if (array_key_exists('wblist', $HTTP_GET_VARS)) { 
     134              $message .= $lang[add_address_to_wb_list($euid, $sender, "B")]; 
     135              $message .= "<br>"; 
     136            } 
    131137            report_spam($euid, $mail_id); 
    132138            $reported++; 
     
    140146      case "spam": 
    141147        $rescued = 0; 
    142         $select = "SELECT maia_mail.id " . 
     148        $select = "SELECT maia_mail.id, maia_mail.sender_email " . 
    143149                  "FROM maia_mail, maia_mail_recipients " . 
    144150                  "WHERE maia_mail.id = maia_mail_recipients.mail_id " . 
     
    151157        { 
    152158            $mail_id = $row["id"]; 
     159            $sender  = $row["sender_email"]; 
     160            if (array_key_exists('wblist', $HTTP_GET_VARS)) { 
     161              $message .= $lang[add_address_to_wb_list($euid, $sender, "W")]; 
     162              $message .= "<br>"; 
     163            } 
    153164            rescue_item($euid, $mail_id); 
    154165            $rescued++; 
     
    162173     case "virus": 
    163174        $rescued = 0; 
    164         $select = "SELECT maia_mail.id " . 
     175        $select = "SELECT maia_mail.id, maia_mail.sender_email " . 
    165176                  "FROM maia_mail, maia_mail_recipients " . 
    166177                  "WHERE maia_mail.id = maia_mail_recipients.mail_id " . 
     
    172183        { 
    173184            $mail_id = $row["id"]; 
     185            $sender  = $row["sender_email"]; 
     186            if (array_key_exists('wblist', $HTTP_GET_VARS)) { 
     187              $message .= $lang[add_address_to_wb_list($euid, $sender, "W")]; 
     188              $message .= "<br>"; 
     189            } 
    174190            rescue_item($euid, $mail_id); 
    175191            $rescued++; 
     
    183199     case "bad_attachment": 
    184200        $rescued = 0; 
    185         $select = "SELECT maia_mail.id " . 
     201        $select = "SELECT maia_mail.id, maia_mail.sender_email " . 
    186202                  "FROM maia_mail, maia_mail_recipients " . 
    187203                  "WHERE maia_mail.id = maia_mail_recipients.mail_id " . 
     
    193209        { 
    194210            $mail_id = $row["id"]; 
     211            $sender  = $row["sender_email"]; 
     212            if (array_key_exists('wblist', $HTTP_GET_VARS)) { 
     213              $message .= $lang[add_address_to_wb_list($euid, $sender, "W")]; 
     214              $message .= "<br>"; 
     215            } 
    195216            rescue_item($euid, $mail_id); 
    196217            $rescued++; 
     
    203224     case "bad_header": 
    204225        $rescued = 0; 
    205         $select = "SELECT maia_mail.id " . 
     226        $select = "SELECT maia_mail.id, maia_mail.sender_email " . 
    206227                  "FROM maia_mail, maia_mail_recipients " . 
    207228                  "WHERE maia_mail.id = maia_mail_recipients.mail_id " . 
     
    213234        { 
    214235            $mail_id = $row["id"]; 
     236            $sender  = $row["sender_email"]; 
     237            if (array_key_exists('wblist', $HTTP_GET_VARS)) { 
     238              $message .= $lang[add_address_to_wb_list($euid, $sender, "W")]; 
     239              $message .= "<br>"; 
     240            } 
    215241            rescue_item($euid, $mail_id); 
    216242            $rescued++; 
  • trunk/scripts/send-quarantine-digests.pl

    r741 r742  
    255255            $rowcount = 0; 
    256256            while (@row = $sth->fetchrow_array()) { 
    257                 $token = $1 if $row[0] =~ /^([a-f0-9]{32})$/si; # untaint 
     257                $token = $1 if $row[0] =~ /^([a-zA-Z0-9]{32})$/si; # untaint 
    258258                $received_date = $1 if $row[1] =~ /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})$/si; # untaint 
    259259                $score = $1 if $row[2] =~ /^(\d+\.\d+)$/si; # untaint 
     
    291291            $rowcount = 0; 
    292292            while (@row = $sth->fetchrow_array()) { 
    293                 $token = $1 if $row[0] =~ /^([a-f0-9]{32})$/si; # untaint 
     293                $token = $1 if $row[0] =~ /^([a-zA-Z0-9]{32})$/si; # untaint 
    294294                $received_date = $1 if $row[1] =~ /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})$/si; # untaint 
    295295                $score = $1 if $row[2] =~ /^(\d+\.\d+)$/si; # untaint 
     
    327327            $rowcount = 0; 
    328328            while (@row = $sth->fetchrow_array()) { 
     329                $token = $1 if $row[0] =~ /^([a-zA-Z0-9]{32})$/si; # untaint 
    329330                $received_date = $1 if $row[1] =~ /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})$/si; # untaint 
    330331                $sender = $1 if $row[2] =~ /^(.+\@.+\..+)$/si; # untaint 
     
    359360            $rowcount = 0; 
    360361            while (@row = $sth->fetchrow_array()) { 
    361                 $token = $1 if $row[0] =~ /^([a-f0-9]{32})$/si; # untaint 
     362                $token = $1 if $row[0] =~ /^([a-zA-Z0-9]{32})$/si; # untaint 
    362363                $received_date = $1 if $row[1] =~ /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})$/si; # untaint 
    363364                $sender = $1 if $row[2] =~ /^(.+\@.+\..+)$/si; # untaint 
     
    393394            $rowcount = 0; 
    394395            while (@row = $sth->fetchrow_array()) { 
    395                 $token = $1 if $row[0] =~ /^([a-f0-9]{32})$/si; # untaint 
     396                $token = $1 if $row[0] =~ /^([a-zA-Z0-9]{32})$/si; # untaint 
    396397                $received_date = $1 if $row[1] =~ /^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})$/si; # untaint 
    397398                $sender = $1 if $row[2] =~ /^(.+\@.+\..+)$/si; # untaint 
  • trunk/templates/digest.tpl

    r741 r742  
    99<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    1010<html><body> 
     11<div align="center"> 
     12<a href="[% baseurl %]/confirm.php?id=[% maia_user_id %]&ts=[% date %]&token=[% confirm_token %]&manage=true">[Log in]</a> to manage your Maia account</a> 
     13</div> 
    1114[% FOREACH l IN list %]  
    1215[% FOREACH l.value %] 
     
    2932<tr> 
    3033<td bgcolor="#ffffff" align="center"> 
    31 <a href="[% baseurl %]/rescue.php?id=[% maia_user_id %]&token=[% token %]&type=[% l.key %]">[% IF l.key == 'ham' %]Report[% ELSE %]Release[% END %]</a></td> 
     34<a href="[% baseurl %]/rescue.php?id=[% maia_user_id %]&token=[% token %]&type=[% l.key %]">[% IF l.key == 'ham' %]Report[% ELSE %]Release[% END %]</a><br> 
     35<a href="[% baseurl %]/rescue.php?id=[% maia_user_id %]&token=[% token %]&type=[% l.key %]&wblist=true">[% IF l.key == 'ham' %]Blacklist[% ELSE %]Whitelist[% END %]</a> 
     36</td> 
    3237<td bgcolor="#ffffff">[% received_date %]</td> 
    3338<td bgcolor="#ffffff">[% sender %]</td>