Class-User-DBI

A User class: Login credentials and roles.

Through a DBIx::Connector object, this module models a "User" class, with
login credentials, and access roles.  Login credentials include a passphrase,
and optionally per user IP whitelisting.

The module is designed to simplify user logins, and basic administrative user
maintenance.  Passphrases are salted with a 512 bit random salt (unique per
user) using a cryptographically strong random number generator, and converted
to a SHA2-512 digest before being stored in the database.  All subsequent
passphrase validation checks test against the salt and passphrase SHA2 hash.

IP whitelists may be maintained per user.  If a user is set to require an IP
check, then the user validates only if his passphrase authenticates AND his
IP is found in the whitelist associated with his user id.

Users may be given a role, roles may have privileges.  Users may have multiple
"domains" (localities).  See the POD for the full documentation, and
examples/ for an example script.
scripts/  contains a helpful database configuration script.

DEPENDENCIES

This module requires List::MoreUtils, DBIx::Connector, and 
Authen::Passphrase::SaltedSHA512.

It also requires a database back-end.  The test suite will use DBD::SQLite,
but it has also been tested with DBD::mysql.  None of these dependencies could
be considered light-weight.  The dependency chain of this module is
indicative of the difficulty in assuring cryptographically strong random
salt generation, reliable SHA2-512 hashing of passphrases, fork-safe database
connectivity, and transactional commits for inserts and updates spanning
multiple tables. 

CONFIGURATION

The database needs seven tables.  They can be automatically generated by running
the configuration script provided in the scripts/ directory.

Please read the module's POD for a more thorough explanation and tips on 
configuring the database.

INSTALLATION

To install this module, run the following commands:

	perl Makefile.PL
	make
	make test
	make install

SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

    perldoc Class::User::DBI

You can also look for information at:

    RT, CPAN's request tracker (report bugs here)
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Class-User-DBI

    AnnoCPAN, Annotated CPAN documentation
        http://annocpan.org/dist/Class-User-DBI

    CPAN Ratings
        http://cpanratings.perl.org/d/Class-User-DBI

    Search CPAN
        http://search.cpan.org/dist/Class-User-DBI/


LICENSE AND COPYRIGHT

Copyright (C) 2012 David Oswald

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.
