The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.

METHODS

login

Attempt to authenticate a user. Takes username/password as arguments,

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

User remains authenticated until end of request.

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.

AUTHOR

Sebastian Riedel, sri@cpan.org Marcus Ramberg, mramberg@cpan.org

COPYRIGHT

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