diff options
Diffstat (limited to 'web/confirm.cgi')
-rwxr-xr-x | web/confirm.cgi | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/web/confirm.cgi b/web/confirm.cgi new file mode 100755 index 000000000..29f0b7c98 --- /dev/null +++ b/web/confirm.cgi @@ -0,0 +1,69 @@ +#!/usr/bin/perl -w + +# confirm.cgi: +# Confirmation code for Neighbourhood Fix-It +# +# Copyright (c) 2006 UK Citizens Online Democracy. All rights reserved. +# Email: matthew@mysociety.org. WWW: http://www.mysociety.org +# +# $Id: confirm.cgi,v 1.1 2006-09-25 22:59:07 matthew Exp $ + +use strict; +require 5.8.0; + +# Horrible boilerplate to set up appropriate library paths. +use FindBin; +use lib "$FindBin::Bin/../perllib"; +use lib "$FindBin::Bin/../../perllib"; + +use Page; +use mySociety::AuthToken; +use mySociety::Config; +use mySociety::DBHandle qw(dbh select_all); + +BEGIN { + mySociety::Config::set_file("$FindBin::Bin/../conf/general"); + mySociety::DBHandle::configure( + Name => mySociety::Config::get('BCI_DB_NAME'), + User => mySociety::Config::get('BCI_DB_USER'), + Password => mySociety::Config::get('BCI_DB_PASS'), + Host => mySociety::Config::get('BCI_DB_HOST', undef), + Port => mySociety::Config::get('BCI_DB_PORT', undef) + ); +} + +sub main { + my $q = shift; + + my $out = ''; + my $token = $q->param('token'); + my $type = $q->param('type'); + my $id = mySociety::AuthToken::retrieve($type, $token); + if ($id) { + if ($type eq 'comment') { + dbh()->do("update comment set state='confirmed' where id=?", {}, $id); + my $id = dbh()->selectrow_array("select problem_id from comment where id=?", {}, $id); + $out = <<EOF; +<p>You have successfully confirmed your comment and you can now <a href="/?id=$id">view it on the site</a>.</p> +EOF + } elsif ($type eq 'problem') { + dbh()->do("update problem set state='confirmed' where id=?", {}, $id); + $out = <<EOF; +<p>You have successfully confirmed your problem and you can now <a href="/?id=$id">view it on the site</a>.</p> +EOF + } + dbh()->commit(); + } else { + $out = <<EOF; +<p>Thank you for trying to confirm your comment or problem. We seem to have a +problem ourselves though, so <a href="/contact">please let us know what went on</a> +and we'll look into it. +EOF + } + + print Page::header($q, 'Confirmation'); + print $out; + print Page::footer(); +} +Page::do_fastcgi(\&main); + |