correction for unexpected check for _application being blessed
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Controller.pm
index 0203b29..effe827 100644 (file)
@@ -155,6 +155,11 @@ sub _AUTO : Private {
     my ( $self, $c ) = @_;
     my @auto = $c->get_actions( 'auto', $c->namespace );
     foreach my $auto (@auto) {
+        # We FORCE the auto action user to explicitly return
+        # true.  We need to do this since there's some auto
+        # users (Catalyst::Authentication::Credential::HTTP) that
+        # actually do a detach instead.  
+        $c->state(0);
         $auto->dispatch( $c );
         return 0 unless $c->state;
     }
@@ -214,7 +219,18 @@ around action_namespace => sub {
             $case_s = $class->config->{case_sensitive};
         } else {
             if (ref $self) {
-                $case_s = ref($self->_application)->config->{case_sensitive};
+                # This seems like total wack from 2009.  Not sure
+                # why we'd take a ref on _application since we
+                # expect it to be a string... Seems like it was
+                # part of a whole bunch of changes related to the
+                # failed app/ctx stuff from years ago.  However
+                # in cases where the controller gets called in
+                # application context, this now fails hard.  I've
+                # added defensive 'if its a ref' code just to be
+                # safe but I don't think its really ever used
+                my $local_app = ref($self->_application) ?
+                  ref($self->_application): $self->_application;
+                $case_s = $local_app->config->{case_sensitive};
             } else {
                 confess("Can't figure out case_sensitive setting");
             }