Scope all bulk deletes to current company and fix inverted ownership transfer (#605)

Bulk delete: filter IDs through whereCompany() before deleting in all
controllers (Invoices, Payments, Items, Expenses, Estimates, Recurring
Invoices). Previously, any user could delete records from other companies
by providing cross-company IDs.

Transfer ownership: fix inverted hasCompany() check that allowed
transferring company ownership to users who do NOT belong to the company,
while blocking users who DO belong.

Ref #567
This commit is contained in:
Darko Gjorgjijoski
2026-04-03 14:16:42 +02:00
committed by GitHub
parent defbfc6406
commit 1adebe85b9
7 changed files with 32 additions and 8 deletions

View File

@@ -100,7 +100,11 @@ class InvoicesController extends Controller
{
$this->authorize('delete multiple invoices');
Invoice::deleteInvoices($request->ids);
$ids = Invoice::whereCompany()
->whereIn('id', $request->ids)
->pluck('id');
Invoice::deleteInvoices($ids);
return response()->json([
'success' => true,