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

Benjamin Weser weser at osp-dd.de
Thu May 22 12:39:12 EDT 2008


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




More information about the rt-users mailing list