Files
cae/app/Models/Traits/BelongsToEscola.php
2026-02-22 18:16:47 +00:00

51 lines
1.2 KiB
PHP

<?php
namespace App\Models\Traits;
use Illuminate\Database\Eloquent\Builder;
trait BelongsToEscola
{
protected static function bootBelongsToEscola()
{
static::addGlobalScope('escola', function (Builder $builder) {
$user = auth()->user();
// Sem usuário logado: não filtra
if (!$user) {
return;
}
// Super admin: vê tudo (não filtra por escola)
if ($user->is_super_admin) {
return;
}
// Usuário comum: filtra pela escola atual
if ($user->current_escola_id) {
$builder->where('id_escola', $user->current_escola_id);
}
});
static::creating(function ($model) {
$user = auth()->user();
if (!$user) {
return;
}
// Super admin: não força id_escola automaticamente
if ($user->is_super_admin) {
return;
}
// Se não veio id_escola, seta pela escola atual do usuário
if (!$model->id_escola) {
$model->id_escola = $user->current_escola_id;
}
});
}
}