29 lines
574 B
PHP
29 lines
574 B
PHP
|
<?php
|
||
|
|
||
|
/**
|
||
|
* Add a ScopeAuthorised to an Eloquent Model
|
||
|
* This will help limit the scope of accounts that a user can see.
|
||
|
*/
|
||
|
namespace App\Traits;
|
||
|
|
||
|
use Illuminate\Support\Facades\Auth;
|
||
|
|
||
|
use App\Models\User;
|
||
|
|
||
|
trait ScopeAccountUserAuthorised
|
||
|
{
|
||
|
/**
|
||
|
* Only query records that the user is authorised to see
|
||
|
*/
|
||
|
public function scopeAccountUserAuthorised($query,string $table=NULL,User $uo=NULL)
|
||
|
{
|
||
|
if (! $uo)
|
||
|
$uo = Auth::user();
|
||
|
|
||
|
if (! $table)
|
||
|
$table = $this->getTable();
|
||
|
|
||
|
return $query
|
||
|
->whereIN($table.'.account_id',$uo->accounts_all->pluck('id'));
|
||
|
}
|
||
|
}
|