}
# Budget restricted to owner
- if ($budget->{budget_permission} == 1
- && $budget->{budget_owner_id}
- && $budget->{budget_owner_id} != $borrower->{borrowernumber}) {
- return 0;
+ if ( $budget->{budget_permission} == 1 ) {
+ if ( $budget->{budget_owner_id}
+ and $budget->{budget_owner_id} != $borrower->{borrowernumber} )
+ {
+ return 0;
+ }
}
- my @budget_users = GetBudgetUsers($budget->{budget_id});
-
# Budget restricted to owner, users and library
- if ($budget->{budget_permission} == 2
- && $budget->{budget_owner_id}
- && $budget->{budget_owner_id} != $borrower->{borrowernumber}
- && (0 == grep {$borrower->{borrowernumber} == $_} @budget_users)
- && defined $budget->{budget_branchcode}
- && $budget->{budget_branchcode} ne C4::Context->userenv->{branch}) {
- return 0;
+ elsif ( $budget->{budget_permission} == 2 ) {
+ my @budget_users = GetBudgetUsers( $budget->{budget_id} );
+
+ if (
+ (
+ $budget->{budget_owner_id}
+ and $budget->{budget_owner_id} !=
+ $borrower->{borrowernumber}
+ or not $budget->{budget_owner_id}
+ )
+ and ( 0 == grep { $borrower->{borrowernumber} == $_ }
+ @budget_users )
+ and defined $budget->{budget_branchcode}
+ and $budget->{budget_branchcode} ne
+ C4::Context->userenv->{branch}
+ )
+ {
+ return 0;
+ }
}
# Budget restricted to owner and users
- if ($budget->{budget_permission} == 3
- && $budget->{budget_owner_id}
- && $budget->{budget_owner_id} != $borrower->{borrowernumber}
- && (0 == grep {$borrower->{borrowernumber} == $_} @budget_users)) {
- return 0;
+ elsif ( $budget->{budget_permission} == 3 ) {
+ my @budget_users = GetBudgetUsers( $budget->{budget_id} );
+ if (
+ (
+ $budget->{budget_owner_id}
+ and $budget->{budget_owner_id} !=
+ $borrower->{borrowernumber}
+ or not $budget->{budget_owner_id}
+ )
+ and ( 0 == grep { $borrower->{borrowernumber} == $_ }
+ @budget_users )
+ )
+ {
+ return 0;
+ }
}
}
ok (CanUserModifyBudget($borrower2, $budget12, $flags));
# Restriction is 'owner and users'
-ok (CanUserModifyBudget($borrower1, $budget13, $flags));
+ok (!CanUserModifyBudget($borrower1, $budget13, $flags)); # no owner, no user
ok (CanUserModifyBudget($borrower1, $budget14, $flags));
ok (CanUserModifyBudget($borrower1, $budget15, $flags));
ok (CanUserModifyBudget($borrower1, $budget16, $flags));
-ok (CanUserModifyBudget($borrower2, $budget13, $flags));
-ok (CanUserModifyBudget($borrower2, $budget14, $flags));
+ok (!CanUserModifyBudget($borrower2, $budget13, $flags)); # no owner, no user
+ok (!CanUserModifyBudget($borrower2, $budget14, $flags)); # No owner and user list contains borrower1
ok (CanUserModifyBudget($borrower2, $budget15, $flags));
ok (!CanUserModifyBudget($borrower2, $budget16, $flags));
ok (CanUserModifyBudget($borrower1, $budget11, $flags));
ok (CanUserModifyBudget($borrower1, $budget12, $flags));
ok (CanUserModifyBudget($borrower2, $budget9, $flags));
-ok (CanUserModifyBudget($borrower2, $budget10, $flags));
+ok (!CanUserModifyBudget($borrower2, $budget10, $flags)); # Limited to library B1
ok (CanUserModifyBudget($borrower2, $budget11, $flags));
ok (!CanUserModifyBudget($borrower2, $budget12, $flags));
# Restriction is 'owner and users'
-ok (CanUserModifyBudget($borrower1, $budget13, $flags));
+ok (!CanUserModifyBudget($borrower1, $budget13, $flags)); # No owner, no user
ok (CanUserModifyBudget($borrower1, $budget14, $flags));
ok (CanUserModifyBudget($borrower1, $budget15, $flags));
ok (CanUserModifyBudget($borrower1, $budget16, $flags));
-ok (CanUserModifyBudget($borrower2, $budget13, $flags));
-ok (CanUserModifyBudget($borrower2, $budget14, $flags));
+ok (!CanUserModifyBudget($borrower2, $budget13, $flags)); # No owner, no user
+ok (!CanUserModifyBudget($borrower2, $budget14, $flags)); # No owner and user list contains borrower1
ok (CanUserModifyBudget($borrower2, $budget15, $flags));
ok (!CanUserModifyBudget($borrower2, $budget16, $flags));
ok (CanUserUseBudget($borrower2, $budget12, $flags));
# Restriction is 'owner and users'
-ok (CanUserUseBudget($borrower1, $budget13, $flags));
+ok (!CanUserUseBudget($borrower1, $budget13, $flags)); # No user, no owner
ok (CanUserUseBudget($borrower1, $budget14, $flags));
ok (CanUserUseBudget($borrower1, $budget15, $flags));
ok (CanUserUseBudget($borrower1, $budget16, $flags));
-ok (CanUserUseBudget($borrower2, $budget13, $flags));
-ok (CanUserUseBudget($borrower2, $budget14, $flags));
+ok (!CanUserUseBudget($borrower2, $budget13, $flags)); # No user, no owner
+ok (!CanUserUseBudget($borrower2, $budget14, $flags)); # No owner and user list contains borrower1
ok (CanUserUseBudget($borrower2, $budget15, $flags));
ok (!CanUserUseBudget($borrower2, $budget16, $flags));
ok (CanUserUseBudget($borrower1, $budget11, $flags));
ok (CanUserUseBudget($borrower1, $budget12, $flags));
ok (CanUserUseBudget($borrower2, $budget9, $flags));
-ok (CanUserUseBudget($borrower2, $budget10, $flags));
+ok (!CanUserUseBudget($borrower2, $budget10, $flags)); # Limited to library B1
ok (CanUserUseBudget($borrower2, $budget11, $flags));
ok (!CanUserUseBudget($borrower2, $budget12, $flags));
# Restriction is 'owner and users'
-ok (CanUserUseBudget($borrower1, $budget13, $flags));
+ok (!CanUserUseBudget($borrower1, $budget13, $flags)); # No owner, no user
ok (CanUserUseBudget($borrower1, $budget14, $flags));
ok (CanUserUseBudget($borrower1, $budget15, $flags));
ok (CanUserUseBudget($borrower1, $budget16, $flags));
-ok (CanUserUseBudget($borrower2, $budget13, $flags));
-ok (CanUserUseBudget($borrower2, $budget14, $flags));
+ok (!CanUserUseBudget($borrower2, $budget13, $flags)); # No owner, no user
+ok (!CanUserUseBudget($borrower2, $budget14, $flags)); # No owner and user list contains borrower1
ok (CanUserUseBudget($borrower2, $budget15, $flags));
ok (!CanUserUseBudget($borrower2, $budget16, $flags));