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

Note that this plugin requires a session plugin like "Catalyst::Plugin::Session::FastMmap".

EXTENDED METHODS
prepare_action
setup
OVERLOADED METHODS
process_roles
METHODS
login
Login.

$c->login( $user, $password );

logout
Logout.

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
Login.

$c->session_login( $user, $password );

session_logout
Session logout.

SEE ALSO

Catalyst.

AUTHOR

Sebastian Riedel, "sri@cpan.org"

COPYRIGHT

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