From: erickson Date: Tue, 19 Feb 2008 20:00:10 +0000 (+0000) Subject: gave the objects_allowed method the ability to check a list of perms X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=b192bb7c2176472cd5e7141201d5ae65519eba8b;p=Evergreen.git gave the objects_allowed method the ability to check a list of perms git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@8781 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Utils/CStoreEditor.pm b/Open-ILS/src/perlmods/OpenILS/Utils/CStoreEditor.pm index 419b23533a..c386f224e6 100644 --- a/Open-ILS/src/perlmods/OpenILS/Utils/CStoreEditor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Utils/CStoreEditor.pm @@ -442,24 +442,30 @@ sub allowed { sub objects_allowed { my($self, $perm, $obj_type) = @_; - my $query = { - select => {puopm => ['object_id']}, - from => { - puopm => { - ppl => {field => 'id',fkey => 'perm'} - } - }, - where => { - '+puopm' => {usr => $self->requestor->id, object_type => $obj_type}, - '+ppl' => {code => $perm} - } - }; + my $perms = (ref($perm) eq 'ARRAY') ? $perm : [$perm]; + my @ids; - my $list = $self->json_query($query); - my @ids; - push(@ids, 0+$_->{object_id}) for @$list; + for $perm (@$perms) { + my $query = { + select => {puopm => ['object_id']}, + from => { + puopm => { + ppl => {field => 'id',fkey => 'perm'} + } + }, + where => { + '+puopm' => {usr => $self->requestor->id, object_type => $obj_type}, + '+ppl' => {code => $perm} + } + }; + + my $list = $self->json_query($query); + push(@ids, 0+$_->{object_id}) for @$list; + } - return \@ids; + my %trim + $trim{$_} = 1 for @ids; + return keys %trim; }