NAME
Catalyst::Plugin::Authentication::CDBI - CDBI Authentication for Catalyst
SYNOPSIS
__PACKAGE__->config->{authentication} = {
user_class
=>
'PetStore::Model::CDBI::Customer'
,
user_field
=>
'email'
,
role_class
=>
'PetStore::Model::CDBI::Role'
,
user_role_class
=>
'PetStore::Model::CDBI::CustomerRole'
,
user_role_user_field
=>
'customer'
};
$c
->login(
$user
,
$password
);
$c
->logout;
$c
->session_login(
$user
,
$password
);
$c
->session_logout;
$c
->roles(
qw/customer admin/
);
CREATE TABLE customer (
id INTEGER PRIMARY KEY,
email TEXT,
password TEXT
);
CREATE TABLE role (
id INTEGER PRIMARY KEY,
name TEXT
);
CREATE TABLE customer_role (
id INTEGER PRIMARY KEY,
customer INTEGER REFERENCES customer,
role INTEGER REFERENCES role
);
DESCRIPTION
This plugin allows you to authenticate your web users using database tables accessed through Class::DBI
classes.
Note that this plugin requires a session plugin such as Catalyst::Plugin::Session::FastMmap
.
This module is now well past the teatime of it's lifespan, and no new features will be added. For new applications, you probably want to look at Catalyst::Plugin::Authentication and friends instead
CONFIGURATION
This plugin is configured by passing an "authentication" hash reference to your application's config method. The following keys are supported:
- user_class
-
the name of the class that represents a user object (no default)
- user_field
-
the name of the column holding the user identifier (defaults to "
user
") - password_field
-
the name of the column holding the user's password (defaults to "
password
") - password_hash
-
specifies the hashing method for password values; one of:
SHA
orMD5
(the values are not case-sensitive and the default is empty, i.e. no hashing). - role_class
-
the name of the role class
- role_field
-
name of the role field
- user_role_class
- user_role_user_field
-
(defaults to "
uer
") - user_role_role_field
-
(defaults to "
role
")
METHODS
- login
-
Attempt to authenticate a user. Takes username/password as arguments,
$c
->login(
$user
,
$password
);
The user remains authenticated until end of request. See
session_login
for persistent login. - logout
-
Log out the user. will not clear the session, so user will still remain logged in at next request unless session_logout is called.
- process_permission
-
check for permissions. used by the 'roles' function.
- roles
-
Check permissions for roles and return true or false.
$c
->roles(
qw/foo bar/
);
Returns an arrayref containing the verified roles.
my
@roles
= @{
$c
->roles };
- session_login
-
Persistently login the user. The user will remain logged in until he clears the session himself, or session_logout is called.
$c
->session_login(
$user
,
$password
);
- session_logout
-
Session logout. will delete the user object from the session.
EXTENDED METHODS
OVERLOADED METHODS
SEE ALSO
Catalyst, Catalyst::Plugin::Session::FastMmap
AUTHOR
Sebastian Riedel <sri@cpan.org>, Marcus Ramberg <mramberg@cpan.org>, Andrew Ford <a.ford@ford-mason.co.uk>
COPYRIGHT
This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.