aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Fripost/Schema/User.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Fripost/Schema/User.pm')
-rw-r--r--lib/Fripost/Schema/User.pm20
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/Fripost/Schema/User.pm b/lib/Fripost/Schema/User.pm
index c1d559a..ff8691f 100644
--- a/lib/Fripost/Schema/User.pm
+++ b/lib/Fripost/Schema/User.pm
@@ -18,7 +18,7 @@ use utf8;
use parent 'Fripost::Schema';
use Fripost::Schema::Misc qw/concat explode must_attrs email_valid
- split_addr/;
+ split_addr canonical_dn/;
use Net::IDN::Encode qw/domain_to_ascii
email_to_ascii email_to_unicode/;
@@ -41,7 +41,7 @@ sub search {
my $concat = $options{'-concat'};
my $users = $self->ldap->search(
- base => "fvd=$d,".$self->suffix,
+ base => canonical_dn( {fvd => $d}, @{$self->suffix} ),
scope => 'one',
deref => 'never',
filter => 'objectClass=FripostVirtualUser',
@@ -85,7 +85,7 @@ sub replace {
my ($l,$d) = split_addr( $m->{user}, -encoding => 'ascii' );
&_is_valid($m);
my $mesg = $self->ldap->modify(
- "fvu=$l,fvd=$d,".$self->suffix,
+ canonical_dn( {fvu => $l}, {fvd => $d}, @{$self->suffix} ),
replace => { fripostIsStatusActive => $m->{isactive} ?
'TRUE' : 'FALSE'
, description => $m->{description}
@@ -111,8 +111,9 @@ sub passwd {
my %options = @_;
my $mesg = $self->ldap->modify(
- "fvu=$l,fvd=$d,".$self->suffix,
- replace => { userPassword => $pw } );
+ canonical_dn( {fvu => $l}, {fvd => $d}, @{$self->suffix} ),
+ replace => { userPassword => $pw }
+ );
return "Cannot change password" if $mesg->code;
}
@@ -151,8 +152,10 @@ sub add {
$attrs{fripostOptionalMaildrop} = $m->{forwards}
if defined $m->{forwards} and @{$m->{forwards}};
- my $mesg = $self->ldap->add( "fvu=$l,fvd=$d,".$self->suffix,
- attrs => [ %attrs ] );
+ my $mesg = $self->ldap->add(
+ canonical_dn( {fvu => $l}, {fvd => $d}, @{$self->suffix} ),
+ attrs => [ %attrs ]
+ );
if ($mesg->code) {
die $options{'-die'}."\n" if defined $options{'-die'};
die $mesg->error."\n";
@@ -174,7 +177,8 @@ sub delete {
my ($l,$d) = split_addr( shift, -encoding => 'ascii' );
my %options = @_;
- my $mesg = $self->ldap->delete( "fvu=$l,fvd=$d,".$self->suffix );
+ my $mesg = $self->ldap->delete( canonical_dn( {fvu => $l}, {fvd => $d},
+ @{$self->suffix} ) );
if ($mesg->code) {
if (defined $options{'-die'}) {
return $mesg->error unless $options{'-die'};