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

(-)a/C4/Budgets.pm (-18 / +40 lines)
Lines 827-856 sub CanUserUseBudget { Link Here
827
        }
827
        }
828
828
829
        # Budget restricted to owner
829
        # Budget restricted to owner
830
        if ($budget->{budget_permission} == 1
830
        if ( $budget->{budget_permission} == 1 ) {
831
        && $budget->{budget_owner_id}
831
            if (    $budget->{budget_owner_id}
832
        && $budget->{budget_owner_id} != $borrower->{borrowernumber}) {
832
                and $budget->{budget_owner_id} != $borrower->{borrowernumber} )
833
            return 0;
833
            {
834
                return 0;
835
            }
834
        }
836
        }
835
837
836
        my @budget_users = GetBudgetUsers($budget->{budget_id});
837
838
        # Budget restricted to owner, users and library
838
        # Budget restricted to owner, users and library
839
        if ($budget->{budget_permission} == 2
839
        elsif ( $budget->{budget_permission} == 2 ) {
840
        && $budget->{budget_owner_id}
840
            my @budget_users = GetBudgetUsers( $budget->{budget_id} );
841
        && $budget->{budget_owner_id} != $borrower->{borrowernumber}
841
842
        && (0 == grep {$borrower->{borrowernumber} == $_} @budget_users)
842
            if (
843
        && defined $budget->{budget_branchcode}
843
                (
844
        && $budget->{budget_branchcode} ne C4::Context->userenv->{branch}) {
844
                        $budget->{budget_owner_id}
845
            return 0;
845
                    and $budget->{budget_owner_id} !=
846
                    $borrower->{borrowernumber}
847
                    or not $budget->{budget_owner_id}
848
                )
849
                and ( 0 == grep { $borrower->{borrowernumber} == $_ }
850
                    @budget_users )
851
                and defined $budget->{budget_branchcode}
852
                and $budget->{budget_branchcode} ne
853
                C4::Context->userenv->{branch}
854
              )
855
            {
856
                return 0;
857
            }
846
        }
858
        }
847
859
848
        # Budget restricted to owner and users
860
        # Budget restricted to owner and users
849
        if ($budget->{budget_permission} == 3
861
        elsif ( $budget->{budget_permission} == 3 ) {
850
        && $budget->{budget_owner_id}
862
            my @budget_users = GetBudgetUsers( $budget->{budget_id} );
851
        && $budget->{budget_owner_id} != $borrower->{borrowernumber}
863
            if (
852
        && (0 == grep {$borrower->{borrowernumber} == $_} @budget_users)) {
864
                (
853
            return 0;
865
                        $budget->{budget_owner_id}
866
                    and $budget->{budget_owner_id} !=
867
                    $borrower->{borrowernumber}
868
                    or not $budget->{budget_owner_id}
869
                )
870
                and ( 0 == grep { $borrower->{borrowernumber} == $_ }
871
                    @budget_users )
872
              )
873
            {
874
                return 0;
875
            }
854
        }
876
        }
855
    }
877
    }
856
878
(-)a/t/Budgets/CanUserModifyBudget.t (-7 / +7 lines)
Lines 182-193 ok (CanUserModifyBudget($borrower2, $budget11, $flags)); Link Here
182
ok (CanUserModifyBudget($borrower2, $budget12, $flags));
182
ok (CanUserModifyBudget($borrower2, $budget12, $flags));
183
183
184
# Restriction is 'owner and users'
184
# Restriction is 'owner and users'
185
ok (CanUserModifyBudget($borrower1, $budget13, $flags));
185
ok (!CanUserModifyBudget($borrower1, $budget13, $flags)); # no owner, no user
186
ok (CanUserModifyBudget($borrower1, $budget14, $flags));
186
ok (CanUserModifyBudget($borrower1, $budget14, $flags));
187
ok (CanUserModifyBudget($borrower1, $budget15, $flags));
187
ok (CanUserModifyBudget($borrower1, $budget15, $flags));
188
ok (CanUserModifyBudget($borrower1, $budget16, $flags));
188
ok (CanUserModifyBudget($borrower1, $budget16, $flags));
189
ok (CanUserModifyBudget($borrower2, $budget13, $flags));
189
ok (!CanUserModifyBudget($borrower2, $budget13, $flags)); # no owner, no user
190
ok (CanUserModifyBudget($borrower2, $budget14, $flags));
190
ok (!CanUserModifyBudget($borrower2, $budget14, $flags)); # No owner and user list contains borrower1
191
ok (CanUserModifyBudget($borrower2, $budget15, $flags));
191
ok (CanUserModifyBudget($borrower2, $budget15, $flags));
192
ok (!CanUserModifyBudget($borrower2, $budget16, $flags));
192
ok (!CanUserModifyBudget($borrower2, $budget16, $flags));
193
193
Lines 220-236 ok (CanUserModifyBudget($borrower1, $budget10, $flags)); Link Here
220
ok (CanUserModifyBudget($borrower1, $budget11, $flags));
220
ok (CanUserModifyBudget($borrower1, $budget11, $flags));
221
ok (CanUserModifyBudget($borrower1, $budget12, $flags));
221
ok (CanUserModifyBudget($borrower1, $budget12, $flags));
222
ok (CanUserModifyBudget($borrower2, $budget9, $flags));
222
ok (CanUserModifyBudget($borrower2, $budget9, $flags));
223
ok (CanUserModifyBudget($borrower2, $budget10, $flags));
223
ok (!CanUserModifyBudget($borrower2, $budget10, $flags)); # Limited to library B1
224
ok (CanUserModifyBudget($borrower2, $budget11, $flags));
224
ok (CanUserModifyBudget($borrower2, $budget11, $flags));
225
ok (!CanUserModifyBudget($borrower2, $budget12, $flags));
225
ok (!CanUserModifyBudget($borrower2, $budget12, $flags));
226
226
227
# Restriction is 'owner and users'
227
# Restriction is 'owner and users'
228
ok (CanUserModifyBudget($borrower1, $budget13, $flags));
228
ok (!CanUserModifyBudget($borrower1, $budget13, $flags)); # No owner, no user
229
ok (CanUserModifyBudget($borrower1, $budget14, $flags));
229
ok (CanUserModifyBudget($borrower1, $budget14, $flags));
230
ok (CanUserModifyBudget($borrower1, $budget15, $flags));
230
ok (CanUserModifyBudget($borrower1, $budget15, $flags));
231
ok (CanUserModifyBudget($borrower1, $budget16, $flags));
231
ok (CanUserModifyBudget($borrower1, $budget16, $flags));
232
ok (CanUserModifyBudget($borrower2, $budget13, $flags));
232
ok (!CanUserModifyBudget($borrower2, $budget13, $flags)); # No owner, no user
233
ok (CanUserModifyBudget($borrower2, $budget14, $flags));
233
ok (!CanUserModifyBudget($borrower2, $budget14, $flags)); # No owner and user list contains borrower1
234
ok (CanUserModifyBudget($borrower2, $budget15, $flags));
234
ok (CanUserModifyBudget($borrower2, $budget15, $flags));
235
ok (!CanUserModifyBudget($borrower2, $budget16, $flags));
235
ok (!CanUserModifyBudget($borrower2, $budget16, $flags));
236
236
(-)a/t/Budgets/CanUserUseBudget.t (-8 / +7 lines)
Lines 182-193 ok (CanUserUseBudget($borrower2, $budget11, $flags)); Link Here
182
ok (CanUserUseBudget($borrower2, $budget12, $flags));
182
ok (CanUserUseBudget($borrower2, $budget12, $flags));
183
183
184
# Restriction is 'owner and users'
184
# Restriction is 'owner and users'
185
ok (CanUserUseBudget($borrower1, $budget13, $flags));
185
ok (!CanUserUseBudget($borrower1, $budget13, $flags)); # No user, no owner
186
ok (CanUserUseBudget($borrower1, $budget14, $flags));
186
ok (CanUserUseBudget($borrower1, $budget14, $flags));
187
ok (CanUserUseBudget($borrower1, $budget15, $flags));
187
ok (CanUserUseBudget($borrower1, $budget15, $flags));
188
ok (CanUserUseBudget($borrower1, $budget16, $flags));
188
ok (CanUserUseBudget($borrower1, $budget16, $flags));
189
ok (CanUserUseBudget($borrower2, $budget13, $flags));
189
ok (!CanUserUseBudget($borrower2, $budget13, $flags)); # No user, no owner
190
ok (CanUserUseBudget($borrower2, $budget14, $flags));
190
ok (!CanUserUseBudget($borrower2, $budget14, $flags)); # No owner and user list contains borrower1
191
ok (CanUserUseBudget($borrower2, $budget15, $flags));
191
ok (CanUserUseBudget($borrower2, $budget15, $flags));
192
ok (!CanUserUseBudget($borrower2, $budget16, $flags));
192
ok (!CanUserUseBudget($borrower2, $budget16, $flags));
193
193
Lines 220-236 ok (CanUserUseBudget($borrower1, $budget10, $flags)); Link Here
220
ok (CanUserUseBudget($borrower1, $budget11, $flags));
220
ok (CanUserUseBudget($borrower1, $budget11, $flags));
221
ok (CanUserUseBudget($borrower1, $budget12, $flags));
221
ok (CanUserUseBudget($borrower1, $budget12, $flags));
222
ok (CanUserUseBudget($borrower2, $budget9, $flags));
222
ok (CanUserUseBudget($borrower2, $budget9, $flags));
223
ok (CanUserUseBudget($borrower2, $budget10, $flags));
223
ok (!CanUserUseBudget($borrower2, $budget10, $flags)); # Limited to library B1
224
ok (CanUserUseBudget($borrower2, $budget11, $flags));
224
ok (CanUserUseBudget($borrower2, $budget11, $flags));
225
ok (!CanUserUseBudget($borrower2, $budget12, $flags));
225
ok (!CanUserUseBudget($borrower2, $budget12, $flags));
226
226
227
# Restriction is 'owner and users'
227
# Restriction is 'owner and users'
228
ok (CanUserUseBudget($borrower1, $budget13, $flags));
228
ok (!CanUserUseBudget($borrower1, $budget13, $flags)); # No owner, no user
229
ok (CanUserUseBudget($borrower1, $budget14, $flags));
229
ok (CanUserUseBudget($borrower1, $budget14, $flags));
230
ok (CanUserUseBudget($borrower1, $budget15, $flags));
230
ok (CanUserUseBudget($borrower1, $budget15, $flags));
231
ok (CanUserUseBudget($borrower1, $budget16, $flags));
231
ok (CanUserUseBudget($borrower1, $budget16, $flags));
232
ok (CanUserUseBudget($borrower2, $budget13, $flags));
232
ok (!CanUserUseBudget($borrower2, $budget13, $flags)); # No owner, no user
233
ok (CanUserUseBudget($borrower2, $budget14, $flags));
233
ok (!CanUserUseBudget($borrower2, $budget14, $flags)); # No owner and user list contains borrower1
234
ok (CanUserUseBudget($borrower2, $budget15, $flags));
234
ok (CanUserUseBudget($borrower2, $budget15, $flags));
235
ok (!CanUserUseBudget($borrower2, $budget16, $flags));
235
ok (!CanUserUseBudget($borrower2, $budget16, $flags));
236
236
237
- 

Return to bug 12019