Changeset 28


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

Legend:

Unmodified
Added
Removed
  • trunk/lib/Vote/Controller/Admin.pm

    r23 r28  
    6262        $vote->addupd_voting($id, $c->req->param('id'), $c->req->param('mail')) 
    6363            and $vote->db->commit; 
     64    } elsif($c->req->param('mailpasswd')) { 
     65        $vote->mail_passwd_ifnul($id); 
    6466    } 
    6567} 
  • 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 
  • trunk/root/templates/admin/default.tt

    r23 r28  
    5757<input type="hidden" name="delvoting" value="[% voting.vkey %]"> 
    5858[% voting.id | html %] [% voting.mail | html %] 
     59[% IF voting.passwd %]<i>(pass envoyé)</i>[% END %] 
    5960<input type="submit" name="delete" value="delete"><br> 
    6061</form> 
     
    7374<input type="submit"> 
    7475</form> 
     76<hr> 
     77<form action="[% c.uri_for(voteid) %]"> 
     78<input type="submit" name="mailpasswd" value="Envoyer les mot de passe"> 
     79</form> 
    7580</td> 
    7681</tr> 
Note: See TracChangeset for help on using the changeset viewer.