From 04d8c1f0c632f94d49f9f1df96a53446189f5f4f Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Mon, 21 Jul 2008 13:59:53 +0200 Subject: [PATCH] Give an error message when an ajax action isn't allowed --- lib/NDWeb/Controller/JSRPC.pm | 16 ++++++++++++++++ root/src/jsrpc/access_denied.tt2 | 1 + root/static/js/raid.js | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 root/src/jsrpc/access_denied.tt2 diff --git a/lib/NDWeb/Controller/JSRPC.pm b/lib/NDWeb/Controller/JSRPC.pm index 41c7c3d..b1aeba7 100644 --- a/lib/NDWeb/Controller/JSRPC.pm +++ b/lib/NDWeb/Controller/JSRPC.pm @@ -187,6 +187,12 @@ sub listTargets : Local { $c->forward('/listTargets'); } +sub access_denied : Local { + my ($self, $c) = @_; + + $c->stash(template => 'jsrcp/access_denied.tt2'); +} + sub assertTarget : Private { my ($self, $c, $raid, $from, $target, $wave) = @_; my $dbh = $c->model; @@ -207,6 +213,16 @@ sub assertTarget : Private { sub end : ActionClass('RenderView') { my ($self,$c) = @_; $c->res->content_type('application/xml'); + + 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->clear_errors; + }elsif ($c->error->[0] =~ m/Missing roles: /){ + $c->stash->{template} = 'jsrpc/access_denied.tt2'; + $c->clear_errors; + } + } } =head1 AUTHOR diff --git a/root/src/jsrpc/access_denied.tt2 b/root/src/jsrpc/access_denied.tt2 new file mode 100644 index 0000000..f4bec36 --- /dev/null +++ b/root/src/jsrpc/access_denied.tt2 @@ -0,0 +1 @@ +Access deined, you might not be logged in anymore. diff --git a/root/static/js/raid.js b/root/static/js/raid.js index 89a06b6..a2dbc2c 100644 --- a/root/static/js/raid.js +++ b/root/static/js/raid.js @@ -57,6 +57,9 @@ function parseUpdate(xml){ if ($('targetlist',xml).text()){ $('#targets').empty().html($('targetlist',xml).text()); } + if ($('noaccess',xml).text()){ + alert($('noaccess',xml).text()); + } } -- 2.39.2