RT At A Glance

HI,

I’ve added several new statuses, but they are not being picked up in the RT
At A Glance. I know where to modify the code for RT 345 to include those
statuses, but I’m not sure how to do this wiht RT 360.

Thanks,
Roman

Can anyone point me on how to build a search to search for unowned
tickets but only to the groups you belong to?

we have multiple groups, one group has access to every queue and when
i build a search for all unowned tickets, all tickets from different
queues are shown. the reason for this is we want this one group to
manage all other groups/queues but not necessarily the tickets
themselves.

“slamp slamp” slackamp@gmail.com 9/20/07 11:01 AM >>>
Can anyone point me on how to build a search to search for unowned
tickets but only to the groups you belong to?

we have multiple groups, one group has access to every queue and when
i build a search for all unowned tickets, all tickets from different
queues are shown. the reason for this is we want this one group to
manage all other groups/queues but not necessarily the tickets
themselves.

The following patch may or may not be helpful… I created this a while ago
to address a similar complaint about the “newest unowned tickets” list. You
could use the “Take” right to determine which queues different groups should
see.
Jason

Jason Long jlong@messiah.edu 9/21/07 8:43 AM >>>
This patch changes the behavior of the “newest unowned tickets list”
to limit the query to queues where the user has the “take” right.

It’s kind of a hack, since it is logic that triggers based on the
name of the query: “Unowned Tickets”.

This solves two problems:

  1. formerly, if the 10 newest tickets were tickets the user couldn’t
    see, the “10 newest unowned tickets” box would be blank, even
    if there were other tickets that he could see

  2. formerly, the “10 newest unowned tickets” would display tickets in
    all queues the current user could see, not just queues that the
    current user might be interested in

This creates a potential new issue:

  • if your RT system has many queues, and the current user can “take”
    tickets in many of those queues, you may experience performance
    issues.

html/Elements/ShowSearch | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/html/Elements/ShowSearch b/html/Elements/ShowSearch
index ded865b…d50a8b9 100644
— a/html/Elements/ShowSearch
+++ b/html/Elements/ShowSearch
@@ -93,6 +93,28 @@ if ($SavedSearch) {
}

 $SearchArg = $user->Preferences( $search, $search->Content );
  • if ($Name eq “Unowned Tickets”)
  • {
  •   # list of queues on system
    
  •   my $queues = RT::Queues->new($session{CurrentUser});
    
  •   $queues->UnLimit;
    
  •   my @queues;
    
  •   while (my $queue = $queues->Next) { push @queues, $queue; };
    
  •   # determine which queues the current user has "TakeTicket" right
    
  •   my $principal = $session{CurrentUser}->PrincipalObj;
    
  •   @queues = grep { $principal->HasRight(
    
  •                           Object => $_,
    
  •                           Right => "TakeTicket") } @queues;
    
  •   if (@queues)
    
  •   {
    
  •           $SearchArg->{'Query'} .=
    
  •                   ' AND ( '
    
  •                   . join(' OR ',
    
  •                   map { "'Queue' = '" . $_->Name . "'" } @queues)
    
  •                   . ' ) ';
    
  •   }
    
  • }
    $customize = $RT::WebPath . ‘/Prefs/Search.html?’
    . $m->comp( ‘/Elements/QueryString’,
    name => ref($search) . ‘-’ . $search->Id );

thanks jason unfortunately this will not work for me as we have rights
to take tickets in all queues. i think the best way is for the search
to decipher which group the user belongs to and then show only what
the group can see.On 9/21/07, Jason Long jlong@messiah.edu wrote:

“slamp slamp” slackamp@gmail.com 9/20/07 11:01 AM >>>
Can anyone point me on how to build a search to search for unowned
tickets but only to the groups you belong to?

we have multiple groups, one group has access to every queue and when
i build a search for all unowned tickets, all tickets from different
queues are shown. the reason for this is we want this one group to
manage all other groups/queues but not necessarily the tickets
themselves.

The following patch may or may not be helpful… I created this a while ago
to address a similar complaint about the “newest unowned tickets” list. You
could use the “Take” right to determine which queues different groups should
see.
Jason

Jason Long jlong@messiah.edu 9/21/07 8:43 AM >>>
This patch changes the behavior of the “newest unowned tickets list”
to limit the query to queues where the user has the “take” right.

It’s kind of a hack, since it is logic that triggers based on the
name of the query: “Unowned Tickets”.

This solves two problems:

  1. formerly, if the 10 newest tickets were tickets the user couldn’t
    see, the “10 newest unowned tickets” box would be blank, even
    if there were other tickets that he could see

  2. formerly, the “10 newest unowned tickets” would display tickets in
    all queues the current user could see, not just queues that the
    current user might be interested in

This creates a potential new issue:

  • if your RT system has many queues, and the current user can “take”
    tickets in many of those queues, you may experience performance
    issues.

html/Elements/ShowSearch | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/html/Elements/ShowSearch b/html/Elements/ShowSearch
index ded865b…d50a8b9 100644
— a/html/Elements/ShowSearch
+++ b/html/Elements/ShowSearch
@@ -93,6 +93,28 @@ if ($SavedSearch) {
}

 $SearchArg = $user->Preferences( $search, $search->Content );
  • if ($Name eq “Unowned Tickets”)
  • {
  •   # list of queues on system
    
  •   my $queues = RT::Queues->new($session{CurrentUser});
    
  •   $queues->UnLimit;
    
  •   my @queues;
    
  •   while (my $queue = $queues->Next) { push @queues, $queue; };
    
  •   # determine which queues the current user has "TakeTicket" right
    
  •   my $principal = $session{CurrentUser}->PrincipalObj;
    
  •   @queues = grep { $principal->HasRight(
    
  •                           Object => $_,
    
  •                           Right => "TakeTicket") } @queues;
    
  •   if (@queues)
    
  •   {
    
  •           $SearchArg->{'Query'} .=
    
  •                   ' AND ( '
    
  •                   . join(' OR ',
    
  •                   map { "'Queue' = '" . $_->Name . "'" } @queues)
    
  •                   . ' ) ';
    
  •   }
    
  • }
    $customize = $RT::WebPath . ‘/Prefs/Search.html?’
    . $m->comp( ‘/Elements/QueryString’,
    name => ref($search) . ‘-’ . $search->Id );