From c70ea95c7e2e07cccbff9b7cce26e7bb506d1db6 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Fri, 18 Jan 2013 21:21:17 +0100 Subject: Factorized split_addr. --- lib/Fripost/Schema/User.pm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'lib/Fripost/Schema/User.pm') 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<< >> =head1 COPYRIGHT -Copyright 2012 Guilhem Moulin. +Copyright 2012,2013 Guilhem Moulin. =head1 LICENSE -- cgit v1.2.3