mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-04 16:14:36 -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) {
|
'company.bank_transactions'=> function ($query) use ($updated_at, $user) {
|
||||||
$query->where('updated_at', '>=', $updated_at);
|
$query->where('updated_at', '>=', $updated_at);
|
||||||
|
|
||||||
if (! $user->isAdmin()) {
|
if (! $user->hasPermission('view_bank_transaction')) {
|
||||||
$query->where('bank_transactions.user_id', $user->id);
|
$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) {
|
'company.bank_transactions'=> function ($query) use ($created_at, $user) {
|
||||||
$query->where('created_at', '>=', $created_at);
|
$query->where('created_at', '>=', $created_at);
|
||||||
|
|
||||||
if (! $user->isAdmin()) {
|
if (! $user->hasPermission('bank_transactions')) {
|
||||||
$query->where('bank_transactions.user_id', $user->id);
|
$query->where('bank_transactions.user_id', $user->id);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -26,6 +26,6 @@ class BankTransactionPolicy extends EntityPolicy
|
|||||||
*/
|
*/
|
||||||
public function create(User $user) : bool
|
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\Factory\CompanyUserFactory;
|
||||||
use App\Models\Account;
|
use App\Models\Account;
|
||||||
|
use App\Models\Client;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\CompanyToken;
|
use App\Models\CompanyToken;
|
||||||
use App\Models\CompanyUser;
|
use App\Models\CompanyUser;
|
||||||
use App\Models\Invoice;
|
use App\Models\Invoice;
|
||||||
|
use App\Models\RecurringInvoice;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
use Tests\MockAccountData;
|
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()
|
public function testExactPermissions()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user