mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Setup permissions for Bank Transactions
This commit is contained in:
parent
526a26868a
commit
5e012aa520
@ -450,7 +450,7 @@ class BaseController extends Controller
|
||||
'company.bank_transactions'=> function ($query) use ($updated_at, $user) {
|
||||
$query->where('updated_at', '>=', $updated_at);
|
||||
|
||||
if (! $user->isAdmin()) {
|
||||
if (! $user->hasPermission('view_bank_transaction')) {
|
||||
$query->where('bank_transactions.user_id', $user->id);
|
||||
}
|
||||
},
|
||||
@ -796,7 +796,7 @@ class BaseController extends Controller
|
||||
'company.bank_transactions'=> function ($query) use ($created_at, $user) {
|
||||
$query->where('created_at', '>=', $created_at);
|
||||
|
||||
if (! $user->isAdmin()) {
|
||||
if (! $user->hasPermission('bank_transactions')) {
|
||||
$query->where('bank_transactions.user_id', $user->id);
|
||||
}
|
||||
},
|
||||
|
@ -26,6 +26,6 @@ class BankTransactionPolicy extends EntityPolicy
|
||||
*/
|
||||
public function create(User $user) : bool
|
||||
{
|
||||
return $user->isAdmin();
|
||||
return $user->isAdmin() || $user->hasPermission('create_invoice') || $user->hasPermission('create_all');
|
||||
}
|
||||
}
|
||||
|
@ -13,10 +13,12 @@ namespace Tests\Unit;
|
||||
|
||||
use App\Factory\CompanyUserFactory;
|
||||
use App\Models\Account;
|
||||
use App\Models\Client;
|
||||
use App\Models\Company;
|
||||
use App\Models\CompanyToken;
|
||||
use App\Models\CompanyUser;
|
||||
use App\Models\Invoice;
|
||||
use App\Models\RecurringInvoice;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
use Tests\MockAccountData;
|
||||
@ -77,6 +79,21 @@ class PermissionsTest extends TestCase
|
||||
|
||||
}
|
||||
|
||||
public function testPermissionResolution()
|
||||
{
|
||||
$class = 'view'.lcfirst(class_basename(\Illuminate\Support\Str::snake(Invoice::class)));
|
||||
|
||||
$this->assertEquals('view_invoice', $class);
|
||||
|
||||
$class = 'view'.lcfirst(class_basename(\Illuminate\Support\Str::snake(Client::class)));
|
||||
$this->assertEquals('view_client', $class);
|
||||
|
||||
|
||||
$class = 'view'.lcfirst(class_basename(\Illuminate\Support\Str::snake(RecurringInvoice::class)));
|
||||
$this->assertEquals('view_recurring_invoice', $class);
|
||||
|
||||
}
|
||||
|
||||
public function testExactPermissions()
|
||||
{
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user