Quantcast
Channel: Problemas Generales
Viewing all articles
Browse latest Browse all 5438

Aviso de intentos de identificación fallidos: user_count_login_failures

$
0
0
por Manuel Prieto.  

Buenos días,

Tengo una duda sobre el número de intentos de login del usuario.

Si el login falla, se añade ese intento a la tabla de "mdl_user_preferences" en el registro "login_failed_count_since_success" para contar las veces que ha fallado desde la última vez que hizo login. Si este valor es distinto de 0 se muestra en pantalla un mensaje al usuario en la parte superior que se establece en el archivo  user\lib.php en la función user_get_user_navigation_info() en las siguientes líneas:


// Don't reset the count either, as login_info() still needs it too.
if ($count = user_count_login_failures($user, false)) {

                // Get login failures string.
               // Muestra el mensaje en el navbar con el número de intentos
                $a = new stdClass();
                $a->attempts = html_writer::tag('span', $count, array('class' => 'value'));
                $returnobject->metadata['userloginfail'] =
                    get_string('failedloginattempts', '', $a);

}

En este caso la línea de la condicional con $count = user_count_login_failures se utiliza para recuperar esta información.

El segundo parámetro de la función se envía como false para no borrar el registro. Podemos ver que si se pasa a true este se resetearía.

/**
 * Count the number of failed login attempts for the given user, since last successful login.
 *
 * @param int|stdclass $user user id or object.
 * @param bool $reset Resets failed login count, if set to true.
 *
 * @return int number of failed login attempts since the last successful login.
 */

user_count_login_failures($user, $reset = true)

Hasta aquí bien.

Mi duda es, ¿Cuando se utiliza esta función para limpiar ese registro? No he encontrado aún la línea con el valor a true.

Al ver el comentario dentro de la función  // Don't reset the count either, as login_info() still needs it too. 

Me surge también las siguientes dudas:

¿Se utiliza este registro para algo en especial?

¿Si lo muestro una sola vez y hago un reset de estos datos pasaría algo? 

Al usuario nunca le desaparece este aviso, aún habiendo entrado correctamente al sistema. Sé de antemano que existe la opción de no mostrar este aviso, pero creo que es un mensaje molesto porque NUNCA DESAPARECE. Esto hace que en la versión móvil corte un buen trozo de pantalla porque el mensaje encima es largo.

¿No debería funcionar esta opción para mostrar el aviso y que el usuario pueda resetearlo o simplemente cerrarlo y que le de la opción de no volver a mostrar?

Mi solución temporal ha sido añadir al tema un scss personalizado dentro de la administración del sitio > apariencia > temas > elTemaEnCuestion

/* Esconde el mensaje de intenos fallidos de identificación en versión movil*/

@media (max-width: 992px) {

.meta{

&.loginfailures{

display:none!important;

}

}

}


Viewing all articles
Browse latest Browse all 5438

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>