Commit | Line | Data |
---|---|---|
e8a7c384 | 1 | #!/usr/bin/perl |
2 | ||
3 | package Catalyst::Plugin::Authentication::Store::Htpasswd::User; | |
4 | use base qw/Catalyst::Plugin::Authentication::User Class::Accessor::Fast/; | |
5 | ||
6 | use strict; | |
7 | use warnings; | |
8 | ||
039544ff | 9 | BEGIN { __PACKAGE__->mk_accessors(qw/user store/) } |
e8a7c384 | 10 | |
47fb088e | 11 | use overload '""' => sub { shift->user->username }; |
12 | ||
e8a7c384 | 13 | sub new { |
039544ff | 14 | my ( $class, $store, $user ) = @_; |
e8a7c384 | 15 | |
039544ff | 16 | bless { store => $store, user => $user }, $class; |
e8a7c384 | 17 | } |
18 | ||
19 | sub supported_features { | |
20 | return { | |
21 | password => { | |
22 | self_check => 1, | |
47fb088e | 23 | }, |
24 | session => 1 | |
e8a7c384 | 25 | }; |
26 | } | |
27 | ||
28 | sub check_password { | |
29 | my ( $self, $password ) = @_; | |
30 | ||
3e0bbcff | 31 | return $self->user->check_password( $password ); |
e8a7c384 | 32 | } |
33 | ||
34 | sub roles { | |
35 | my $self = shift; | |
3e0bbcff | 36 | split( ",", $self->user->extra_info ); |
e8a7c384 | 37 | } |
38 | ||
47fb088e | 39 | sub for_session { |
40 | my $self = shift; | |
ec31fe73 | 41 | return $self->user->username; |
47fb088e | 42 | } |
43 | ||
039544ff | 44 | sub AUTOLOAD { |
45 | my $self = shift; | |
46 | ||
47 | ( my $method ) = ( our $AUTOLOAD =~ /([^:]+)$/ ); | |
48 | ||
49 | return if $method eq "DESTROY"; | |
50 | ||
51 | $self->user->$method; | |
47fb088e | 52 | } |
53 | ||
e8a7c384 | 54 | __PACKAGE__; |
55 | ||
56 | __END__ | |
57 | ||
58 | =pod | |
59 | ||
60 | =head1 NAME | |
61 | ||
62 | Catalyst::Plugin::Authentication::Store::Htpasswd::User - A user object | |
63 | representing an entry in an htpasswd file. | |
64 | ||
65 | =head1 SYNOPSIS | |
66 | ||
67 | use Catalyst::Plugin::Authentication::Store::Htpasswd::User; | |
68 | ||
69 | =head1 DESCRIPTION | |
70 | ||
71 | =cut | |
72 | ||
73 |