25 lines
565 B
PHP
25 lines
565 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin\Concerns;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
/** Cloisonnement par tenant : un admin ne voit et ne modifie que les données de sa collectivité. */
|
|
trait ScopedToTenant
|
|
{
|
|
protected function tenantId(): int
|
|
{
|
|
return (int) auth()->user()->tenant_id;
|
|
}
|
|
|
|
protected function ensureTenant(Model $model): void
|
|
{
|
|
abort_unless((int) $model->tenant_id === $this->tenantId(), 404);
|
|
}
|
|
|
|
protected function actor(): string
|
|
{
|
|
return (string) auth()->user()->email;
|
|
}
|
|
}
|