diff options
Diffstat (limited to 'lib/Fripost/Schema/User.pm')
-rw-r--r-- | lib/Fripost/Schema/User.pm | 20 |
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'}; |