X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_acct.pm;h=53b12f181278c5653a815fec6d1bb30971b2289f;hb=ebeb3e934b36f6bdef358fe1b4264a9afb5a9c3b;hp=e7ec4a2317d03fdd482b4171bad4c61877221f06;hpb=45d0f6c6325fb8ab5fdc478a7dc278872defa479;p=freeside.git diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index e7ec4a231..53b12f181 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -2676,29 +2676,23 @@ sub virtual_maildir { $self->domain. '/maildirs/'. $self->username. '/'; } -=item password_disallowed_names +=item password_svc_check Override, for L. Not really intended for other use. =cut -sub password_disallowed_names { - my $self = shift; - my $dbh = dbh; - my $results = {}; - foreach my $field ( qw( username finger ) ) { - my $sql = 'SELECT DISTINCT '.$field.' FROM svc_acct'; - my $sth = $dbh->prepare($sql) - or die "Error preparing $sql: ". $dbh->errstr; - $sth->execute() - or die "Error executing $sql: ". $sth->errstr; - foreach my $row (@{$sth->fetchall_arrayref}, $self->get($field)) { - foreach my $word (split(/\s+/,$$row[0])) { - $results->{lc($word)} = 1; +sub password_svc_check { + my ($self, $password) = @_; + foreach my $field ( qw(username finger) ) { + foreach my $word (split(/\W+/,$self->get($field))) { + next unless length($word) > 2; + if ($password =~ /$word/i) { + return qq(Password contains account information '$word'); } } } - return keys %$results; + return ''; } =back