summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-06-05 14:21:03 -0700
committerIvan Kohler <ivan@freeside.biz>2017-06-05 14:21:03 -0700
commite89c8210f4186386ed5b7e7a123a96325d1ee183 (patch)
treef4ec01060dcb1e33e302be5dd35753b53254bab3 /FS
parentf68454095d2ba47d4180c6afa25449eba088769a (diff)
perform 3 character substring searches if you have 'List all customers', RT#75012, RT#76155
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/cust_main/Search.pm10
1 files changed, 7 insertions, 3 deletions
diff --git a/FS/FS/cust_main/Search.pm b/FS/FS/cust_main/Search.pm
index 0eb0020..d668094 100644
--- a/FS/FS/cust_main/Search.pm
+++ b/FS/FS/cust_main/Search.pm
@@ -356,10 +356,14 @@ sub smart_search {
#still some false laziness w/search (was search/cust_main.cgi)
+ my $min_len =
+ $FS::CurrentUser::CurrentUser->access_right('List all customers')
+ ? 3 : 4;
+
#substring
my @company_hashrefs = ();
- if ( length($value) >= 4 ) {
+ if ( length($value) >= $min_len ) {
@company_hashrefs = (
{ 'company' => { op=>'ILIKE', value=>"%$value%" }, },
{ 'ship_company' => { op=>'ILIKE', value=>"%$value%" }, },
@@ -375,7 +379,7 @@ sub smart_search {
},
);
- } elsif ( length($value) >= 4 ) {
+ } elsif ( length($value) >= $min_len ) {
@hashrefs = (
{ 'first' => { op=>'ILIKE', value=>"%$value%" }, },
@@ -396,7 +400,7 @@ sub smart_search {
}
- if ( $conf->exists('address1-search') && length($value) >= 4 ) {
+ if ( $conf->exists('address1-search') && length($value) >= $min_len ) {
push @cust_main, qsearch( {
table => 'cust_main',