- Registro, activación y entrada de usuarios git-svn-id: https://192.168.0.254/svn/Rodax.factuges_web/trunk@2 e455b18d-f7fe-5245-9c43-e2c35af70a32
128 lines
5.9 KiB
PHP
128 lines
5.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @class EMail
|
|
* @brief Clase para enviar correos electrónicos a los usuarios con mensajes
|
|
* predeterminados (bienvenida, confirmaciones, notificaciones, etc).
|
|
*
|
|
* @package application.modules.usuario.components
|
|
*/
|
|
|
|
class EMail {
|
|
|
|
/**
|
|
* @brief Envía un correo electrónico.
|
|
* @param string $to destinatiario
|
|
* @param string $subject asunto
|
|
* @param string $view nombre del fichero con la vista que se utilizará
|
|
* como cuerpo del mensaje
|
|
* @param mixed $body cuerpo del mensaje. Si el parámetro es una cadena y
|
|
* se ha indicado una vista, la cadena se pasa a la vista como $body.
|
|
* Si se ha indicado una vista y el cuerpo es un array, los valores del
|
|
* array se pasan a la vista como en el método rended() de un controlador.
|
|
* @return boolean
|
|
* @see YiiMail
|
|
*/
|
|
protected static function _enviar($to, $subject, $view, $body) {
|
|
$mensaje = new YiiMailMessage;
|
|
$mensaje->from = Yii::app()->getModule('usuario')->nombreRemitenteEMail;
|
|
$mensaje->setTo($to);
|
|
$mensaje->subject = $subject;
|
|
$mensaje->view = $view;
|
|
$mensaje->setBody($body, 'text/html');
|
|
return (Yii::app()->mail->send($mensaje) > 0);
|
|
}
|
|
|
|
/**
|
|
* @brief Envía un correo de confirmación de cuenta.
|
|
* @param string $destino dirección de destino
|
|
* @return boolean
|
|
*/
|
|
public static function enviarConfirmacionActivacion($destino) {
|
|
Yii::trace('Enviando correo para confirmar activación', 'application.modules.usuario.components.EMail');
|
|
return self::_enviar($destino,
|
|
Yii::t('factuges', 'Gracias por registrarse en FactuGES.'),
|
|
'confirmacion_usuario',
|
|
array('email' => $destino));
|
|
}
|
|
|
|
/**
|
|
* @brief Envía un correo informando de la cancelación de cuenta
|
|
* @param string $destino dirección de destino
|
|
* @return boolean
|
|
*/
|
|
public static function enviarConfirmacionCancelacion($destino) {
|
|
Yii::trace('Enviando correo para confirmar cancelación', 'application.modules.usuario.components.EMail');
|
|
return self::_enviar($destino,
|
|
Yii::t('factuges', 'Confirmación de cancelación de su cuenta en FactuGES'),
|
|
'confirmacion_cancelacion_usuario',
|
|
array('email' => $destino));
|
|
}
|
|
|
|
/**
|
|
* @brief Envía un correo de recuperación de password con una URL de verificación.
|
|
* @param string $destino dirección de destino
|
|
* @param string $key clave de seguridad necesaria para construir la URL de recuperación
|
|
* @return boolean
|
|
*/
|
|
public static function enviarRecuperacion($destino, $key) {
|
|
Yii::trace('Enviando correo con URL para recuperar la contraseña', 'application.modules.usuario.components.EMail');
|
|
$url_recuperacion = Yii::app()->params['frontpage'] . '?' . 'key=' . $key . '&email=' . urlencode($destino);
|
|
return self::_enviar($destino,
|
|
Yii::t('factuges', 'Recuperación de su cuenta en FactuGES'),
|
|
'recuperacion_password_usuario',
|
|
array('email' => $destino, 'url' => $url_recuperacion));
|
|
}
|
|
|
|
/**
|
|
* @brief Envía un correo confirmando el cambio de password.
|
|
* También se envia una URL de recuperación por si fuera un cambio no permitido.
|
|
* @param string $destino dirección de destino
|
|
* @param string $key clave de seguridad necesaria para construir la URL de recuperación
|
|
* @return boolean
|
|
*/
|
|
public static function enviarNotificacionCambioPassword($destino, $key) {
|
|
Yii::trace('Enviando correo confirmando el cambio de contraseña', 'application.modules.usuario.components.EMail');
|
|
$url_recuperacion = Yii::app()->params['frontpage'] . '?' . 'key=' . $key . '&email=' . urlencode($destino);
|
|
return self::_enviar($destino,
|
|
UsuarioModule::t('Se ha modificado su password en {name}', array('{name}' => Yii::app()->name)),
|
|
'notificacion_cambio_password_usuario',
|
|
array('email' => $destino, 'url' => $url_recuperacion));
|
|
}
|
|
|
|
/**
|
|
* @brief Envía un correo de registro de coordinador con una URL para confirmar la cuenta.
|
|
* @param string $destino dirección de destino
|
|
* @param string $key clave de seguridad necesaria para construir la URL de confirmación
|
|
* @return boolean
|
|
*/
|
|
public static function enviarBienvenidaUsuario($destino, $key) {
|
|
Yii::trace('Enviando correo de bienvenida a coordinador', 'application.modules.usuario.components.EMail');
|
|
$urlActivacion = Yii::app()->createAbsoluteUrl(Yii::app()->getModule('usuario')->urlActivar, array("email" => $destino, "key" => $key));
|
|
return self::_enviar($destino,
|
|
UsuarioModule::t('Complete su registro en {name}', array('{name}' => Yii::app()->name)),
|
|
'registro_usuario',
|
|
array('email' => $destino, 'url' => $urlActivacion));
|
|
}
|
|
|
|
/**
|
|
* @brief Envía un mail de registro a un usuario (coordinador/agente) con
|
|
* una URL de confirmación de baja.
|
|
* @param string $destino dirección de destino
|
|
* @param string $key clave de seguridad necesaria para construir la URL de confirmación
|
|
* @return boolean
|
|
*/
|
|
|
|
public static function enviarSolicitudBaja($destino, $key) {
|
|
Yii::trace('Enviando correo con URL para realizar la baja de la cuenta', 'application.modules.usuario.components.EMail');
|
|
|
|
$url_cancelacion = $this->createAbsoluteUrl('usuario/cancelar', array("key" => $key, "email" => $destino));
|
|
return self::_enviar($destino,
|
|
Yii::t('factuges', 'Solicitud de cancelación de su cuenta en FactuGES'),
|
|
'solicitud_cancelacion_usuario',
|
|
array('email' => $destino, 'url' => $url_cancelacion));
|
|
}
|
|
|
|
}
|
|
?>
|