File Coverage

blib/lib/App/LDAP/Command/Add/Sudoer.pm
Criterion Covered Total %
statement 4 6 66.6
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 6 8 75.0


line stmt bran cond sub pod time code
1             package App::LDAP::Command::Add::Sudoer;
2              
3 1     1   6 use Modern::Perl;
  1         2  
  1         8  
4              
5 1     1   611 use Moose;
  0            
  0            
6              
7             with qw( App::LDAP::Role::Command
8             App::LDAP::Role::Bindable );
9              
10             has base => (
11             is => "rw",
12             isa => "Str",
13             );
14              
15             use App::LDAP::LDIF::Sudoer;
16              
17             sub run {
18             my ($self, ) = @_;
19              
20             my $sudoername = $self->extra_argv->[2] or die "no sudoer name specified";
21              
22             die "sudoer $sudoername already exists" if App::LDAP::LDIF::Sudoer->search(
23             base => config()->{sudoers_base}->[0],
24             scope => config()->{sudoers_base}->[1] // "sub",
25             filter => "cn=$sudoername",
26             );
27              
28             my $sudoer = App::LDAP::LDIF::Sudoer->new(
29             base => $self->base // config()->{sudoers_base}->[0],
30             sudoUser => $sudoername,
31             );
32              
33             $sudoer->save;
34              
35             $sudoer;
36             }
37              
38             __PACKAGE__->meta->make_immutable;
39             no Moose;
40              
41             1;