switch to using Moose compat layer, so we can silence warnings when using make_immuta...
[catagits/Catalyst-Plugin-Authentication.git] / lib / Catalyst / Plugin / Authentication.pm
index 4898277..04dab2f 100644 (file)
@@ -1,18 +1,17 @@
 package Catalyst::Plugin::Authentication;
 
-use base qw/Class::Accessor::Fast/;
-
-__PACKAGE__->mk_accessors(qw/_user/);
-
-use strict;
-use warnings;
-
+use Moose;
+use namespace::clean -except => 'meta';
 use MRO::Compat;
 use Tie::RefHash;
 use Class::Inspector;
 use Catalyst::Authentication::Realm;
 
-our $VERSION = "0.10016";
+with 'MooseX::Emulate::Class::Accessor::Fast';
+
+__PACKAGE__->mk_accessors(qw/_user/);
+
+our $VERSION = "0.10018";
 
 sub set_authenticated {
     my ( $c, $user, $realmname ) = @_;
@@ -474,6 +473,7 @@ sub auth_stores {
     my %hash = ( 'default' => $self->get_auth_realm('default')->store);
 }
 
+__PACKAGE__->meta->make_immutable;
 __PACKAGE__;
 
 __END__
@@ -863,14 +863,20 @@ default realm is checked.
 =head2 $c->user( )
 
 Returns the currently logged in user, or undef if there is none.
+Normally the user is re-retrieved from the store.
+For L<Catalyst::Authentication::Store::DBIx::Class> the user is re-restored 
+using the primary key of the user table. 
+Thus B<user> can throw an error even though B<user_exists>
+returned true.
 
 =head2 $c->user_exists( )
 
 Returns true if a user is logged in right now. The difference between
-user_exists and user is that user_exists will return true if a user is logged
+B<user_exists> and B<user> is that user_exists will return true if a user is logged
 in, even if it has not been yet retrieved from the storage backend. If you only
 need to know if the user is logged in, depending on the storage mechanism this
 can be much more efficient.
+B<user_exists> only looks into the session while B<user> is trying to restore the user.
 
 =head2 $c->user_in_realm( $realm )
 
@@ -1126,9 +1132,11 @@ Florian Ragwitz C<rafl@debian.org>
 
 Stephan Jauernick C<stephanj@cpan.org>
 
+Oskari Ojala (Okko), C<perl@okko.net>
+
 =head1 COPYRIGHT & LICENSE
 
-Copyright (c) 2005 - 2009
+Copyright (c) 2005 - 2011
 the Catalyst::Plugin::Authentication L</AUTHORS>
 as listed above.