ERRO CAKEPHP record not found in table

31/08/2021

4

Fala pessoal...
Estou tentando barrar o login de usuário caso ele tente n vezes a senha pra evitar ataques de força bruta.

$user = $this->Auth->identify();
$userLoad = $this->Users->get($user[''''''''id'''''''']);

            if($user[''''''''attempt''''''''] < 3){
                 if ($user) {
                    //Reseta a variável attempt
                    $userLoad->attempt = NULL;
                    $this->Users->save($userLoad);

                    $this->Auth->setUser($user);
                    #definir o contexto
                    #verificar se possui mais de um contexto e selecionar algum
                    $this->getRequest()->getSession()->write(''''''''User.context'''''''', $user[''''''''roles''''''''][0][''''''''type'''''''']);
                    return $this->redirect($this->Auth->redirectUrl());
                } else {

                    $this->Flash->error(__(''''''''Usuário ou senha incorreta.''''''''));
                    //Incrementa na variável para bloquear o usuário
                    $userLoad->attemp++;
                    $this->Users->save($userLoad);
                }
            }else{
                $this->Flash->error(__(''''''''Usuário bloqueado! Altere sua senha para ter acesso novamente.''''''''));
            }


Existe um campo no DB que se chama attemp e incrementa toda vezes que o usuário digita a senha errada e se esse valor for maior que 3x ele só consegue acessar novamente trocando a senha. Caso o usuário acesse esse valor passa pra null novamente.
Estou conseguindo acessar o sistema normalmente quando o login e senha está correto, porém está sendo apresentado esta mensagem quando a senha é digitada ERRADA.

Record not found in table "users" with primary key [NULL]


Se precisar de mais alguma informação eu passo abaixo.
Abraço
Responder

Posts

31/08/2021

Yuri Aguiar

Esqueci de informar que quando eu retiro a segunda linha do código tudo funcionar normalmente.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar