Difference between revisions of "Miscellaneous Config Options/get users owned eprints"

From EPrints Documentation
Jump to: navigation, search
 
Line 26: Line 26:
 
  {
 
  {
 
     my( $session, $user, $dataset ) = @_;
 
     my( $session, $user, $dataset ) = @_;
     my $searchexp = new EPrints::Search(
+
     my $searchexp = $dataset->prepare_search(
        session => $session,
+
         # options go here
        dataset => $dataset,
 
         # plus any other options
 
 
     );
 
     );
 
     # Add fields to $searchexp here
 
     # Add fields to $searchexp here
 
     return $searchexp->perform_search;
 
     return $searchexp->perform_search;
 
  };
 
  };

Latest revision as of 12:36, 1 October 2024

This example should work with v3.4.6+.

Prior to v3.4.6 defining this method resulted in unexpected behaviour when eprint_status checkboxes were used on the Manage deposits page.

Example

$c->{get_users_owned_eprints} = sub 
{
    my( $session, $user, %opts ) = @_;
    # for non-editorial accounts, return the normal list
    if( $user->get_type ne "editor" )
    {
        return $user->owned_eprints_list_actual( %opts );
    }
    # only interested in editor accounts now
    # allow editors to see their items, and items from a specific userid e.g. 99999
    my $extra_userid = 99999;
    my $searchexp = $opts{dataset}->prepare_search( %opts );
    $searchexp->add_field( $opts{dataset}->field( "userid" ), $user->id . " $extra_userid", "IN", "ANY" );
    return $searchexp->perform_search;
};

Prior to v3.4.6, this function was passed a different set of parameters, thus search options had to be hard-coded:

# v3.4.5 and earlier
$c->{get_users_owned_eprints} = sub 
{
    my( $session, $user, $dataset ) = @_;
    my $searchexp = $dataset->prepare_search(
        # options go here
    );
    # Add fields to $searchexp here
    return $searchexp->perform_search;
};