4 use RT::Test tests => undef;
8 local $SIG{__WARN__} = sub {
12 my $requestor = RT::Group->new( RT->SystemUser );
13 $requestor->LoadRoleGroup(
17 ok $requestor->id, "Loaded global requestor role group";
19 $requestor = $requestor->PrincipalObj;
20 ok $requestor->id, "Loaded global requestor role group principal";
22 note "Try granting an article right to a system role group";
24 my ($ok, $msg) = $requestor->GrantRight(
25 Right => "ShowArticle",
28 ok !$ok, "Couldn't grant nonsensical right to global Requestor role: $msg";
29 like shift @warnings, qr/Couldn't validate right name.*?ShowArticle/;
31 ($ok, $msg) = $requestor->GrantRight(
32 Right => "ShowTicket",
35 ok $ok, "Granted queue right to global queue role: $msg";
37 ($ok, $msg) = RT->PrivilegedUsers->PrincipalObj->GrantRight(
38 Right => "ShowArticle",
41 ok $ok, "Granted article right to non-role global group: $msg";
46 note "AvailableRights";
49 [ keys %{RT->System->AvailableRights} ],
50 [ keys %{RT->System->AvailableRights( $requestor )} ],
53 my $all = Set::Tiny->new( @{$available[0]} );
54 my $role = Set::Tiny->new( @{$available[1]} );
56 ok $role->is_proper_subset($all), "role rights are a proper subset of all";
59 ok !@warnings, "No uncaught warnings"
60 or diag explain \@warnings;
63 sub reset_rights { RT::Test->set_rights() }