See others tickets

Hello,
I would like to have a “shared” queue, where would all users see
others tickets. Not just tickets submited by a user itself. Is this even
possible in RT? Any suggestions, how to set it up?

Thank you,
Josef

Configuration->Queues->Select Your-Shared-Queue

Choose “Group Rights” from the top menubar.

Give “Everyone”, or maybe just “Privileged,” any rights you want all users to have on that queue.

Josh Narins
Director of Application Development
SeniorBridge
845 Third Ave
7th Floor
New York, NY 10022
Tel: (212) 994-6194
Mobile: (917) 488-6248
Fax: (212) 994-4260
jnarins@seniorbridge.com

SeniorBridge
Managing Complex Chronic Care
http://www.seniorbridge.com

SeniorBridge Statement of Confidentiality: The contents of this email message are intended for the exclusive use of the addressee(s) and may contain confidential or privileged information. Any dissemination, distribution or copying of this email by an unintended or mistaken recipient is strictly prohibited. In said event, kindly reply to the sender and destroy all entries of this message and any attachments from your system. Thank you.-----Original Message-----

Hello,
I would like to have a “shared” queue, where would all users see
others tickets. Not just tickets submited by a user itself. Is this
even possible in RT? Any suggestions, how to set it up?

Sure, just go to Configuration->Queue->YourQueue->GroupRights and grant
"ShowTicket" to pseudo group “Unpriviledged”.

I have created a new queue called user, added group rights ShowTicket,
SeeQueue, CreateTicket to a group unpriviliged. Then I have added two
users. Now, if user1 creates a ticket, he sees it in “My open tickets"
when he logs in. But if user2 logs in, he doesn’t see any tickets in his
"My open tickets” list. I want him to see the ticket of user1, so he
won’t report the same problem as user1.

Dne 11/3/10 1:56 PM, Emmanuel Lacour napsal(a):> On Wed, Nov 03, 2010 at 01:49:13PM +0100, Josef wrote:

Hello,
I would like to have a “shared” queue, where would all users see
others tickets. Not just tickets submited by a user itself. Is this
even possible in RT? Any suggestions, how to set it up?

Sure, just go to Configuration->Queue->YourQueue->GroupRights and grant
"ShowTicket" to pseudo group “Unpriviledged”.

I would think you would have to rewrite the query for My Open Tickets for people to see other people’s open tickets in the list.

add something like

or ( Queue is ‘user’ and status != ‘resolved’ )

Josh Narins
Director of Application Development
SeniorBridge
845 Third Ave
7th Floor
New York, NY 10022
Tel: (212) 994-6194
Mobile: (917) 488-6248
Fax: (212) 994-4260
jnarins@seniorbridge.com

SeniorBridge
Managing Complex Chronic Care
http://www.seniorbridge.com

SeniorBridge Statement of Confidentiality: The contents of this email message are intended for the exclusive use of the addressee(s) and may contain confidential or privileged information. Any dissemination, distribution or copying of this email by an unintended or mistaken recipient is strictly prohibited. In said event, kindly reply to the sender and destroy all entries of this message and any attachments from your system. Thank you.-----Original Message-----

So RT can’t do this? It’s not very usefull, since when some service
gets down, we would have numerous of duplicite issues, as all users
would try to report it…

Dne 11/3/10 8:04 PM, Josh Narins napsal(a):

That’s what the “Newest Unowned Tickets” queue is for, the default second box in the left column of the home page is for.

Sorry, not “Queue,” but saved-search/dashboard.

Yes, but only priviledged users see this… I don’t want end users to
change my settings. Unpriviledged user sees only its requests, or is
there a way to add Newest Unowned dashboard to them?

Dne 11/3/10 9:42 PM, Josh Narins napsal(a):

Offhand I don’t know where the query for Unprivileged user’s homepage is stored.

I’m sure that if you can find it, it can be altered to show almost anything.

Hi,On Wed, Nov 03, 2010 at 09:46:36PM +0100, Josef wrote:

Yes, but only priviledged users see this… I don’t want end users
to change my settings. Unpriviledged user sees only its requests, or
is there a way to add Newest Unowned dashboard to them?

I have modified the SelfService a bit to see Queue Tickets. Attached is
an archive. I believe, this can be added into upstream to.
Regards
Zito

selfservice-queue.tar.gz (3.04 KB)

Thank you very much,
I have copied these files into my
/usr/share/request-tracker3.6/html/SelfService/, but I’m having this error:

error: could not find component for path '/SelfService/Elements/Tickets’
context:

72:
73:
74:


75:
76: <& /SelfService/Elements/Tickets,
77: %ARGS,
78: status => [@status],
79: friendly_status => $fstatus ? loc($fstatus) : $act_states_str,
80: queue => [@queue],

code stack:
/usr/share/request-tracker3.6/html/SelfService/QueueTickets.html:76
/usr/share/request-tracker3.6/html/autohandler:287

Dne 11/3/10 11:41 PM, V�clav Ovs�k napsal(a):

Hi,

You’re talking about self service. And this interface is around
tickets where the current user is a watcher(requestor, cc, admincc or
owner).

You did everything right with rights, however you want to add a box to
self service page, for example “recently reported issues” or something
like that.

If it doesn’t work for you then move your users from Unpriv to Priv
and give them full UI.On Wed, Nov 3, 2010 at 11:38 PM, Josef pepus@p-h-a.cz wrote:

So RT can’t do this? It’s not very usefull, since when some service gets
down, we would have numerous of duplicite issues, as all users would try to
report it…

Dne 11/3/10 8:04 PM, Josh Narins napsal(a):

I would think you would have to rewrite the query for My Open Tickets for
people to see other people’s open tickets in the list.

add something like

or ( Queue is ‘user’ and status != ‘resolved’ )

Josh Narins
Director of Application Development
SeniorBridge
845 Third Ave
7th Floor
New York, NY 10022
Tel: (212) 994-6194
Mobile: (917) 488-6248
Fax: (212) 994-4260
jnarins@seniorbridge.com

SeniorBridge
Managing Complex Chronic Care
http://www.seniorbridge.com

SeniorBridge Statement of Confidentiality: The contents of this email
message are intended for the exclusive use of the addressee(s) and may
contain confidential or privileged information. Any dissemination,
distribution or copying of this email by an unintended or mistaken recipient
is strictly prohibited. In said event, kindly reply to the sender and
destroy all entries of this message and any attachments from your system.
Thank you.-----Original Message-----

From: rt-users-bounces@lists.bestpractical.com [mailto:rt-users-
bounces@lists.bestpractical.com] On Behalf Of Josef
Sent: Wednesday, November 03, 2010 2:58 PM
To: rt-users@lists.bestpractical.com
Subject: Re: [rt-users] see others tickets

I have created a new queue called user, added group rights
ShowTicket,
SeeQueue, CreateTicket to a group unpriviliged. Then I have added two
users. Now, if user1 creates a ticket, he sees it in “My open tickets"
when he logs in. But if user2 logs in, he doesn’t see any tickets in
his
"My open tickets” list. I want him to see the ticket of user1, so he
won’t report the same problem as user1.

Dne 11/3/10 1:56 PM, Emmanuel Lacour napsal(a):

On Wed, Nov 03, 2010 at 01:49:13PM +0100, Josef wrote:

Hello,
I would like to have a “shared” queue, where would all users

see

others tickets. Not just tickets submited by a user itself. Is this
even possible in RT? Any suggestions, how to set it up?

Sure, just go to Configuration->Queue->YourQueue->GroupRights and

grant

“ShowTicket” to pseudo group “Unpriviledged”.

Best regards, Ruslan.

Josef wrote, On 11/3/10 4:46 PM:

Yes, but only priviledged users see this… I don’t want end users to
change my settings.

“Privileged” in RT does not mean that a user is able to change system
settings. It means that a user gets the full UI instead of SelfService and
shows up by default in the user list in the Configuration area (which is
only accessible by users rights including ShowConfigTab, Admin*, and
SuperUser) and that it is possible to assign the user various rights.

Thank you very much,
I have copied these files into my
/usr/share/request-tracker3.6/html/SelfService/, but I’m having this

		^^^^^^^^

I forgot to mention files from the tarball should be extracted into
installation directory of RT 3.8.8. So you should end with:

local/html/SelfService
local/html/SelfService/QueueTickets.html
local/html/SelfService/Elements
local/html/SelfService/Elements/Tickets
local/html/SelfService/Elements/Tabs

in the directory where you install RT version 3.8.8.

The reasons for creating this SelfService extension was, that we don’t
want to give customers full UI. We only want the customer can view
tickets for his company. We have groups of users with permissions to
view corresponding queues.

This code should replace old extension GroupService that exist in the
past for RT 2.x after we move to latest RT.

I wrote the code using loc(), so full localisation is possible and I did
it for Czech language. Menu option “Queue tickets” is not shown in the
case the user has no permission to view tickets in any queue.

Can someone review the changes to include this into share/html upstream?

  • SelfService/Elements/Tabs
    modification of original file

— share/html/SelfService/Elements/Tabs 2010-05-10 15:36:53.000000000 +0200
+++ local/html/SelfService/Elements/Tabs 2010-07-01 15:07:01.000000000 +0200
@@ -58,14 +58,21 @@
my $queues = RT::Queues->new($session{‘CurrentUser’});
$queues->UnLimit;

-my $queue_count = 0;
-my $queue_id = 1;
+my $queue_create_count = 0;
+my $queue_create_id = 1;
+my $queue_show_count = 0;
+my $queue_show_id = 1;

while (my $queue = $queues->Next) {

  • next unless $queue->CurrentUserHasRight(‘CreateTicket’);
  • $queue_id = $queue->id;
  • $queue_count++;
  • last if ($queue_count > 1);
  • if ( $queue->CurrentUserHasRight(‘CreateTicket’) ) {
  •   $queue_create_id = $queue->id;
    
  •   $queue_create_count++;
    
  • }
  • if ( $queue->CurrentUserHasRight(‘ShowTicket’) ) {
  •   $queue_show_id = $queue->id;
    
  •   $queue_show_count++;
    
  • }
  • last if $queue_create_count > 1 && $queue_show_count > 1;
    }

if ($Title) {
@@ -83,13 +90,19 @@
},
};

-if ($queue_count > 1) {
+if ($queue_show_count) {

  • $tabs->{B2} = { title => loc(‘Queue tickets’),
  •          path => 'SelfService/QueueTickets.html'
    
  •          };
    

+}
+if ($queue_create_count > 1) {
$tabs->{C} = { title => loc(‘New ticket’),
path => ‘SelfService/CreateTicketInQueue.html’
};
} else {
$tabs->{C} = { title => loc(‘New ticket’),

  •                   path => 'SelfService/Create.html?Queue=' . $queue_id
    
  •                   path => 'SelfService/Create.html?Queue=' . $queue_create_id
                      };
    

}

  • SelfService/Elements/Tickets
    is modification of SelfService/Elements/MyRequests

— share/html/SelfService/Elements/MyRequests 2010-05-10 15:36:53.000000000 +0200
+++ local/html/SelfService/Elements/Tickets 2010-07-08 12:13:04.000000000 +0200
@@ -45,41 +45,65 @@
%# those contributions and any derivatives thereof.
%#
%# END BPS TAGGED BLOCK }}}
+<%once>
+#my $Format = RT->Config->Get(‘DefaultSelfServiceSearchResultFormat’);
+my $Format = qq{

  • id/TITLE:#’,
  • QueueName,
  • Subject/TITLE:Subject’,
  • Status,
  • Requestors,
  • OwnerName};
    +</%once>
    <&| /Widgets/TitleBox, title => $title &>
    <& /Elements/CollectionList, Title => $title,
    Format => $Format,
    Query => $Query,
  •   	 Order   => @Order, 
    
  •   	 OrderBy => @OrderBy,
    
  •   	 Order   => [@Order],
    
  •   	 OrderBy => [@OrderBy],
      	 BaseURL => $BaseURL,
    
  •   	 GenericQueryArgs => $GenericQueryArgs,
    
  •   	 AllowSorting => $AllowSorting,
    
  •   	 Class   => 'RT::Tickets',
    
  •         Rows    => $Rows,
    
  •   	 Page    => $Page &>
    
  •   	 AllowSorting	=> $AllowSorting,
    
  •   	 Class		=> 'RT::Tickets',
    
  •   	 Rows		=> $Rows,
    
  •   	 Page		=> $Page,
    
  •   	 queue		=> [@queue],
    
  •   	 status		=> [@status],
    
  •   	 PassArguments	=> [qw(Page Order OrderBy queue status)],
    

+&>
</&>

<%INIT>
my $id = $session{‘CurrentUser’}->id;
+@queue = grep($_, @queue);
+unless ( @queue ) {

  • my $queues = RT::Queues->new($session{‘CurrentUser’});
  • $queues->UnLimit;
  • while (my $queue = $queues->Next) {
  • push @queue, $queue->id
  •   if $queue->CurrentUserHasRight('ShowTicket');
    
  • }
    +}
    my $Query = "( "
  • . join( ’ OR ', map “$_.id = $id”, @roles )
  • . join( ’ OR ‘, map "Queue.id = $", @queue )
    . “)”;
    if ( @status ) {
    $Query .= " AND ( "
    . join( ’ OR ', map "Status = '$
    ’", @status )
    . " )";
    }
    -my $Format = RT->Config->Get(‘DefaultSelfServiceSearchResultFormat’);

</%INIT>
<%ARGS>
$friendly_status => loc(‘open’)
-$title => loc(“My [_1] tickets”, $friendly_status)
-@roles => (‘Watcher’)
+$title => loc(“All [_1] tickets”, $friendly_status)
@status => RT::Queue->ActiveStatusArray()
+@queue => undef
$BaseURL => undef
$Page => 1
-$GenericQueryArgs => undef
$AllowSorting => 1
@Order => (‘ASC’)
@OrderBy => (‘Created’)

  • SelfService/QueueTickets.html
    is a new component

Regards
Zito

Wouldn’t it be easier if you could create a group per customer and let all the users in that group see the tickets from each other?
Of course there are different approaches possible to the same issue :slight_smile:

Met vriendelijke groet / With kind regards,

Richard Pijnenburg-----Original Message-----
From: rt-users-bounces@lists.bestpractical.com [mailto:rt-users-bounces@lists.bestpractical.com] On Behalf Of Václav Ovsík
Sent: Thursday, November 04, 2010 9:23 AM
To: rt-users@lists.bestpractical.com
Subject: Re: [rt-users] see others tickets

On Thu, Nov 04, 2010 at 12:22:11AM +0100, Josef wrote:

Thank you very much,
I have copied these files into my
/usr/share/request-tracker3.6/html/SelfService/, but I’m having this

		^^^^^^^^

I forgot to mention files from the tarball should be extracted into
installation directory of RT 3.8.8. So you should end with:

local/html/SelfService
local/html/SelfService/QueueTickets.html
local/html/SelfService/Elements
local/html/SelfService/Elements/Tickets
local/html/SelfService/Elements/Tabs

in the directory where you install RT version 3.8.8.

The reasons for creating this SelfService extension was, that we don’t
want to give customers full UI. We only want the customer can view
tickets for his company. We have groups of users with permissions to
view corresponding queues.

This code should replace old extension GroupService that exist in the
past for RT 2.x after we move to latest RT.

I wrote the code using loc(), so full localisation is possible and I did
it for Czech language. Menu option “Queue tickets” is not shown in the
case the user has no permission to view tickets in any queue.

Can someone review the changes to include this into share/html upstream?

  • SelfService/Elements/Tabs
    modification of original file

— share/html/SelfService/Elements/Tabs 2010-05-10 15:36:53.000000000 +0200
+++ local/html/SelfService/Elements/Tabs 2010-07-01 15:07:01.000000000 +0200
@@ -58,14 +58,21 @@
my $queues = RT::Queues->new($session{‘CurrentUser’});
$queues->UnLimit;

-my $queue_count = 0;
-my $queue_id = 1;
+my $queue_create_count = 0;
+my $queue_create_id = 1;
+my $queue_show_count = 0;
+my $queue_show_id = 1;

while (my $queue = $queues->Next) {

  • next unless $queue->CurrentUserHasRight(‘CreateTicket’);
  • $queue_id = $queue->id;
  • $queue_count++;
  • last if ($queue_count > 1);
  • if ( $queue->CurrentUserHasRight(‘CreateTicket’) ) {
  •   $queue_create_id = $queue->id;
    
  •   $queue_create_count++;
    
  • }
  • if ( $queue->CurrentUserHasRight(‘ShowTicket’) ) {
  •   $queue_show_id = $queue->id;
    
  •   $queue_show_count++;
    
  • }
  • last if $queue_create_count > 1 && $queue_show_count > 1;
    }

if ($Title) {
@@ -83,13 +90,19 @@
},
};

-if ($queue_count > 1) {
+if ($queue_show_count) {

  • $tabs->{B2} = { title => loc(‘Queue tickets’),
  •          path => 'SelfService/QueueTickets.html'
    
  •          };
    

+}
+if ($queue_create_count > 1) {
$tabs->{C} = { title => loc(‘New ticket’),
path => ‘SelfService/CreateTicketInQueue.html’
};
} else {
$tabs->{C} = { title => loc(‘New ticket’),

  •                   path => 'SelfService/Create.html?Queue=' . $queue_id
    
  •                   path => 'SelfService/Create.html?Queue=' . $queue_create_id
                      };
    

}

  • SelfService/Elements/Tickets
    is modification of SelfService/Elements/MyRequests

— share/html/SelfService/Elements/MyRequests 2010-05-10 15:36:53.000000000 +0200
+++ local/html/SelfService/Elements/Tickets 2010-07-08 12:13:04.000000000 +0200
@@ -45,41 +45,65 @@
%# those contributions and any derivatives thereof.
%#
%# END BPS TAGGED BLOCK }}}
+<%once>
+#my $Format = RT->Config->Get(‘DefaultSelfServiceSearchResultFormat’);
+my $Format = qq{

  • id/TITLE:#’,
  • QueueName,
  • Subject/TITLE:Subject’,
  • Status,
  • Requestors,
  • OwnerName};
    +</%once>
    <&| /Widgets/TitleBox, title => $title &>
    <& /Elements/CollectionList, Title => $title,
    Format => $Format,
    Query => $Query,
  •   	 Order   => @Order, 
    
  •   	 OrderBy => @OrderBy,
    
  •   	 Order   => [@Order],
    
  •   	 OrderBy => [@OrderBy],
      	 BaseURL => $BaseURL,
    
  •   	 GenericQueryArgs => $GenericQueryArgs,
    
  •   	 AllowSorting => $AllowSorting,
    
  •   	 Class   => 'RT::Tickets',
    
  •         Rows    => $Rows,
    
  •   	 Page    => $Page &>
    
  •   	 AllowSorting	=> $AllowSorting,
    
  •   	 Class		=> 'RT::Tickets',
    
  •   	 Rows		=> $Rows,
    
  •   	 Page		=> $Page,
    
  •   	 queue		=> [@queue],
    
  •   	 status		=> [@status],
    
  •   	 PassArguments	=> [qw(Page Order OrderBy queue status)],
    

+&>
</&>

<%INIT>
my $id = $session{‘CurrentUser’}->id;
+@queue = grep($_, @queue);
+unless ( @queue ) {

  • my $queues = RT::Queues->new($session{‘CurrentUser’});
  • $queues->UnLimit;
  • while (my $queue = $queues->Next) {
  • push @queue, $queue->id
  •   if $queue->CurrentUserHasRight('ShowTicket');
    
  • }
    +}
    my $Query = "( "
  • . join( ’ OR ', map “$_.id = $id”, @roles )
  • . join( ’ OR ‘, map "Queue.id = $", @queue )
    . “)”;
    if ( @status ) {
    $Query .= " AND ( "
    . join( ’ OR ', map "Status = '$
    ’", @status )
    . " )";
    }
    -my $Format = RT->Config->Get(‘DefaultSelfServiceSearchResultFormat’);

</%INIT>
<%ARGS>
$friendly_status => loc(‘open’)
-$title => loc(“My [_1] tickets”, $friendly_status)
-@roles => (‘Watcher’)
+$title => loc(“All [_1] tickets”, $friendly_status)
@status => RT::Queue->ActiveStatusArray()
+@queue => undef
$BaseURL => undef
$Page => 1
-$GenericQueryArgs => undef
$AllowSorting => 1
@Order => (‘ASC’)
@OrderBy => (‘Created’)

  • SelfService/QueueTickets.html
    is a new component

Regards
Zito

Wouldn’t it be easier if you could create a group per customer and let
all the users in that group see the tickets from each other?
Of course there are different approaches possible to the same issue :slight_smile:

I hope, that it is exactly what I did. :slight_smile:
Users from the same customer group can view each others tickets.
The SelfService with this modification can be used for it, no need for
full UI. Users can be unprivileged, no need to cope the more complex UI
for end users.

Zito

I will give it a shot and let you know :slight_smile:

Met vriendelijke groet / With kind regards,

Richard Pijnenburg
Change and Incident Coordinator

WideXS http://www.widexs.nl
Tel +31 (0)20 7570780 Fax +31 (0)20 6116302
Zekeringstraat 43, 1014 BV Amsterdam, NL-----Original Message-----
From: rt-users-bounces@lists.bestpractical.com [mailto:rt-users-bounces@lists.bestpractical.com] On Behalf Of Václav Ovsík
Sent: Thursday, November 04, 2010 10:14 AM
To: rt-users@lists.bestpractical.com
Subject: Re: [rt-users] see others tickets

On Thu, Nov 04, 2010 at 09:37:42AM +0100, Richard Pijnenburg wrote:

Wouldn’t it be easier if you could create a group per customer and let
all the users in that group see the tickets from each other?
Of course there are different approaches possible to the same issue :slight_smile:

I hope, that it is exactly what I did. :slight_smile:
Users from the same customer group can view each others tickets.
The SelfService with this modification can be used for it, no need for
full UI. Users can be unprivileged, no need to cope the more complex UI
for end users.

Zito