aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller/Tokens.pm
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2011-06-30 16:56:12 +0100
committerStruan Donald <struan@exo.org.uk>2011-06-30 16:56:12 +0100
commit0e6bb3e802c0614d64366bd19732b37a574dc12c (patch)
tree01b5d111754a0acef3f8a71da526ce1fbe59de55 /perllib/FixMyStreet/App/Controller/Tokens.pm
parentb756440e4b5c0b356ee0d65d1647124317535c95 (diff)
parentfb78afe61194ea9b6fbec9596d69627e315ab97f (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.pm14
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');
}