Ignore:
Timestamp:
03/14/09 16:02:04 (15 years ago)
Author:
nanardon
Message:
  • add: send mail to voting people
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Vote/Model/Vote.pm

    r27 r28  
    66use Vote; 
    77use DBI; 
     8use Mail::Mailer; 
    89 
    910=head1 NAME 
     
    637638 
    638639sub mail_passwd_ifnul { 
    639     my ($self, $voteid) = @_; 
     640    my ($self, $voteid, $mailinfo) = @_; 
    640641 
    641642    my $list_voting = $self->db->prepare_cached( 
    642         q{select key from voting where poll = ? and passwd is null} 
     643        q{select key from voting where poll = ? and passwd is null or passwd = ''} 
    643644    ); 
    644645 
    645646    $list_voting->execute($voteid); 
    646647    while (my $res = $list_voting->fetchrow_hashref) { 
    647         $self->mail_voting_passwd($res->{key}); 
     648        $self->mail_voting_passwd($res->{key}, $mailinfo); 
    648649    } 
    649650} 
    650651 
    651652sub mail_voting_passwd { 
    652     my ($self, $id) = @_; 
     653    my ($self, $id, $mailinfo) = @_; 
    653654     
    654655    my $vinfo = $self->voting_info($id) or return; 
    655  
    656  
     656    my $voteinfo = $self->vote_info($vinfo->{poll}); 
     657 
     658    my $passwd = random_string(8); 
     659    my $encpasswd = $self->gen_enc_passwd($passwd); 
     660 
     661    my $upd_voting = $self->db->prepare_cached( 
     662        q{update voting set passwd = ? where key = ?} 
     663    ); 
     664 
     665    $upd_voting->execute($encpasswd, $id); 
     666 
     667    # TODO complete this properly: 
     668    my $mailer = new Mail::Mailer 'smtp', Server => 'mailhost'; 
     669    $mailer->open({ 
     670        From => 'Voting system <nomail@nomail.com>', 
     671        To => $vinfo->{mail}, 
     672        Subject => 'Vote passwd', 
     673    }); 
     674    print $mailer <<EOF; 
     675Vous êtes convié à voter: 
     676$voteinfo->{label} 
     677 
     678Votre identifiant est: $vinfo->{id} 
     679Votre mot de passe est: $passwd 
     680 
     681Cordialement. 
     682EOF 
     683    $mailer->close; 
     684 
     685    $self->db->commit; 
    657686} 
    658687 
Note: See TracChangeset for help on using the changeset viewer.