[Rt-commit] r2609 - in rt/branches/3.4-RELEASE/lib: RT t/regression
tla at bestpractical.com
tla at bestpractical.com
Tue Apr 12 15:59:07 EDT 2005
Author: tla
Date: Tue Apr 12 15:59:07 2005
New Revision: 2609
Modified:
rt/branches/3.4-RELEASE/lib/RT/SavedSearch.pm
rt/branches/3.4-RELEASE/lib/RT/SavedSearches.pm
rt/branches/3.4-RELEASE/lib/t/regression/20savedsearch.t
Log:
Made SavedSearches work, added error messages to SavedSearch, updated tests
Modified: rt/branches/3.4-RELEASE/lib/RT/SavedSearch.pm
==============================================================================
--- rt/branches/3.4-RELEASE/lib/RT/SavedSearch.pm (original)
+++ rt/branches/3.4-RELEASE/lib/RT/SavedSearch.pm Tue Apr 12 15:59:07 2005
@@ -109,7 +109,7 @@
. " for object " . $privacy);
}
} else {
- $RT::Logger->error("Could not find object $privacy when loading search");
+ $RT::Logger->error("Could not load object $privacy when loading search");
}
}
@@ -265,13 +265,16 @@
# Do not allow the loading of a user object other than the current
# user, or of a group object of which the current user is not a member.
- if ($obj_type eq 'RT::User') {
- return undef
- unless $object->Id == $self->CurrentUser->UserObj->Id();
- }
- if ($obj_type eq 'RT::Group') {
- return undef unless
- $object->HasMemberRecursively($self->CurrentUser->PrincipalObj);
+ if ($obj_type eq 'RT::User'
+ && $object->Id != $self->CurrentUser->UserObj->Id()) {
+ $RT::Logger->error("Permission denied for user other than self");
+ return undef;
+ }
+ if ($obj_type eq 'RT::Group' &&
+ !$object->HasMemberRecursively($self->CurrentUser->PrincipalObj)) {
+ $RT::Logger->error("Permission denied, ".$self->CurrentUser->Name.
+ " is not a member of group");
+ return undef;
}
return $object;
Modified: rt/branches/3.4-RELEASE/lib/RT/SavedSearches.pm
==============================================================================
--- rt/branches/3.4-RELEASE/lib/RT/SavedSearches.pm (original)
+++ rt/branches/3.4-RELEASE/lib/RT/SavedSearches.pm Tue Apr 12 15:59:07 2005
@@ -99,7 +99,7 @@
=cut
-sub Limit {
+sub LimitToPrivacy {
my $self = shift;
my $privacy = shift;
my $type = shift;
Modified: rt/branches/3.4-RELEASE/lib/t/regression/20savedsearch.t
==============================================================================
--- rt/branches/3.4-RELEASE/lib/t/regression/20savedsearch.t (original)
+++ rt/branches/3.4-RELEASE/lib/t/regression/20savedsearch.t Tue Apr 12 15:59:07 2005
@@ -6,6 +6,7 @@
use RT::Queue;
use_ok(RT::SavedSearch);
+use_ok(RT::SavedSearches);
RT::LoadConfig();
RT::Init();
@@ -154,5 +155,20 @@
is($loadedsearch1->Type, 'Ticket', "mysearch is still for tickets");
is($loadedsearch1->Privacy, 'RT::User-'.$curruser->Id,
"mysearch still belongs to searchuser");
-is($mysearch->GetParameter('Query'), qr/Queue/,
- "other mysearch object updated");
+like($mysearch->GetParameter('Query'), qr/Queue/, "other mysearch object updated");
+
+
+## Right ho. Test the pseudo-collection object.
+
+my $genericsearch = RT::SavedSearch->new($curruser);
+$genericsearch->Save(Name => 'generic search',
+ Type => 'all',
+ SearchParams => {'Query' => "Queue = 'General'"});
+
+my $ticketsearches = RT::SavedSearches->new($curruser);
+$ticketsearches->LimitToPrivacy('RT::User-'.$curruser->Id, 'Ticket');
+is($ticketsearches->Count, 1, "Found searchuser's ticket searches");
+
+my $allsearches = RT::SavedSearches->new($curruser);
+$allsearches->LimitToPrivacy('RT::User-'.$curruser->Id);
+is($allsearches->Count, 2, "Found all searchuser's searches");
More information about the Rt-commit
mailing list