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.