There's no black-magic going on, so your AuthenticateUser() sub never "magically" gets $c.

In short, you'll only get $c when using the method attributes, such as :Private, :Chained, etc.




On 10/29/2012 07:07 PM, Craig Chant wrote:
Hi,

I seem to be unable to work out why $c is never automatically passed to
any of my models or methods?

I have in root.pm

# always runs first!

sub begin :Private {

my ( $self, $c ) = @_;

# Authenticate

$self->AuthenticateUser();

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?

Thanks,

Craig .

This Email and any attachments contain confidential information and is
intended solely for the individual to whom it is addressed. If this
Email has been misdirected, please notify the author as soon as
possible. If you are not the intended recipient you must not disclose,
distribute, copy, print or rely on any of the information contained, and
all copies must be deleted immediately. Whilst we take reasonable steps
to try to identify any software viruses, any attachments to this e-mail
may nevertheless contain viruses, which our anti-virus software has
failed to identify. You should therefore carry out your own anti-virus
checks before opening any documents. HomeLoan Partnership will not
accept any liability for damage caused by computer viruses emanating
from any attachment or other document supplied with this e-mail.
HomeLoan Partnership reserves the right to monitor and archive all
e-mail communications through its network. No representative or employee
of HomeLoan Partnership has the authority to enter into any contract on
behalf of HomeLoan Partnership by email. HomeLoan Partnership is a
trading name of H L Partnership Limited, registered in England and Wales
with Registration Number 5011722. Registered office: 26-34 Old Street,
London, EC1V 9QQ. H L Partnership Limited is authorised and regulated by
the Financial Services Authority.



_______________________________________________
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/

--
IntelCompute
Web Design & Online Marketing Experts

http://www.intelcompute.com

_______________________________________________
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