X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcontact.pm;h=8f6b6a3b5523bc4892378f7869c7b91cf8d45ad3;hb=367ff2ec9a5d8e6bf73c67d02834460c069c7ede;hp=76ebe98bbe5d4f546624bedc006a928460ecf9a3;hpb=a08453e81bddef781785954516d4ca176bf7a6d8;p=freeside.git diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm index 76ebe98bb..8f6b6a3b5 100644 --- a/FS/FS/contact.pm +++ b/FS/FS/contact.pm @@ -12,6 +12,7 @@ use FS::contact_class; use FS::cust_location; use FS::contact_phone; use FS::contact_email; +use FS::contact::Import; use FS::queue; use FS::cust_pkg; use FS::phone_type; #for cgi_contact_fields @@ -130,7 +131,6 @@ sub insert { my $dbh = dbh; my $error = $self->SUPER::insert; - $error ||= $self->insert_password_history; if ( $error ) { $dbh->rollback if $oldAutoCommit; @@ -190,6 +190,15 @@ sub insert { } } + if ( $self->get('password') ) { + my $error = $self->is_password_allowed($self->get('password')) + || $self->change_password($self->get('password')); + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error; + } + } + $dbh->commit or die $dbh->errstr if $oldAutoCommit; ''; @@ -465,7 +474,7 @@ and replace methods. sub check { my $self = shift; - if ( $self->selfservice_access eq 'R' || $self->selfservice_access eq 'P' ) { + if ( $self->selfservice_access eq 'R' || $self->selfservice_access eq 'E' || $self->selfservice_access eq 'P' ) { $self->selfservice_access('Y'); $self->_resend('Y'); } @@ -613,7 +622,7 @@ sub authenticate_password { $hash eq $check_hash; - } else { + } else { return 0 if $self->_password eq '';