Dancer-Plugin-Auth-RBAC-Permissions-DBIC

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

    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 )