method => "patron_adv_search",
api_name => "open-ils.actor.patron.search.advanced"
);
+__PACKAGE__->register_method(
+ method => "patron_adv_search",
+ api_name => "open-ils.actor.patron.search.advanced.opt_in_override"
+);
sub patron_adv_search {
- my( $self, $client, $auth, $search_hash,
+ my( $self, $client, $auth, $search_hash,
$search_limit, $search_sort, $include_inactive, $search_depth ) = @_;
- my $e = new_editor(authtoken=>$auth);
- return $e->event unless $e->checkauth;
- return $e->event unless $e->allowed('VIEW_USER');
- return $U->storagereq(
- "open-ils.storage.actor.user.crazy_search", $search_hash,
- $search_limit, $search_sort, $include_inactive, $e->requestor->ws_ou, $search_depth);
+ my $ignore_opt_in = 0;
+ my $e = new_editor(authtoken=>$auth);
+ return $e->event unless $e->checkauth;
+ return $e->event unless $e->allowed('VIEW_USER');
+
+ # Override opt-in permissions
+ if ($self->api_name =~ /opt_in_override/) {
+ if ($e->allowed('OPT_IN_OVERRIDE')) {
+ $ignore_opt_in = 1;
+ }
+ }
+ return $U->storagereq(
+ "open-ils.storage.actor.user.crazy_search", $search_hash,
+ $search_limit, $search_sort, $include_inactive,
+ $e->requestor->ws_ou, $search_depth, $ignore_opt_in);
}