From b90e59a137ec130f6f69746586230129e8898495 Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 5 Dec 2008 22:39:55 +0000 Subject: [PATCH] added confirmed-only option to friend retrieval git-svn-id: svn://svn.open-ils.org/ILS/trunk@11429 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/Application/Actor.pm | 6 ++++-- .../src/perlmods/OpenILS/Application/Actor/Friends.pm | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index 9c8880b998..23dc7e6098 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -3071,16 +3071,18 @@ __PACKAGE__->register_method ( ); sub retrieve_friends { - my($self, $conn, $auth, $user_id) = @_; + my($self, $conn, $auth, $user_id, $options) = @_; my $e = new_editor(authtoken => $auth); return $e->event unless $e->checkauth; $user_id ||= $e->requestor->id; + if($user_id != $e->requestor->id) { my $user = $e->retrieve_actor_user($user_id) or return $e->event; return $e->event unless $e->allowed('VIEW_USER', $user->home_ou); } - return OpenILS::Application::Actor::Friends->retrieve_friends($e, $user_id); + return OpenILS::Application::Actor::Friends->retrieve_friends( + $e, $user_id, $options); } diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor/Friends.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor/Friends.pm index 3ec4f296bc..747818fa92 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor/Friends.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor/Friends.pm @@ -49,7 +49,8 @@ my $perm_check_query = { }; sub retrieve_friends { - my($self, $e, $user_id) = @_; + my($self, $e, $user_id, $options) = @_; + $options ||= {}; # users I have links to $out_links_query->{where}->{'+cub'}->{owner} = $user_id; @@ -78,11 +79,17 @@ sub retrieve_friends { unless grep {$_ == $in_link} @confirmed; } - return { - confirmed => $self->load_linked_user_perms($e, $user_id, @confirmed), - pending_out => $self->load_linked_user_perms($e, $user_id, @pending_out), - pending_in => $self->load_linked_user_perms($e, $user_id, @pending_in) - }; + if($$options{confirmed_only}) { + return { + confirmed => $self->load_linked_user_perms($e, $user_id, @confirmed), + }; + } else { + return { + confirmed => $self->load_linked_user_perms($e, $user_id, @confirmed), + pending_out => $self->load_linked_user_perms($e, $user_id, @pending_out), + pending_in => $self->load_linked_user_perms($e, $user_id, @pending_in) + }; + } } # given a base user and set of linked users, returns the trimmed linked user -- 2.11.0