aboutsummaryrefslogtreecommitdiffstats
path: root/perllib
diff options
context:
space:
mode:
Diffstat (limited to 'perllib')
-rw-r--r--perllib/FixMyStreet/App/Controller/Contact.pm11
-rwxr-xr-xperllib/FixMyStreet/App/Controller/Develop.pm21
-rw-r--r--perllib/FixMyStreet/DB/Result/User.pm9
3 files changed, 41 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Contact.pm b/perllib/FixMyStreet/App/Controller/Contact.pm
index e2b76ca60..c8cd14907 100644
--- a/perllib/FixMyStreet/App/Controller/Contact.pm
+++ b/perllib/FixMyStreet/App/Controller/Contact.pm
@@ -197,6 +197,17 @@ sub prepare_params_for_email : Private {
my $base_url = $c->cobrand->base_url();
my $admin_url = $c->cobrand->admin_base_url;
+ my $user = $c->cobrand->users->find( { email => $c->stash->{em} } );
+ if ( $user ) {
+ $c->stash->{user_admin_url} = $admin_url . '/users/' . $user->id;
+ $c->stash->{user_reports_admin_url} = $admin_url . '/reports?search=' . $user->email;
+
+ my $user_latest_problem = $user->latest_visible_problem();
+ if ( $user_latest_problem) {
+ $c->stash->{user_latest_report_admin_url} = $admin_url . '/report_edit/' . $user_latest_problem->id;
+ }
+ }
+
if ( $c->stash->{update} ) {
$c->stash->{problem_url} = $base_url . $c->stash->{update}->url;
diff --git a/perllib/FixMyStreet/App/Controller/Develop.pm b/perllib/FixMyStreet/App/Controller/Develop.pm
index ae7122fa1..d2457a3d7 100755
--- a/perllib/FixMyStreet/App/Controller/Develop.pm
+++ b/perllib/FixMyStreet/App/Controller/Develop.pm
@@ -115,6 +115,27 @@ sub email_previewer : Path('/_dev/email') : Args(1) {
}
} elsif ($template eq 'questionnaire') {
$vars->{created} = 'N weeks';
+ } elsif ($template eq 'contact') {
+ $vars->{problem} = $c->model('DB::Problem')->search(undef, { rows => 1 } )->first;
+ $vars->{subject} = 'Please remove my details';
+ $vars->{message} = 'I accidentally put my phone number, address, mothers maiden name, and facebook password in my most recent report!! Please remove it!!';
+ $vars->{form_name} = $c->user->name;
+ $vars->{em} = $c->user->email;
+ $vars->{host} = $c->req->header('HOST');
+ $vars->{ip} = $c->req->address;
+ $vars->{user_agent} = $c->req->user_agent;
+ $vars->{complaint} = sprintf(
+ "Complaint about report %d",
+ $vars->{problem}->id,
+ );
+ $vars->{problem_url} = $c->cobrand->base_url() . '/report/' . $vars->{problem}->id;
+ $vars->{admin_url} = $c->cobrand->admin_base_url . '/report_edit/' . $vars->{problem}->id;
+ $vars->{user_admin_url} = $c->cobrand->admin_base_url . '/users/' . $c->user->id;
+ $vars->{user_reports_admin_url} = $c->cobrand->admin_base_url . '/reports?search=' . $c->user->email;
+ my $user_latest_problem = $c->user->latest_visible_problem();
+ if ( $user_latest_problem ) {
+ $vars->{user_latest_report_admin_url} = $c->cobrand->admin_base_url . '/report_edit/' . $user_latest_problem->id;
+ }
}
my $email = $c->construct_email("$template.txt", $vars);
diff --git a/perllib/FixMyStreet/DB/Result/User.pm b/perllib/FixMyStreet/DB/Result/User.pm
index 4ea7524bb..51f959e0e 100644
--- a/perllib/FixMyStreet/DB/Result/User.pm
+++ b/perllib/FixMyStreet/DB/Result/User.pm
@@ -198,6 +198,15 @@ sub latest_anonymity {
return $obj ? $obj->anonymous : 0;
}
+sub latest_visible_problem {
+ my $self = shift;
+ return $self->problems->search({
+ state => [ FixMyStreet::DB::Result::Problem->visible_states() ]
+ }, {
+ order_by => { -desc => 'id' }
+ })->single;
+}
+
=head2 check_for_errors
$error_hashref = $user->check_for_errors();