man Catalyst::Plugin::Authentication::CDBI () - CDBI Authentication for Catalyst

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 CWClass::DBI classes.

Note that this plugin requires a session plugin such as CWCatalyst::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 "CWuser")
password_field
the name of the column holding the user's password (defaults to "CWpassword")
password_hash
specifies the hashing method for password values; one of: CWSHA or CWMD5 (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 "CWuer")
user_role_role_field
(defaults to "CWrole")

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 CWsession_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 CW$c->request->{user} from session.
setup
sets up CW$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>

COPYRIGHT

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.