Plugin/Eventos/Usuario

From Joomla! Documentation

< Plugin‎ | Events
This page is a translated version of the page Plugin/Events/User and the translation is 78% complete.

Outdated translations are marked like this.
Other languages:
English • ‎español • ‎français • ‎Nederlands

En una instalación estándar de Joomla! tenemos varios eventos de Usuario predefinidos que, cuando se activan, llama a las funciones en los complementos asociados.

onUserAuthorisation

Descripción

Este evento se activa cuando el usuario se autentica contra el usuario de la base en Joomla!.

Parámetros

  • $user - un array asociativo de tipo JAuthenticateResponse (consulta el enlace por las claves del array)
  • $options - un array asociativo que contiene estas claves: ["remember"] => booleano, ["return"] => cadena, ["entry_url"] => cadena

Valor Devuelto

Booleano

Utilizado en archivos

  • libraries/joomla/user/authentication.php

Ejemplo

onUserAuthorisationFailure

Description

The system triggers this event when the user has been authenticated but he has not been authorised to login. You should only use this event in User plugins.

Parameters

Return Value

void (it does not return any value or object)

Used in files

  • libraries/cms/application/cms.php

onUserLogin

Description

This event is triggered after the user is authenticated against the Joomla! user-base.

Si necesitas abortar el proceso de inicio de sesión (autenticación), en su lugar tendrás que usar onUserAuthenticate.

Parameters

  • $user - an associative array of JAuthenticationResponse type (see link for array keys)
  • $options - an associative array containing these keys: ["remember"] => bool, ["return"] => string, ["entry_url"] => string

Return Value

Boolean

Used in files

  • libraries/joomla/application/application.php
  • plugins/user/joomla.php

Example

  • plugins/user/example.php

onUserLogout

Descripción

Este evento se desencadena antes que el usuario cierre su sesión en el sistema.

Si algún plugin devuelve false, el cierre de sesión global falla y el evento onUserLogoutFailure es disparado; si tiene éxito, el evento onUserAfterLogout se desencadena.

NOTA: a partir de la versión 3.3.6, devolver false' no funciona correctamente, porque las acciones de los componentes realizan la operación de cierre de sesión durante el evento onUserLogout. Así que incluso si el plugin devuelve false', la acción se va a ejecutar de todos modos. Por lo tanto, el usuario "mayoritariamente" cerrará la sesión, incluso si se devuelve false. No hay forma real de abortar limpiamente el cierre de la sesión.

Parámetros

  • $credentials - un array asociativo que contiene estas claves: ["username"] => cadena, ["id"] => entero
  • $options - un array asociativo que contiene esta clave: ["clientid"] => entero

Valor Devuelto

Booleano

Utilizado en archivos

  • libraries/cms/application/cms.php
  • plugins/user/joomla/joomla.php
  • plugins/system/logout.php
  • plugins/system/remember/remember.php

Ejemplo

  • plugins/user/example.php

onUserLoginFailure

Descripción

Este evento se desencadena cuando una solicitud de autenticación de un usuario a fallado en algún plugin.

Parámetros

Dos parámetros. Las credenciales de la matriz para el usuario (ver onAuthenticate'), y el JAuthenticateResponse que causó el error.

Valor Devuelto

Desconocido. El valor de retorno parece ser ignorado en cualquier caso.

Utilizado en archivo

  • libraries/joomla/application/user/authentication.php

onUserAfterLogin

Descripción

Este evento se activa cada vez que un usuario se haya conectado correctamente.

Parámetros

Opciones en un array con:

  • remember
  • return
  • entry_url
  • action
  • user - JUser Object
  • responseType

Valor Devuelto

Booleano

Utilizado en archivos

  • libraries/legacy/application/application.php
  • libraries/cms/application/cms.php
  • plugins/authentication/cookie/cookie.php

onUserBeforeSave

Descripción

Este evento se desencadena antes de la actualización de un registro de usuario.

Los viejos y los nuevos parámetros de usuario; miembros comúnmente utilizado son: username, name, email, password, password_clear.

El array password de entrada es el hash del valor de la contraseña. Si el usuario ha cambiado la contraseña, puedes recuperar la contraseña en texto sin formato desde $newUser['password_clear']. (Se pueden colocar las "" si la contraseña no se ha cambiado.)

Parámetros

  • $oldUser - Un array asociativo de las columnas en la tabla user (valores actuales).
  • $isnew - Booleano para identificar si se trata de un nuevo usuario (verdadero - insert) o uno ya existente (falso - actualización)
  • $newUser - Un array asociativo de las columnas en la tabla user (nuevos valores).

Valor Devuelto

Booleano. Si el guardar usuario debe proceder o no. Cualquier plugin que devuelva falso aborta la operación de guardar.

Utilizado en archivo

  • libraries/joomla/user/user.php

Ejemplo

  • plugins/user/example.php

onUserAfterSave

Descripción

Este evento se desencadena después de la actualización de un registro de usuario o cuando un nuevo usuario se ha guardado en la base de datos.

La contraseña en el array $user ya está en hash en este punto. Puedes recuperar la contraseña en texto sin formato mediante $_POST['password'].

Parámetros

  • $user - Un array asociativo de las columnas en la tabla user.
  • $isnew - Booleano para identificar si se trata de un nuevo usuario (verdadero - insert) o uno ya existente (falso - actualización)
  • $success - Booleano para identificar si se guardo con éxito
  • $msg - Mensaje de error cuando no se guardo con éxito.

Nota: Los valores antiguos que se acaba de actualizar no están disponibles aquí o después. En caso de que necesites los valores antiguos, utiliza onBeforeStoreUser().

Valor Devuelto

Ninguno

Utilizado en archivo

  • libraries/joomla/user/user.php

Ejemplo

  • plugins/user/example.php

onUserBeforeDelete

Descripción

El evento se activa cuando un usuario está a punto de ser eliminado del sistema.

Parameters

  • $user - Un array asociativ de las columnas en la tabla user.

Valor Devuelto

Ninguno

Utilizado en archivos

  • libraries/joomla/user/user.php
  • plugins/user/joomla.php

Ejemplo

  • plugins/user/example.php

onUserAfterDelete

Descripción

El evento se activa después de que un usuario ha sido eliminado del sistema.

Parameters

  • $user - Un array asociativo de las columnas en la tabla user.
  • $succes - Booleano para identificar si la eliminación fue un éxito
  • $msg - Mensaje de Error si hubo error en la eliminación (JError objeto que detalla el error, si lo hay)

Valor Devuelto

Ninguno

Utilizado en archivos

  • libraries/joomla/user/user.php
  • plugins/user/joomla.php

Ejemplo

  • plugins/user/example.php

Orden de ejecución

Para modificar el proceso de inicio de sesión en Joomla! según tus necesidades (por ejemplo, la creación de una salida AJAX para el inicio de sesión), puede ser útil conocer el orden de los eventos al ser lanzados.

Credenciales erróneas CREDENCIALES CORRECTAS y el usuario no es bloqueado (se activa) CREDENCIALES CORRECTAS y el usuario es bloqueado (no se activa)
onUserAuthenticate
devuelve
VERDADERO o FALSO
         |
         |
        \ /
onUserLoginFailure
onUserAuthenticate
devuelve
VERDADERO o FALSO
         |
         |
        \ /
onUserLogin     devuelve FALSO -> FINAL
devuelve VERDADERO
         |
         |
        \ /
onUserAfterLogin
onUserAuthenticate
devuelve
VERDADERO o FALSO
         |
         |
        \ /
onUserLogin
devuelve
VERDADERO o FALSO
         |
         |
        \ /
        END

Idea de Ejemplo Supongamos que deseas usar un formulario previo de Ajax para iniciar sesión. Ya has sobrescrito un formulario mod_login por lo que es enviado a Joomla! a través de una llamada AJAX. Agregaste un campo llamado ajax, al formulario. Así que cuando el formulario es enviado y la autenticación falla, tu plugin personalizado debe devolver algunos datos JSON.

public function onUserLoginFailure($response)
{
	$input  = JFactory::getApplication()->input;

	// If a non-ajax form was posted, we do not modify the behavior
	if (!$input->post->get('ajax', false))
	{
		return;
	}

	$app = JFactory::getApplication();
	$task_failed = false; 

	// Fill this array with the data you want to return, e.g. $response['status'] may be useful
	// Check libraries/joomla/user/authentication.php for available status codes 
	$data = array('status' => $response['status']);
        
        // At least here in the plugin it's a must to send proper headers
        JFactory::getApplication()->setHeader('Content-Type', 'application/json', true)->sendHeaders();
	echo new JResponseJson($data, $response['error_message'], $task_failed);

	// Closing app is a must here to return JSON immediately
	$app->close();
}