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.pm13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/Fripost/Schema/User.pm b/lib/Fripost/Schema/User.pm
index 11f5e28..c1d559a 100644
--- a/lib/Fripost/Schema/User.pm
+++ b/lib/Fripost/Schema/User.pm
@@ -17,7 +17,8 @@ use warnings;
use utf8;
use parent 'Fripost::Schema';
-use Fripost::Schema::Misc qw/concat explode must_attrs email_valid/;
+use Fripost::Schema::Misc qw/concat explode must_attrs email_valid
+ split_addr/;
use Net::IDN::Encode qw/domain_to_ascii
email_to_ascii email_to_unicode/;
@@ -81,7 +82,7 @@ sub replace {
}
eval {
- my ($l,$d) = split /\@/, email_to_ascii($m->{user}), 2;
+ my ($l,$d) = split_addr( $m->{user}, -encoding => 'ascii' );
&_is_valid($m);
my $mesg = $self->ldap->modify(
"fvu=$l,fvd=$d,".$self->suffix,
@@ -105,7 +106,7 @@ may want to hash it before hand.
sub passwd {
my $self = shift;
- my ($l,$d) = split /\@/, email_to_ascii(shift), 2;
+ my ($l,$d) = split_addr( shift, -encoding => 'ascii' );
my $pw = shift;
my %options = @_;
@@ -135,7 +136,7 @@ sub add {
eval {
die "Missing user name\n" unless $m->{user} =~ /^.+\@.+$/;
- my ($l,$d) = split /\@/, email_to_ascii($m->{user}), 2;
+ my ($l,$d) = split_addr( $m->{user}, -encoding => 'ascii' );
&_is_valid($m);
die "‘".$m->{user}."’ already exists\n"
if $self->local->exists($m->{user},%options);
@@ -170,7 +171,7 @@ but merely delete its entry in the LDAP directory.
sub delete {
my $self = shift;
- my ($l,$d) = split /\@/, email_to_ascii(shift), 2;
+ my ($l,$d) = split_addr( shift, -encoding => 'ascii' );
my %options = @_;
my $mesg = $self->ldap->delete( "fvu=$l,fvd=$d,".$self->suffix );
@@ -213,7 +214,7 @@ Guilhem Moulin C<< <guilhem at fripost.org> >>
=head1 COPYRIGHT
-Copyright 2012 Guilhem Moulin.
+Copyright 2012,2013 Guilhem Moulin.
=head1 LICENSE