[Rt-devel] ACL-related bug. RT 3.4.2 & 3.6.5

Stephen Turner sturner at MIT.EDU
Thu Nov 6 13:17:47 EST 2008


ACL-related bug, reproduced with RT 3.4.2/SB 1.53 and RT 3.6.5/SB 1.48

The method Users->WhoHasRight will return users whose access is through a  
disabled group.

For example: a queue TestIssues grants "ShowTicket" only to members of the  
'testers' group. User 'jane' is a member of 'testers'.

For this queue and this user, the following API call correctly returns  
true:

    $QueueObj->CurrentUserHasRight('ShowTicket')

And 'jane' is part of the collection limited by:

     my $Users = RT::Users->new($RT::SystemUser);
     $Users->WhoHaveRight(Right => 'ShowTicket',
			 Object => $QueueObj,
			 IncludeSystemRights => 1,
			 IncludeSuperusers => 1);

So far so good. Now if we disable the 'testers' group this statement  
returns false (correct):

    $QueueObj->CurrentUserHasRight('ShowTicket')

BUT (here's the problem) - 'jane' and other members of 'testers' are still  
part of $Users when we do this:

     $Users->WhoHaveRight(Right => 'ShowTicket',
			 Object => $QueueObj,
			 IncludeSystemRights => 1,
			 IncludeSuperusers => 1);

.. and she should not be. This seems to be because the query generated by  
the WhoHaveRight call does not exclude disabled groups.

Steve

-- 
Stephen Turner
Senior Programmer/Analyst - SAIS
MIT IS&T


More information about the Rt-devel mailing list