r33948@cain (orig r5498): jayk | 2006-11-12 06:19:21 +0000
[catagits/Catalyst-Plugin-Authentication.git] / lib / Catalyst / Plugin / Authentication / Store / Minimal.pm
1 #!/usr/bin/perl
2
3 package Catalyst::Plugin::Authentication::Store::Minimal;
4
5 use strict;
6 use warnings;
7
8 use Catalyst::Plugin::Authentication::Store::Minimal::Backend;
9
10 sub setup {
11     my $c = shift;
12
13     $c->default_auth_store(
14         Catalyst::Plugin::Authentication::Store::Minimal::Backend->new( 
15             $c->config->{authentication}, $c
16         )
17     );
18
19         $c->NEXT::setup(@_);
20 }
21
22 __PACKAGE__;
23
24 __END__
25
26 =pod
27
28 =head1 NAME
29
30 Catalyst::Plugin::Authentication::Store::Minimal - Authentication
31 database in C<< $c->config >>.
32
33 =head1 SYNOPSIS
34
35     use Catalyst qw/
36       Authentication
37       /;
38
39     __PACKAGE__->config->{authentication}{users} = {
40         name => {
41             password => "s3cr3t",
42             roles    => [qw/admin editor/],
43             ...
44         },
45     };
46
47     sub login : Global {
48         my ( $self, $c ) = @_;
49
50         $c->login( $c->req->param("login"), $c->req->param("password"), );
51     }
52
53 =head1 DESCRIPTION
54
55 This authentication store plugin lets you create a very quick and dirty user
56 database in your application's config hash.
57
58 You will need to include the Authentication plugin, and at least one Credential
59 plugin to use this Store. Credential::Password is reccommended.
60
61 It's purpose is mainly for testing, and it should probably be replaced by a
62 more "serious" store for production.
63
64 The hash in the config, as well as the user objects/hashes are freely mutable
65 at runtime.
66
67 =head1 CONFIGURATION
68
69 =over 4
70
71 =item users
72
73 This is a simple hash of users, the keys are the usenames, and the values are
74 hashrefs containing a password key/value pair, and optionally, a roles/list 
75 of role-names pair. If using roles, you will also need to add the 
76 Authorization::Roles plugin.
77
78 See the SYNOPSIS for an example.
79
80 =back
81
82 =head1 INTERNAL METHODS
83
84 =over 4
85
86 =item setup
87
88 This method will popultate C<< $c->config->{authentication}{store} >> so that
89 L<Catalyst::Plugin::Authentication/default_auth_store> can use it.
90
91 =back
92
93 =cut
94
95