Nombres sin espacios con Login de Microsoft en Invision Community

Localizamos el archivo

Actualmente esta guía está usando la versión 4.7.17 de Invision Community

Editar el archivo

Actualmente, este método simplemente devuelve el nombre de visualización proporcionado por Microsoft sin ningún procesamiento. Vamos a modificarlo para eliminar los espacios.

Busca el siguiente método en el archivo:

				
					protected function authenticatedUserName( $accessToken )
{
    if ( isset( $this->settings['real_name'] ) and $this->settings['real_name'] )
    {
        return $this->_userData( $accessToken )['displayName'];
    }
    return NULL;
}
				
			

Y reemplázalo con este código modificado:

				
					protected function authenticatedUserName( $accessToken )
{
    if ( isset( $this->settings['real_name'] ) and $this->settings['real_name'] )
    {
        $displayName = $this->_userData( $accessToken )['displayName'];
        // Eliminar espacios del nombre de usuario
        $username = str_replace(' ', '', $displayName);
        
        // Asegurarse de que el nombre de usuario sea único
        $username = $this->ensureUsernameIsUnique($username);
        
        return $username;
    }
    return NULL;
}

// Añade este nuevo método para asegurar que el nombre de usuario sea único
protected function ensureUsernameIsUnique($username)
{
    $i = 1;
    $originalUsername = $username;
    while (\IPS\Member::load($username, 'name')->member_id)
    {
        $username = $originalUsername . $i;
        $i++;
    }
    return $username;
}
				
			

Este cambio hará lo siguiente:

  1. Elimina todos los espacios del nombre de visualización proporcionado por Microsoft
  2. Verifica si el nombre de usuario resultante ya existe en la base de datos
  3. Si el nombre de usuario ya existe, añade un número al final y verifica nuevamente hasta encontrar un nombre de usuario único

Recuerda que después de hacer estos cambios, deberás:

  1. Guardar el archivo
  2. Limpiar cualquier caché que pueda tener tu instalación de Invision Community
  3. Probar el proceso de inicio de sesión con Microsoft para asegurarte de que funciona como se espera

Ten en cuenta que esta modificación afectará a todos los nuevos registros y posiblemente a los inicios de sesión existentes si el nombre de usuario se actualiza cada vez

Artículos destacados