diff options
Diffstat (limited to 'lib/Fripost/Schema/Alias.pm')
-rw-r--r-- | lib/Fripost/Schema/Alias.pm | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/Fripost/Schema/Alias.pm b/lib/Fripost/Schema/Alias.pm index 7d729f0..f575b4c 100644 --- a/lib/Fripost/Schema/Alias.pm +++ b/lib/Fripost/Schema/Alias.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/; @@ -79,7 +80,7 @@ sub replace { } eval { - my ($l,$d) = split /\@/, email_to_ascii($a->{alias}), 2; + my ($l,$d) = split_addr( $a->{alias}, -encoding => 'ascii' ); &_is_valid($a); my $mesg = $self->ldap->modify( "fva=$l,fvd=$d,".$self->suffix, @@ -112,7 +113,7 @@ sub add { eval { die "Missing alias name\n" unless $a->{alias} =~ /^.+\@.+$/; - my ($l,$d) = split /\@/, email_to_ascii($a->{alias}), 2; + my ($l,$d) = split_addr( $a->{alias}, -encoding => 'ascii' ); &_is_valid($a); die "‘".$a->{alias}."’ already exists\n" if $self->local->exists($a->{alias},%options); @@ -144,7 +145,7 @@ Delete the given alias. 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( "fva=$l,fvd=$d,".$self->suffix ); @@ -186,7 +187,7 @@ Guilhem Moulin C<< <guilhem at fripost.org> >> =head1 COPYRIGHT -Copyright 2012 Guilhem Moulin. +Copyright 2012,2013 Guilhem Moulin. =head1 LICENSE |