X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FPlugin%2FAuthentication.pm;h=0e81f639aae7322b94656bf732b81316d133062d;hb=refs%2Ftags%2Fv0.10011;hp=d624cae414531eaab85434f4ed4f2d7f4e542608;hpb=5d3b0def28dd06ea26b751f26710e3db069fb588;p=catagits%2FCatalyst-Plugin-Authentication.git diff --git a/lib/Catalyst/Plugin/Authentication.pm b/lib/Catalyst/Plugin/Authentication.pm index d624cae..0e81f63 100644 --- a/lib/Catalyst/Plugin/Authentication.pm +++ b/lib/Catalyst/Plugin/Authentication.pm @@ -2,18 +2,17 @@ package Catalyst::Plugin::Authentication; use base qw/Class::Accessor::Fast Class::Data::Inheritable/; -BEGIN { - __PACKAGE__->mk_accessors(qw/_user/); -} +__PACKAGE__->mk_accessors(qw/_user/); use strict; use warnings; +use MRO::Compat; use Tie::RefHash; use Class::Inspector; use Catalyst::Authentication::Realm; -our $VERSION = "0.10009_01"; +our $VERSION = "0.10011"; sub set_authenticated { my ( $c, $user, $realmname ) = @_; @@ -34,7 +33,7 @@ sub set_authenticated { $c->persist_user(); - $c->NEXT::set_authenticated($user, $realmname); + $c->maybe::next::method($user, $realmname); } sub user { @@ -99,7 +98,7 @@ sub persist_user { ## if we have a valid session handler - we store the ## realm in the session. If not - we have to hope that ## the realm can recognize its frozen user somehow. - if ($c->isa("Catalyst::Plugin::Session") && + if ($c->can('session') && $c->config->{'Plugin::Authentication'}{'use_session'} && $c->session_is_valid) { @@ -132,7 +131,7 @@ sub logout { $realm->remove_persisted_user($c); } - $c->NEXT::logout(@_); + $c->maybe::next::method(@_); } sub find_user { @@ -154,7 +153,7 @@ sub find_realm_for_persisted_user { my $c = shift; my $realm; - if ($c->isa("Catalyst::Plugin::Session") + if ($c->can('session') and $c->config->{'Plugin::Authentication'}{'use_session'} and $c->session_is_valid and exists($c->session->{'__user_realm'})) { @@ -189,7 +188,7 @@ sub auth_restore_user { $c->_user( my $user = $realm->restore_user( $c, $frozen_user ) ); # this sets the realm the user originated in. - $user->auth_realm($realm->name); + $user->auth_realm($realm->name) if $user; return $user; @@ -201,7 +200,7 @@ sub setup { my $app = shift; $app->_authentication_initialize(); - $app->NEXT::setup(@_); + $app->next::method(@_); } ## the actual initialization routine. whee. @@ -885,6 +884,10 @@ changed the user data and want to ensure that future requests reflect the most current data. Assumes that at the time of this call, $c->user contains the most current data. +=head2 find_realm_for_persisted_user() + +Private method, do not call from user code! + =head1 INTERNAL METHODS These methods are for Catalyst::Plugin::Authentication B only. @@ -1047,6 +1050,8 @@ Jess Robinson David Kamholz +Tomas Doran (t0m), C + =head1 COPYRIGHT & LICENSE Copyright (c) 2005 the aforementioned authors. All rights