X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Flib%2FRT%2FSearch%2FGoogleish.pm;h=88634ff3be62d3bf52cb46ba61742fddd682dd60;hb=9f8decd5ee70e747cd3cec1e0eb917b5493f12e2;hp=07e1904b1ca08f78faef1a2693957f526d984025;hpb=63a268637b2d51a8766412617724b9436439deb6;p=freeside.git diff --git a/rt/lib/RT/Search/Googleish.pm b/rt/lib/RT/Search/Googleish.pm index 07e1904b1..88634ff3b 100644 --- a/rt/lib/RT/Search/Googleish.pm +++ b/rt/lib/RT/Search/Googleish.pm @@ -142,7 +142,8 @@ sub QueryToSQL { # Is there a queue named $key? elsif ( $Queue = RT::Queue->new( $self->TicketsObj->CurrentUser ) - and $Queue->Load($key) ) + and $Queue->Load($key) + and $Queue->id ) { my $quoted_queue = $Queue->Name; $quoted_queue =~ s/'/\\'/g; @@ -152,6 +153,7 @@ sub QueryToSQL { # Is there a owner named $key? elsif ( $User = RT::User->new( $self->TicketsObj->CurrentUser ) and $User->Load($key) + and $User->id and $User->Privileged ) { push @owner_clauses, "Owner = '" . $User->Name . "'"; @@ -173,13 +175,15 @@ sub QueryToSQL { push @queue_clauses, "Queue = '$quoted_queue'"; } + if ( ! @status_clauses + and ! RT->Config->Get('SimpleSearchIncludeResolved') ) { + # implicitly exclude resolved status + @status_clauses = map "Status = '$_'", RT::Queue->ActiveStatusArray(); + } + push @tql_clauses, join( " OR ", sort @id_clauses ); push @tql_clauses, join( " OR ", sort @owner_clauses ); - if ( ! @status_clauses ) { - push @tql_clauses, join( " OR ", map "Status = '$_'", RT::Queue->ActiveStatusArray()); - } else { - push @tql_clauses, join( " OR ", sort @status_clauses ); - } + push @tql_clauses, join( " OR ", sort @status_clauses ); push @tql_clauses, join( " OR ", sort @user_clauses ); push @tql_clauses, join( " OR ", sort @queue_clauses ); @tql_clauses = grep { $_ ? $_ = "( $_ )" : undef } @tql_clauses;