30 lines
643 B
PHP
30 lines
643 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Enums\Role;
|
|
use App\Models\Site;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Kwaadpepper\CrudPolicies\Traits\CrudController;
|
|
|
|
class SitesController extends Controller
|
|
{
|
|
use CrudController;
|
|
|
|
/** @var Site */
|
|
public static $modelClass = Site::class;
|
|
|
|
// BO
|
|
|
|
// Eloquent callbacks
|
|
|
|
public function indexQuery(Builder $query): Builder
|
|
{
|
|
/** @var \App\Models\User */
|
|
$user = auth()->user();
|
|
if (!$user->role->equals(Role::admin())) {
|
|
return $query->whereIn('id', $user->sites()->pluck('id'));
|
|
}
|
|
return $query;
|
|
}
|
|
}
|