Changeset 304 for branches


Ignore:
Timestamp:
05/19/10 23:38:22 (14 years ago)
Author:
nanardon
Message:
  • add a new config option making poll creation limit by admin password instead mail confirmation
Location:
branches/1
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/1/lib/Vote/Controller/Newpoll.pm

    r155 r304  
    3232    $c->stash->{page}{title} = 'Créer un nouveau vote'; 
    3333    if ($c->req->param('mail')) { 
    34         $c->model('Vote')->create_poll_request( 
    35             mail => $c->req->param('mail'), 
    36             url => $c->uri_for('/newpoll'), 
    37             label => $c->req->param('label'), 
    38         ); 
    39         $c->stash->{template} = 'newpoll/request.tt'; 
     34        if ($c->config->{newpollpasswd}) { 
     35            if (($c->req->param('passwd') || '') eq $c->config->{newpollpasswd}) 
     36                { 
     37                    if (my $pid = $c->model('Vote')->create_poll( 
     38                            $c->req->param('label'), 
     39                            $c->req->param('mail'), 
     40                            $c->req->param('vpasswd'), 
     41                        ) 
     42                    ) { 
     43                        $c->res->redirect($c->uri_for('/admin', $pid)); 
     44                    } 
     45                } else { 
     46                    $c->stash->{passwderror} = 1; 
     47                } 
     48        } else { 
     49            $c->model('Vote')->create_poll_request( 
     50                mail => $c->req->param('mail'), 
     51                url => $c->uri_for('/newpoll'), 
     52                label => $c->req->param('label'), 
     53            ); 
     54            $c->stash->{template} = 'newpoll/request.tt'; 
     55        } 
    4056    } 
    4157 
  • branches/1/lib/Vote/Model/Vote.pm

    r303 r304  
    893893} 
    894894 
    895 sub poll_from_request { 
    896     my ($self, $rid, $passwd) = @_; 
    897     my $rinfo = $self->poll_request_info($rid) or return; 
    898  
     895sub create_poll { 
     896    my ($self, $label, $mail, $passwd) = @_; 
     897 
     898    my $newpollid = $self->_create_poll($label, $mail, $passwd) or return; 
     899    $self->db->commit; 
     900 
     901    $newpollid; 
     902} 
     903 
     904sub _create_poll { 
     905    my ($self, $label, $mail, $passwd) = @_; 
     906     
    899907    my $encpasswd = $self->gen_enc_passwd($passwd); 
    900908 
     
    909917    ); 
    910918 
    911     $newpoll->execute($newpollid, $rinfo->{label}, $rinfo->{mail}, $encpasswd); 
     919    $newpoll->execute($newpollid, $label, $mail, $encpasswd); 
    912920    # set some default 
    913921    $self->vote_param($newpollid, 
    914922        free_choice => 0, 
    915923        choice_count => 1, 
    916     );      
     924    ); 
     925 
     926    $newpollid; 
     927} 
     928 
     929sub poll_from_request { 
     930    my ($self, $rid, $passwd) = @_; 
     931    my $rinfo = $self->poll_request_info($rid) or return; 
     932 
     933    my $newpollid = $self->_create_poll( 
     934        $rinfo->{label}, $rinfo->{mail}, $passwd 
     935    ) or return; 
    917936 
    918937    my $delreq = $self->db->prepare_cached( 
  • branches/1/root/templates/newpoll/index.tt

    r73 r304  
    88<tr><th>votre mail:</th><td><input type="text" name="mail" tabindex="1" size="45" maxlength="150"></td></tr> 
    99<tr><th>nom du vote:</th><td><input type="text" name="label" tabindex="2" size="45" maxlength="150"></td></tr> 
     10[% IF c.config.newpollpasswd %] 
     11<tr><th>mot de passe pour ce vote:</th><td><input type="password" name="vpasswd" tabindex="3"></td></tr> 
     12[% IF passwderror %] 
     13<tr><td colspan="2" class="alert"> 
     14    Mot de passe site invalide 
     15</td></tr> 
     16[% END %] 
     17<tr><th>mot de passe site:</th><td><input type="password" name="passwd" tabindex="4"></td></tr> 
     18[% END %] 
    1019<!-- Cf http://forge.ipsl.jussieu.fr/epoll/ticket/1 
    1120<tr><th>mot de passe:</th><td><input type="password" name="vpasswd"></td></tr> 
Note: See TracChangeset for help on using the changeset viewer.