1 |
dpavlin |
231 |
use strict; |
2 |
|
|
use warnings; |
3 |
|
|
|
4 |
|
|
=head1 NAME |
5 |
|
|
|
6 |
|
|
A3C::Action::SearchLDAP |
7 |
|
|
|
8 |
|
|
=cut |
9 |
|
|
|
10 |
|
|
package A3C::Action::SearchLDAP; |
11 |
|
|
use base qw/A3C::Action Jifty::Action/; |
12 |
|
|
|
13 |
|
|
use Jifty::Param::Schema; |
14 |
|
|
use Jifty::Action schema { |
15 |
|
|
|
16 |
|
|
param base => |
17 |
|
|
label is _('LDAP base'), |
18 |
|
|
default is 'dc=skole,dc=hr', |
19 |
|
|
is mandatory; |
20 |
|
|
|
21 |
|
|
param filter => |
22 |
|
|
label is _('LDAP filter'), |
23 |
|
|
default is '(objectClass=hrEduOrg)', |
24 |
|
|
is mandatory; |
25 |
|
|
|
26 |
|
|
param sizelimit => |
27 |
|
|
label is _('Maximum results'), |
28 |
|
|
default is 10, |
29 |
|
|
available are [ 10, 50, 100, 500, 1000 ], |
30 |
|
|
render as 'Select'; |
31 |
|
|
|
32 |
|
|
}; |
33 |
|
|
|
34 |
|
|
use A3C::LDAP; |
35 |
|
|
use Data::Dump qw/dump/; |
36 |
|
|
|
37 |
|
|
sub sticky_on_success { 1 } |
38 |
|
|
sub sticky_on_failure { 1 } |
39 |
|
|
|
40 |
|
|
=head2 take_action |
41 |
|
|
|
42 |
|
|
=cut |
43 |
|
|
|
44 |
|
|
sub take_action { |
45 |
|
|
my $self = shift; |
46 |
|
|
|
47 |
|
|
if ( $self->result->success ) { |
48 |
|
|
my $ldap = A3C::LDAP->new; |
49 |
|
|
$ldap->search( |
50 |
|
|
base => $self->argument_value( 'base' ), |
51 |
|
|
filter => $self->argument_value( 'filter' ), |
52 |
|
|
sizelimit => $self->argument_value( 'sizelimit' ), |
53 |
|
|
); |
54 |
|
|
$self->result->message( _('Found %1 LDAP entries', scalar $ldap->current_search->entries ) ); |
55 |
|
|
$self->result->content( 'current_search' => $ldap->current_search ); |
56 |
|
|
# } else { |
57 |
|
|
# $self->result->error(); |
58 |
|
|
} |
59 |
|
|
|
60 |
|
|
return 1; |
61 |
|
|
} |
62 |
|
|
|
63 |
|
|
1; |
64 |
|
|
|