Laravel - Ao autenticar usuário

4 respostas
laravel
Cleiton_Conceicao

Galera, preciso fazer uma validação ao autenticar o usuário. no código abaixo eu verifico se o usuário está associado a uma empresa, caso não esteja eu gostaria de exibir uma mensagem Informando que o usuário não está associado a uma empresa. e assim impedindo de o usuário entrar no sistema.

public function authenticated($request, $usuario){
        $user = Auth::user();
        $empresa = \DB::table("empresa_usuarios")->where('emp_codigo', $user->id)->first();
        if($empresa!=''){
        session(['empresa_id' => $empresa->emp_codigo]); 
    }
}

4 Respostas

Dragoon

Primeira coisa, nunca compare valor que pode ser NULL como se fosse string é só envolver na estrutura de decisão que você tem o resultado que a empresa foi retornada, exemplo:

public function authenticated($request, $usuario)
{
	$user = Auth::user();
	$empresa = \DB::table("empresa_usuarios")
                        ->where('emp_codigo', $user->id)
                        ->first();

	if($empresa) // se retornou a empresa passa dentro do if, 
    {            // se não ele retorna `NULL`
	    session(['empresa_id' => $empresa->emp_codigo]); 
    }
    else
    {
          //aqui você decide o que vai fazer se o usuário não tem empresa
    }
}

Seguinte deve ter um erro estrutura, você não pode ter usuários sem empresa, isso é uma regra então no cadastro do usuário é que você faz essa validação e não na parte de autenticação, entendeu?

Cleiton_Conceicao

Obrigado pela dica, mas não posso fazer essa validação no próprio cadastro de usuários.
Pq lá eu cadastro a empresa e associo vários usuários a essa empresa.

Dragoon

Então, você tem problema estrutural! e de design, porque na verdade você deveria sim fazer isso…

Bom é um conselho você está sempre indo de contra mão ao que é simples e correto. cuidado.

Cleiton_Conceicao

Tive que estruturar desse jeito pq envolve outras coisas.
Mas vou ver o que eu faço.
Obrigado pela força!

Criado 28 de abril de 2019
Ultima resposta 28 de abr. de 2019
Respostas 4
Participantes 2