]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole.pm
Fixes #6571 User-defined ok_tables: patch
[maypole.git] / lib / Maypole.pm
index 46fb7d4ac953451059e795351d89fbbc3652431a..dd9b4c8af479fe8a9979ff0de0d5d0660a76dad3 100644 (file)
@@ -4,7 +4,7 @@ use attributes ();
 use UNIVERSAL::require;
 use strict;
 use warnings;
-our $VERSION = "1.3";
+our $VERSION = "1.4";
 __PACKAGE__->mk_classdata($_) for qw( config init_done view_object );
 __PACKAGE__->mk_accessors ( qw( ar params query objects model_class
 args action template ));
@@ -55,10 +55,7 @@ sub handler {
     $r->get_request();
     $r->parse_location();
     my $status = $r->handler_guts();
-    if ($status != OK) {
-        warn "NOT OK!";
-        return $status;
-    }
+    return $status unless $status == OK;
     $r->send_output;
     return $status;
 }
@@ -79,7 +76,6 @@ sub handler_guts {
         $r->model_class->process($r);
     } else { 
         # Otherwise, it's just a plain template.
-        $r->call_authenticate; # No harm in it
         delete $r->{model_class};
         $r->{path} =~ s{/}{}; # De-absolutify
         $r->template($r->{path});
@@ -92,7 +88,9 @@ sub handler_guts {
 sub is_applicable {
     my $self = shift;
     my $config = $self->config;
-    $config->{ok_tables} = {map {$_ => 1} @{$config->{display_tables}}};
+    $config->{ok_tables} ||= $config->{display_tables};
+    $config->{ok_tables} = {map {$_=>1} @{$config->{ok_tables}}}
+       if ref $config->{ok_tables} eq "ARRAY";
     warn "We don't have that table ($self->{table})"
         if $self->debug and not $config->{ok_tables}{$self->{table}};
     return DECLINED() unless exists $config->{ok_tables}{$self->{table}};