On Mon, Oct 29, 2012 at 2:07 PM, Craig Chant
<cr...@homeloanpartnership.com>wrote:

>  sub begin :Private {
>
>
>
>     my ( $self, $c ) = @_;
>
>
>
>     # Authenticate
>
>     $self->AuthenticateUser();
>

*Note, you don't pass $c to AuthenticateUser here!*



>      return 1;
>
>
>
> }
>
>
>
> I then have...
>
>
>
> sub AuthenticateUser {
>
>
>
>     my ( $self, $c ) = @_;
>
>
>
>     $c->session;
>
>     if(!$c->model('Members')->LogCheck($c)){
>
>         $c->uri_for_action('/login/login');
>
>     }
>
>
>
> }
>
>
>
> However, $c is undefined and errors, it only works if I pass it $c from
> 'begin'..
>
>
>
>     $self->AuthenticateUser($c);
>
>
>
>
>
> I was under the impression that $c was the context (Catalyst) default
> variable and was always passed to every method / subroutine.
>
>
>
> is this not the case?
>

*Right, that's not the case. It only passes to the :Chained or :Args or
:CaptureArgs methods. This leaves you free to create your own internal
methods that don't get extra $c args interfering with your logic.*
*
*

-- 
 Will Trillich :: 812.454.6431

“Grading takes away all the fun from failing. And a huge part of education
is about failure.”  -- Shimon Schocken
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to