[rt-users] show a new ticket tab for a special user group only

Sam A. Hicks shicks at mcfina.com
Thu May 22 12:53:15 EDT 2008


I've recently discovered that for Attachments, the 'Next' method will
retrieve the SECOND attachment the first time it's called, as in the
following:

$self->TransactionObj->Attachments->Next

Maybe the same for your groups?

I was going to ask the list...

1) ...if there's a better way to cycle through them (without skipping the
first one) than my current way, which is to get the ->First at the beginning
of the loop and re-instantiate to ->Next at the end.

2) ...where I can find documentation on ->First, ->Next, TransactionObj,
TicketObj, etc. etc. and all methods for all objects. (I have been basing
all my scrips on examples 'scrounged' from the list and from bestpractical).

---------------------------------
 
The information contained in this email is strictly confidential and subject
to the Confidentiality Notice at www.mcfina.com/emailpolicy


-----Original Message-----
From: rt-users-bounces at lists.bestpractical.com
[mailto:rt-users-bounces at lists.bestpractical.com] On Behalf Of Benjamin
Weser
Sent: Thursday, May 22, 2008 12:39 PM
To: rt-users
Subject: [rt-users] show a new ticket tab for a special user group only

Hi list,

I'm stuck. I tried for hours now to extend the tabs of a ticket. This 
worked so far with copying /opt/rt3/share/html/Ticket/Modify.html to 
local, rename it to RMB.html (my new site including some CFs wich should 
be visible for the special user group "Members RMB" and project managers 
only). This worked fine.

But now I wanted only members of group "Members RMB" to see this new tab 
at the tickets. So I added some lines to 
/opt/rt3/local/html/Ticket/Elements/Tabs which look like that:

my $ticket_page_tabs = {
    _Aa =>{ title => loc('Display'),
            path  => "Ticket/Display.html?id=" . $id, },
    _Ab =>{ title => loc('History'),
            path  => "Ticket/History.html?id=" . $id, },
    _B => { title => loc('Basics'),
            path  => "Ticket/Modify.html?id=" . $id, },
    _C => { title => loc('Dates'),
            path  => "Ticket/ModifyDates.html?id=" . $id, },
    _D => { title => loc('People'),
            path  => "Ticket/ModifyPeople.html?id=" . $id, },
    _E => { title => loc('Links'),
            path  => "Ticket/ModifyLinks.html?id=" . $id, },
    _F => { title => loc('Reminders'),
            path  => "Ticket/Reminders.html?id=" . $id,
            separator => 1, },
    _X => { title => loc('Jumbo'),
            path  => "Ticket/ModifyAll.html?id=" . $id, },
};


$RT::Logger->info("User: ", $session{'CurrentUser'}->Name);
my $groups = $session{'CurrentUser'}->UserObj->OwnGroups;
$RT::Logger->info("Count: ", $groups->Count);
while (my $group = $groups->Next){
    $RT::Logger->info("test: ", $group->Name);
    if ( $group->Name =~ /Members RMB/ ){
        $RT::Logger->info("found: ", $group->Name);
        $ticket_page_tabs->{_Ca} = { title => loc('RMB'),
                                    path  => "Ticket/RMB.html?id=" . $id,
                                  };
    }
}


As you can see I used a lot of logging already but I couldn't find the 
answer to my problem which is the following: The tab "RMB" will only be 
shown if the user is member of the group "Members Admin" which have the 
right superuser (of course). How can this happen?

Here are some short snippets from my logfile (please compare with the 
code above):
This was a working version with user weser as member of group "Members 
Admin":
[Thu May 22 16:04:34 2008] [info]: Successful login for weser from 
xxx.xxx.xxx.xxx (/opt/rt3/local/html/autohandler:258)
[Thu May 22 16:04:37 2008] [info]: User:  weser 
(/opt/rt3/local/html/Ticket/Elements/Tabs:133)
[Thu May 22 16:04:37 2008] [info]: Count:  4 
(/opt/rt3/local/html/Ticket/Elements/Tabs:135)
[Thu May 22 16:04:37 2008] [info]: test:  AllUsers 
(/opt/rt3/local/html/Ticket/Elements/Tabs:137)
[Thu May 22 16:04:37 2008] [info]: test:  Members Developer 
(/opt/rt3/local/html/Ticket/Elements/Tabs:137)
[Thu May 22 16:04:38 2008] [info]: test:  Members Admin 
(/opt/rt3/local/html/Ticket/Elements/Tabs:137)
[Thu May 22 16:04:38 2008] [info]: test:  Members RMB 
(/opt/rt3/local/html/Ticket/Elements/Tabs:137)
[Thu May 22 16:04:38 2008] [info]: found:  Members RMB 
(/opt/rt3/local/html/Ticket/Elements/Tabs:139)

This happens if I delete user weser from group "Members Admin":
[Thu May 22 16:06:53 2008] [info]: Successful login for weser from 
xxx.xxx.xxx.xxx (/opt/rt3/local/html/autohandler:258)
[Thu May 22 16:06:56 2008] [info]: User:  weser 
(/opt/rt3/local/html/Ticket/Elements/Tabs:133)
[Thu May 22 16:06:56 2008] [info]: Count:  3 
(/opt/rt3/local/html/Ticket/Elements/Tabs:135)

It will not go into the while-loop. Can anybody please explain me why? 
Or does anyone has at least some suggestions where else I could have a 
look? Or a work around? Anything?

Thanks a lot in advance.
Ben

_______________________________________________
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sales at bestpractical.com


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com




More information about the rt-users mailing list