X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Ft%2Fsecurity%2FCVE-2011-2084-modifyscrips-templates.t;h=0e59c528edc4a8768fca105861231be5178da08c;hb=e131b1f71f08b69abb832c1687d1f29682d171f8;hp=f68706e523f97acb7f7924548557ea26201b66f5;hpb=d05d7346bb2387fd9d0354923d577275c5c7f019;p=freeside.git diff --git a/rt/t/security/CVE-2011-2084-modifyscrips-templates.t b/rt/t/security/CVE-2011-2084-modifyscrips-templates.t index f68706e52..0e59c528e 100644 --- a/rt/t/security/CVE-2011-2084-modifyscrips-templates.t +++ b/rt/t/security/CVE-2011-2084-modifyscrips-templates.t @@ -59,32 +59,39 @@ diag "ModifyScrips"; $scrip = RT::Scrip->new( $cu ); $scrip->Load( $scrip_id ); ok $scrip->id, "loaded scrip as test user"; - is $scrip->Queue, $qa->Id, 'queue is A'; + ok $scrip->IsAdded( $qa->Id ), 'queue is A'; ok +($scrip->SetName('Testing ModifyScrips')); - set_fails( Queue => $scrip => $qb ); - set_fails( Queue => $scrip => 0 ); - set_fails( Queue => $scrip => undef ); - set_fails( Queue => $scrip => '' ); + for my $value ($qb->id, 0, undef, '') { + my ($ok, $why) = $scrip->AddToObject( $value ); + my $disp = (defined($value) ? "'$value'" : "undef"); + ok( !$ok, "Correctly not added to $disp: $why" ); + } RT::Test->add_rights( Principal => $user, Right => 'ModifyScrips', Object => $qb ); - set_ok( Queue => $scrip => $qb ); - set_fails( Queue => $scrip => 0 ); - set_fails( Queue => $scrip => undef ); - set_fails( Queue => $scrip => '' ); + for my $value ($qb->id, 0, undef, '') { + my ($ok, $why) = $scrip->AddToObject( $value ); + my $disp = (defined($value) ? "'$value'" : "undef"); + if ($value) { + ok( $ok, "Correctly added to $disp: $why" ); + } else { + ok( !$ok, "Correctly not added to $disp: $why" ); + } + } RT::Test->add_rights( Principal => $user, Right => 'ModifyScrips' ); - set_ok( Queue => $scrip => 0 ); + my ($ok, $why) = $scrip->AddToObject( 0 ); + ok( $ok, "Correctly added globally: $why" ); - set_fails( Template => $scrip => 2 ); + set_fails( Template => $scrip => "Autoreply" ); RT::Test->add_rights( Principal => $user, Right => 'ShowTemplate' ); - set_ok( Template => $scrip => 2 ); - is $scrip->TemplateObj->Name, 'Autoreply', 'template name is right'; + set_ok( Template => $scrip => "Autoreply" ); + is $scrip->Template, 'Autoreply', 'template name is right'; } diag "ModifyTemplate"; @@ -115,12 +122,12 @@ diag "ModifyTemplate"; RT::Test->add_rights( Principal => $user, Right => 'ModifyTemplate', Object => $qb ); - set_ok( Queue => $template => $qb ); + set_fails( Queue => $template => $qb ); set_fails( Queue => $template => 0 ); RT::Test->add_rights( Principal => $user, Right => 'ModifyTemplate' ); - set_ok( Queue => $template => 0 ); + set_fails( Queue => $template => 0 ); } done_testing;