View | Details | Raw Unified | Return to bug 12098
Collapse All | Expand All

(-)a/C4/Serials.pm (-33 / +17 lines)
Lines 2840-2884 sub subscriptionCurrentlyOnOrder { Link Here
2840
2840
2841
    $can = can_edit_subscription( $subscriptionid[, $userid] );
2841
    $can = can_edit_subscription( $subscriptionid[, $userid] );
2842
2842
2843
Return 1 if the subscription is editable by the current logged user (or a given $userid), else 0.
2843
Return 1 if the subscription can be edited by the current logged user (or a given $userid), else 0.
2844
2844
2845
=cut
2845
=cut
2846
2846
2847
sub can_edit_subscription {
2847
sub can_edit_subscription {
2848
    my ( $subscription, $userid ) = @_;
2848
    my ( $subscription, $userid ) = @_;
2849
    return 0 unless C4::Context->userenv;
2849
    return _can_do_on_subscription( $subscription, $userid, 'edit_subscription' );
2850
    my $flags = C4::Context->userenv->{flags};
2851
    $userid ||= C4::Context->userenv->{'id'};
2852
2853
    if ( C4::Context->preference('IndependentBranches') ) {
2854
        return 1
2855
          if C4::Context->IsSuperLibrarian()
2856
              or
2857
              C4::Auth::haspermission( $userid, { serials => 'superserials' } )
2858
              or (
2859
                  C4::Auth::haspermission( $userid,
2860
                      { serials => 'edit_subscription' } )
2861
                  and (  not defined $subscription->{branchcode}
2862
                      or $subscription->{branchcode} eq ''
2863
                      or $subscription->{branchcode} eq
2864
                      C4::Context->userenv->{'branch'} )
2865
              );
2866
    }
2867
    else {
2868
        return 1
2869
          if C4::Context->IsSuperLibrarian()
2870
              or
2871
              C4::Auth::haspermission( $userid, { serials => 'superserials' } )
2872
              or C4::Auth::haspermission(
2873
                  $userid, { serials => 'edit_subscription' }
2874
              ),
2875
        ;
2876
    }
2877
    return 0;
2878
}
2850
}
2879
2851
2852
=head2 can_show_subscription
2853
2854
    $can = can_show_subscription( $subscriptionid[, $userid] );
2855
2856
Return 1 if the subscription can be shown by the current logged user (or a given $userid), else 0.
2857
2858
=cut
2859
2880
sub can_show_subscription {
2860
sub can_show_subscription {
2881
    my ( $subscription, $userid ) = @_;
2861
    my ( $subscription, $userid ) = @_;
2862
    return _can_do_on_subscription( $subscription, $userid, '*' );
2863
}
2864
2865
sub _can_do_on_subscription {
2866
    my ( $subscription, $userid, $permission ) = @_;
2882
    return 0 unless C4::Context->userenv;
2867
    return 0 unless C4::Context->userenv;
2883
    my $flags = C4::Context->userenv->{flags};
2868
    my $flags = C4::Context->userenv->{flags};
2884
    $userid ||= C4::Context->userenv->{'id'};
2869
    $userid ||= C4::Context->userenv->{'id'};
Lines 2890-2896 sub can_show_subscription { Link Here
2890
              C4::Auth::haspermission( $userid, { serials => 'superserials' } )
2875
              C4::Auth::haspermission( $userid, { serials => 'superserials' } )
2891
              or (
2876
              or (
2892
                  C4::Auth::haspermission( $userid,
2877
                  C4::Auth::haspermission( $userid,
2893
                      { serials => '*' } )
2878
                      { serials => $permission } )
2894
                  and (  not defined $subscription->{branchcode}
2879
                  and (  not defined $subscription->{branchcode}
2895
                      or $subscription->{branchcode} eq ''
2880
                      or $subscription->{branchcode} eq ''
2896
                      or $subscription->{branchcode} eq
2881
                      or $subscription->{branchcode} eq
Lines 2903-2909 sub can_show_subscription { Link Here
2903
              or
2888
              or
2904
              C4::Auth::haspermission( $userid, { serials => 'superserials' } )
2889
              C4::Auth::haspermission( $userid, { serials => 'superserials' } )
2905
              or C4::Auth::haspermission(
2890
              or C4::Auth::haspermission(
2906
                  $userid, { serials => '*' }
2891
                  $userid, { serials => $permission }
2907
              ),
2892
              ),
2908
        ;
2893
        ;
2909
    }
2894
    }
2910
- 

Return to bug 12098