X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=lib%2FNDWeb%2FController%2FJSRPC.pm;h=6e21a9446014b30288cc0786604c41401fe00998;hb=2a703f7250ea25f2f556eb25b644dcb7268f92ce;hp=cc52d43cce9ddcec17942e3a5019f7d29508446d;hpb=d9dfc5fc3673befcc6b386a91416bc2b7cfa26c8;p=ndwebbie.git diff --git a/lib/NDWeb/Controller/JSRPC.pm b/lib/NDWeb/Controller/JSRPC.pm index cc52d43..6e21a94 100644 --- a/lib/NDWeb/Controller/JSRPC.pm +++ b/lib/NDWeb/Controller/JSRPC.pm @@ -4,6 +4,8 @@ use strict; use warnings; use parent 'Catalyst::Controller'; +use DateTime::TimeZone; + =head1 NAME NDWeb::Controller::JSRPC - Catalyst Controller @@ -36,7 +38,8 @@ sub update : Local { my $targets;; if ($from){ - my ($timestamp) = $dbh->selectrow_array("SELECT MAX(modified)::timestamp AS modified FROM raid_targets"); + my ($timestamp) = $dbh->selectrow_array(q{SELECT MAX(modified)::timestamp AS modified + FROM raid_targets WHERE raid = $1},undef,$raid->{id}); $c->stash(timestamp => $timestamp); $targets = $dbh->prepare(q{SELECT r.id,r.planet FROM raid_targets r WHERE r.raid = ? AND modified > ? @@ -172,7 +175,6 @@ sub joinable : Local { WHERE target = ? AND wave = ? }); $query->execute($joinable,$target,$wave); - $c->forward('/listTargets'); } $c->stash(template => 'jsrpc/update.tt2'); @@ -187,9 +189,17 @@ sub listTargets : Local { $c->forward('/listTargets'); } +sub tzcountries : Local { + my ($self, $c, $cat) = @_; + + my @countries = DateTime::TimeZone->names_in_category($cat); + $c->stash(tzcountries => \@countries); +} + sub access_denied : Private { my ($self, $c) = @_; $c->stash(template => 'jsrpc/access_denied.tt2'); + $c->res->status(403); } sub assertTarget : Private { @@ -216,9 +226,11 @@ sub end : ActionClass('RenderView') { if (scalar @{ $c->error } ){ if ($c->error->[0] =~ m/Can't call method "id" on an undefined value at/){ $c->stash->{template} = 'jsrpc/access_denied.tt2'; + $c->res->status(403); $c->clear_errors; }elsif ($c->error->[0] =~ m/Missing roles: /){ $c->stash->{template} = 'jsrpc/access_denied.tt2'; + $c->res->status(403); $c->clear_errors; } }