Catalyst::Plugin::Authentication::CDBI.3pm

Langue: en

Version: 2005-12-08 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NAME

Catalyst::Plugin::Authentication::CDBI - CDBI Authentication for Catalyst

SYNOPSIS

     use Catalyst 'Authentication::CDBI';
     __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" or "MD5" (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

prepare_action
sets $c->request->{user} from session.
setup
sets up $c->config->{authentication}.

OVERLOADED METHODS

process_roles
Takes an arrayref of roles and checks if user has the supplied roles. Returns 1/0.

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> This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.