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