Dancer-Plugin-Auth-RBAC-Permissions-DBIC
view release on metacpan or search on metacpan
from Dancer::Plugin::Auth::RBAC
CONFIGURATION
Minimal example:
plugins:
DBIC:
Auth:
dsn: "dbi:SQLite:dbname=./foo.db"
Auth::RBAC:
credentials:
class: DBIC
permissions:
class: DBIC
The following config options are avaialable:
handle
The handle of the Dancer::Plugin::DBIC schema to use. Only needed if
you have more than one schema defined.
lib/Dancer/Plugin/Auth/RBAC/Permissions/DBIC.pm view on Meta::CPAN
use strict;
use warnings;
use parent 'Dancer::Plugin::Auth::RBAC::Permissions';
use Dancer::Plugin::DBIC 0.15;
sub subject_asa {
my ($self, $options, @arguments) = @_;
my $role = shift @arguments;
return unless $role;
my $user = $self->credentials;
return unless $user->{id};
my $settings = $class::settings;
my $moniker = $options->{user_moniker} ||= "User";
my $role_relation = exists($options->{role_relation}) ? $options->{role_relation} : "roles";
my $role_name_field = $options->{role_name_field} ||= "name";
my $user_rs = schema($options->{handle})->resultset($moniker);
if ( $role ) {
if (my $user = $user_rs->find($user->{id})) {
lib/Dancer/Plugin/Auth/RBAC/Permissions/DBIC.pm view on Meta::CPAN
}
}
}
return;
}
sub subject_can {
my ($self, $options, @arguments) = @_;
my ($operation, $action) = @arguments;
return unless $operation && $action;
my $user = $self->credentials;
return unless $user->{id};
my $settings = $class::settings;
my $moniker = $options->{user_moniker} ||= "User";
my $role_relation = exists($options->{role_relation}) ? $options->{role_relation} : "roles";
my $perm_relation = exists($options->{perm_relation}) ? $options->{perm_relation} : "permissions";
my $ops_relation = exists($options->{ops_relation}) ? $options->{ops_relation} : "operations";
my $role_name_field = $options->{role_name_field} ||= "name";
my $perm_name_field = $options->{perm_name_field} ||= "name";
my $ops_name_field = $options->{ops_name_field} ||= "name";
lib/Dancer/Plugin/Auth/RBAC/Permissions/DBIC.pm view on Meta::CPAN
=head1 CONFIGURATION
Minimal example:
plugins:
DBIC:
Auth:
dsn: "dbi:SQLite:dbname=./foo.db"
Auth::RBAC:
credentials:
class: DBIC
permissions:
class: DBIC
The following config options are avaialable:
=over
=item handle
t/Dancer-Plugin-Auth-RBAC-Permissions-DBIC.t view on Meta::CPAN
__DATA__
---
DBIC:
Auth:
schema_class: TestSchema
dsn: "dbi:SQLite:dbname=:memory:"
default:
schema_class: TestSchema
dsn: "dbi:SQLite:dbname=:memory:"
Auth::RBAC:
credentials:
class: DBIC
permissions:
class: DBIC
( run in 0.250 second using v1.01-cache-2.11-cpan-4d50c553e7e )