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

From EPrints Documentation
Jump to: navigation, search
(Example)
 
(One intermediate revision by the same user not shown)
Line 17: Line 17:
 
     my $searchexp = $opts{dataset}->prepare_search( %opts );
 
     my $searchexp = $opts{dataset}->prepare_search( %opts );
 
     $searchexp->add_field( $opts{dataset}->field( "userid" ), $user->id . " $extra_userid", "IN", "ANY" );
 
     $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;
 
     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;
};