X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FPlugin%2FAuthentication.pm;h=91ac80b900308b1012a435653774f3f25a15f045;hb=3fd45491a40674b1913fe9fb9dbb33bb1210acdb;hp=1ea5b7ac84e53f76e9bc328a0e6e03371d0b0f9c;hpb=0c4fbc79e50eadae9616dab21b9be132ed6cc98c;p=catagits%2FCatalyst-Plugin-Authentication.git diff --git a/lib/Catalyst/Plugin/Authentication.pm b/lib/Catalyst/Plugin/Authentication.pm index 1ea5b7a..91ac80b 100644 --- a/lib/Catalyst/Plugin/Authentication.pm +++ b/lib/Catalyst/Plugin/Authentication.pm @@ -12,7 +12,7 @@ use Tie::RefHash; use Class::Inspector; use Catalyst::Authentication::Realm; -our $VERSION = "0.10011"; +our $VERSION = "0.10013"; sub set_authenticated { my ( $c, $user, $realmname ) = @_; @@ -165,10 +165,10 @@ sub find_realm_for_persisted_user { } else { ## we have no choice but to ask each realm whether it has a persisted user. foreach my $realmname (@{$c->_auth_realm_restore_order}) { - my $ret = $c->auth_realms->{$realmname}->user_is_restorable($c); - if ($ret) { - return $c->auth_realms->{$realmname}; - } + my $realm = $c->auth_realms->{$realmname} + || Catalyst::Exception->throw("Could not find authentication realm '$realmname'"); + return $realm + if $realm->user_is_restorable($c); } } return undef; @@ -342,14 +342,13 @@ sub setup_auth_realm { sub auth_realms { my $self = shift; + $self->_authentication_initialize(); # Ensure _auth_realms created! return($self->_auth_realms); } sub get_auth_realm { my ($app, $realmname) = @_; - return $app->auth_realms->{$realmname}; - } @@ -626,7 +625,7 @@ This means that our application will begin like this: Authentication /; - __PACKAGE__->config->{'Plugin::Authentication'} = + __PACKAGE__->config( 'Plugin::Authentication' => { default => { credential => { @@ -649,7 +648,8 @@ This means that our application will begin like this: } } } - }; + } + ); This tells the authentication plugin what realms are available, which credential and store modules are used, and the configuration of each. With @@ -745,7 +745,7 @@ efficient to maintain a hash of users, so you move this data to a database. You can accomplish this simply by installing the L Store and changing your config: - __PACKAGE__->config->{'Plugin::Authentication'} = + __PACKAGE__->config( 'Plugin::Authentication'} => { default_realm => 'members', members => { @@ -760,7 +760,8 @@ changing your config: role_column => 'roles' } } - }; + } + ); The authentication system works behind the scenes to load your data from the new source. The rest of your application is completely unchanged. @@ -769,7 +770,7 @@ new source. The rest of your application is completely unchanged. =head1 CONFIGURATION # example - __PACKAGE__->config->{'Plugin::Authentication'} = + __PACKAGE__->config( 'Plugin::Authentication' => { default_realm => 'members', @@ -796,7 +797,8 @@ new source. The rest of your application is completely unchanged. authserver => '192.168.10.17' } } - }; + } + ); NOTE: Until version 0.10008 of this module, you would need to put all the realms inside a "realms" key in the configuration. Please see @@ -986,6 +988,8 @@ L =item L +=back + =head2 Authorization L, @@ -1024,7 +1028,7 @@ Until version 0.10008 of this module, you needed to put all the realms inside a "realms" key in the configuration. # example - __PACKAGE__->config->{'Plugin::Authentication'} = + __PACKAGE__->config( 'Plugin::Authentication'} => { default_realm => 'members', realms => { @@ -1032,9 +1036,10 @@ realms inside a "realms" key in the configuration. ... }, }, - }; + } + ); -If you use the old, deprecated C<< __PACKAGE__->config->{'authentication'} >> +If you use the old, deprecated C<< __PACKAGE__->config( 'authentication' ) >> configuration key, then the realms key is still required. =head1 COMPATIBILITY ROUTINES @@ -1068,7 +1073,7 @@ included here for reference only. Return the store whose name is 'default'. -This is set to C<< $c->config->{'Plugin::Authentication'}{store} >> if that value exists, +This is set to C<< $c->config( 'Plugin::Authentication' => { store => # Store} ) >> if that value exists, or by using a Store plugin: # load the Minimal authentication store. @@ -1107,7 +1112,11 @@ Jess Robinson David Kamholz -Tomas Doran (t0m), C +Tomas Doran (t0m), C + +kmx + +Nigel Metheringham =head1 COPYRIGHT & LICENSE