Erro com Auth->user()->id

[Finalizado Pelo Aluno]

André Cabral Criador 07/10/2019
André Cabral

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);

    }

 

 

 

 

Criador André Cabral 07/10/2019
André Cabral

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

Criador André Cabral 07/10/2019
André Cabral

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?

Manager Carlos Ferreira 07/10/2019
Carlos Ferreira

Olá, André!

Está dando algum erro, qual?

Criador André Cabral 07/10/2019
André Cabral

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);

            }

        }

    }

 
Manager Carlos Ferreira 08/10/2019
Carlos Ferreira

Que bom que conseguiu achar uma alternativa amigo. Precisando, é só chamar.

Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!