X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=lib%2FNDWeb%2FController%2FJSRPC.pm;h=3bea69a5405e5c14983503767410d1eaf2a28ea0;hb=fcd1ee7b280d01a082b3a868a56145f970251f5d;hp=b1aeba7bb76915a518158f2ca2928d64a22b1c8d;hpb=04d8c1f0c632f94d49f9f1df96a53446189f5f4f;p=ndwebbie.git diff --git a/lib/NDWeb/Controller/JSRPC.pm b/lib/NDWeb/Controller/JSRPC.pm index b1aeba7..3bea69a 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 @@ -187,10 +189,17 @@ sub listTargets : Local { $c->forward('/listTargets'); } -sub access_denied : Local { - my ($self, $c) = @_; +sub tzcountries : Local { + my ($self, $c, $cat) = @_; - $c->stash(template => 'jsrcp/access_denied.tt2'); + 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 { @@ -217,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; } }