File Coverage

blib/lib/Ark/Plugin/Authentication/Store/Minimal.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1             package Ark::Plugin::Authentication::Store::Minimal;
2 2     2   1230 use strict;
  2         3  
  2         57  
3 2     2   9 use warnings;
  2         4  
  2         46  
4 2     2   9 use Ark::Plugin 'Auth';
  2         4  
  2         10  
5              
6             has store_minimal_users => (
7             is => 'rw',
8             isa => 'HashRef',
9             lazy => 1,
10             default => sub {
11             my $self = shift;
12             $self->class_config->{'users'} || {};
13             },
14             );
15              
16             around find_user => sub {
17             my $prev = shift->(@_);
18             return $prev if $prev;
19              
20             my ($self, $id, $info) = @_;
21              
22             if (my $user = $self->store_minimal_users->{ $id }) {
23             $self->ensure_class_loaded('Ark::Plugin::Authentication::User');
24             return Ark::Plugin::Authentication::User->new(
25             hash => $user,
26             obj_builder => sub { $user },
27             store => 'Minimal'
28             );
29             }
30              
31             return;
32             };
33              
34             around 'from_session' => sub {
35             my $prev = shift->(@_);
36             return $prev if $prev;
37              
38             my ($self, $user) = @_;
39              
40             return unless $user->{store} eq 'Minimal';
41              
42             $self->ensure_class_loaded('Ark::Plugin::Authentication::User');
43             Ark::Plugin::Authentication::User->new(
44             obj_builder => sub { $user->{hash} },
45             hash => $user->{hash},
46             store => 'Minimal',
47             );
48             };
49              
50             1;