diff options
author | Struan Donald <struan@exo.org.uk> | 2011-06-30 16:56:12 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2011-06-30 16:56:12 +0100 |
commit | 0e6bb3e802c0614d64366bd19732b37a574dc12c (patch) | |
tree | 01b5d111754a0acef3f8a71da526ce1fbe59de55 /perllib/FixMyStreet/App/Controller/Tokens.pm | |
parent | b756440e4b5c0b356ee0d65d1647124317535c95 (diff) | |
parent | fb78afe61194ea9b6fbec9596d69627e315ab97f (diff) |
Merge branch 'master' of ssh://git.mysociety.org/data/git/public/fixmystreet into new_statuses
Conflicts:
perllib/FixMyStreet/App/Controller/Reports.pm
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Tokens.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Tokens.pm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Tokens.pm b/perllib/FixMyStreet/App/Controller/Tokens.pm index c9c9f3ab7..1fef0f07e 100644 --- a/perllib/FixMyStreet/App/Controller/Tokens.pm +++ b/perllib/FixMyStreet/App/Controller/Tokens.pm @@ -154,7 +154,7 @@ sub confirm_update : Path('/C') { return 1; } -sub load_questionnaire_id : Private { +sub load_questionnaire : Private { my ( $self, $c, $token_code ) = @_; # Set up error handling @@ -164,11 +164,21 @@ sub load_questionnaire_id : Private { my $auth_token = $c->forward( 'load_auth_token', [ $token_code, 'questionnaire' ] ); $c->stash->{id} = $auth_token->data; $c->stash->{token} = $token_code; + + my $questionnaire = $c->model('DB::Questionnaire')->find( + { id => $c->stash->{id} }, + { prefetch => 'problem' } + ); + $c->detach('/questionnaire/missing_problem') unless $questionnaire; + $c->stash->{questionnaire} = $questionnaire; } sub questionnaire : Path('/Q') : Args(1) { my ( $self, $c, $token_code ) = @_; - $c->forward( 'load_questionnaire_id', [ $token_code ] ); + $c->forward( 'load_questionnaire', [ $token_code ] ); + + $c->authenticate( { email => $c->stash->{questionnaire}->problem->user->email }, 'no_password' ); + $c->set_session_cookie_expire(0); $c->forward( '/questionnaire/index'); } |