3 package Catalyst::Plugin::Authentication::User::Hash;
4 use base qw/Catalyst::Plugin::Authentication::User/;
17 ( my $key ) = ( our $AUTOLOAD =~ m/([^:]*)$/ );
20 my $arr = $self->{__hash_obj_key_is_array}{$key} = @_ > 1;
21 $self->{$key} = $arr ? [@_] : shift;
24 my $data = $self->{$key};
25 $self->{__hash_obj_key_is_array}{$key} ? @$data : $data;
30 clear => ["password"],
31 crypted => ["crypted_password"],
32 hashed => [qw/hashed_password hash_algorithm/],
40 my ( $self, @spec ) = @_;
42 my $cursor = \%features;
44 # traverse the feature list,
46 die "bad feature spec: @spec"
47 if ref($cursor) ne "HASH";
48 $cursor = $cursor->{$_};
52 die "bad feature spec: @spec" unless ref $cursor eq "ARRAY";
54 # check that all the keys required for a feature are in here
55 foreach my $key (@$cursor) {
56 return undef unless exists $self->{$key};
69 return $self; # let's hope we're serialization happy
73 my ( $self, $c, $user ) = @_;
75 return $user; # if we're serialization happy this should work
86 Catalyst::Plugin::Authentication::User::Hash - An easy authentication user
87 object based on hashes.
91 use Catalyst::Plugin::Authentication::User::Hash;
93 Catalyst::Plugin::Authentication::User::Hash->new(
99 This implementation of authentication user handles is supposed to go hand in
100 hand with L<Catalyst::Plugin::Authentication::Store::Minimal>.
108 Create a new object with the key-value-pairs listed in the arg list.
112 Checks for existence of keys that correspond with features.
116 Just returns $self, expecting it to be serializable.
120 Just passes returns the unserialized object, hoping it's intact.
124 Accessor for the key whose name is the method.