[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
André Cabral
Criador André Cabral 07/10/2019

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

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

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

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?

André Cabral
Manager Carlos Ferreira 07/10/2019

Olá, André!

Está dando algum erro, qual?

Carlos Ferreira
Criador André Cabral 07/10/2019

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

            }

        }

    }

 
André Cabral
Manager Carlos Ferreira 07/10/2019

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

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!