Erro com Auth->user()->id
[Finalizado Pelo Aluno]
Bom dia,
Tive um problema ao tentar dar capturar Auth::user()->id do usuário diretamente na Model.
Só consegui através do ' Auth::check '.
Mesmo utilizando Middlewares e com usuário autenticado pq o Laravel obriga a checar antes ?
public static function boot()
{
parent::boot();
if (Auth::check()) {
$usuario = User::findOrfail(Auth::id());
$usuario->existePapel('Admin');
}
static::addGlobalScope(new TenantScope);
}
Desconsidere a pergunta anterior, na verdade não estou conseguindo fazer uma verificação se o usuário é Admin na função boot() da model
Carlos, tenho uma função na User.php que verifica se o usuário é Admin.
Porém não estou conseguindo fazer a verificação no método static boot()
Vc teria algum modelo ou direção de como injetar a verificação nesse método?
Olá, André!
Está dando algum erro, qual?
O Auth não funciona diretamente na public static boot();
Não sei se é pq é uma função stática, quando tento Auth::id() ou qualquer método de Auth retorna um erro que a propriedade não existe.
A solução foi implementar no método apply(), aqui funcionou:
public function apply(Builder $builder, Model $model)
{
if (Auth::check()) {
$user = User::findOrfail(Auth::id());
$admin = $user->isAdmin();
if (!$admin) {
$tenant = app(ManagerTenant::class)->getTenantIdentify();
$builder->where('tenant_id', $tenant);
}
}
}
Que bom que conseguiu achar uma alternativa amigo. Precisando, é só chamar.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!