NAME
Dancer::Plugin::Auth::RBAC - Dancer Authentication, Security and Role-Based Access Control Framework!
VERSION
version 1.110720
SYNOPSIS
post
'/login'
=>
sub
{
my
$auth
= auth(params->{user}, params->{pass});
if
(!
$auth
->errors) {
if
(
$auth
->asa(
'guest'
)) {
...
}
if
(
$auth
->can(
'manage_accounts'
,
'create'
)) {
...
}
}
else
{
$auth
->errors;
}
};
Note! The authentication framework relies heavily on your choosen session engine, please remember to set that appropiately in your application configuration file.
DESCRIPTION
Dancer::Plugin::Auth::RBAC is an authentication framework and role-based access control system. As a role-based access control system Dancer::Plugin::Auth::RBAC can be complex but will give you the most flexibilty over all other access control philosophies.
The Dancer::Plugin::Auth::RBAC plugin provides your application with the ability to easily authenticate and restrict access to specific users and groups by providing a tried and tested RBAC (role-based access control) system. Dancer::Plugin::Auth::RBAC provides this level of sophistication with minimal configuration.
Dancer::Plugin::Auth::RBAC exports the auth() and authd() keywords:
$auth
= auth(
$login
,
$pass
)
# new authorization instance
$auth
->asa(
$role
)
# check if the authenticated user has the specified role
$auth
->can(
$operation
)
# check if the authenticated user has permission
$auth
->can(
$operation
,
$action
)
# to perform a specific action
$auth
->roles(
@roles
)
# get or set roles for the current logged in user
$auth
->errors()
# authentication errors if any
$auth
->revoke()
# revoke authorization (logout)
return
authd()
# is the current user authorized?
The Dancer::Plugin::Auth::RBAC authentication framework relies on the Dancer::Plugin::Auth::RBAC::Credentials namespace to do the actual authentication, and likewise relies on the Dancer::Plugin::Auth::RBAC::Permissions namespace to handle access control. The following configuration example is based on Dancer::Plugin::Auth::RBAC::Credentials::Config and Dancer::Plugin::Auth::RBAC::Permissions::Config. This framework also ship with Dancer::Plugin::Auth::RBAC::Credentials::SQLite, Dancer::Plugin::Auth::RBAC::Credentials::MySQL, Dancer::Plugin::Auth::RBAC::Credentials::PostrgeSQL which are arguably easier to setup and utilize.
CONFIGURATION
plugins:
Auth::RBAC:
credentials:
class: Config
options:
accounts:
user01:
password: foobar
roles:
- guest
- user
user02:
password: barbaz
roles:
- admin
permissions:
class: Config
options:
control:
admin:
permissions:
manage accounts:
operations:
- view
- create
- update
-
delete
user:
permissions:
manage accounts:
operations:
- view
- create
guests:
permissions:
manage accounts:
operations:
- view
AUTHOR
Al Newkirk <awncorp
@cpan
.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by awncorp.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.