2012-09-20 19:38:42 +00:00
|
|
|
<?php
|
|
|
|
|
|
2012-10-09 11:44:12 +00:00
|
|
|
/**
|
|
|
|
|
* @class UsuarioWeb
|
|
|
|
|
* @brief Guarda los datos del usuario registrado que está en sesión
|
|
|
|
|
*
|
|
|
|
|
* @package application.components
|
|
|
|
|
*/
|
2012-09-20 19:38:42 +00:00
|
|
|
class UsuarioWeb extends CWebUser {
|
|
|
|
|
|
|
|
|
|
private $_model;
|
|
|
|
|
|
2012-10-09 11:44:12 +00:00
|
|
|
/**
|
|
|
|
|
* @brief Actualiza la fecha de la última entrada (last login) del usuario
|
|
|
|
|
* que ha iniciado sesión.
|
|
|
|
|
*/
|
2012-10-04 14:54:02 +00:00
|
|
|
public function afterLogin(){
|
|
|
|
|
if (($this->_model === null) && ($this->loadUser()))
|
|
|
|
|
Usuario::model()->updateByPk($this->id, array(
|
|
|
|
|
'last_login_time'=> date("Y-m-d H:i:s"),
|
|
|
|
|
));
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2012-10-09 11:44:12 +00:00
|
|
|
/**
|
|
|
|
|
* @brief ID de la empresa del usuario que está en sesión.
|
|
|
|
|
* @return integer
|
|
|
|
|
*/
|
2012-09-28 18:30:16 +00:00
|
|
|
public function getId_empresa() {
|
2012-10-04 14:54:02 +00:00
|
|
|
$usuario = $this->loadUser($this->id);
|
2012-09-20 19:38:42 +00:00
|
|
|
return $usuario->id_empresa;
|
|
|
|
|
}
|
2012-10-09 11:44:12 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Comprueba si el usuario que está en sesión es coordinador o no.
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
2012-09-28 18:30:16 +00:00
|
|
|
public function getEsCoordinador() {
|
2012-10-04 14:54:02 +00:00
|
|
|
$usuario = $this->loadUser();
|
2012-09-28 18:30:16 +00:00
|
|
|
return ($usuario->tipo == Usuario::TIPO_USUARIO_COORDINADOR);
|
|
|
|
|
}
|
2012-10-09 11:44:12 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Comprueba si el usuario que está en sesión tiene/puede tener
|
|
|
|
|
* un equipo de agentes.
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
2012-09-28 18:30:16 +00:00
|
|
|
public function getTieneEquipo() {
|
2012-10-04 14:54:02 +00:00
|
|
|
$subscripcion = $this->loadSubscripcion();
|
2012-10-09 11:44:12 +00:00
|
|
|
if ($subscripcion)
|
2012-10-12 19:22:31 +00:00
|
|
|
return ($subscripcion->producto->max_agentes > 0);
|
2012-10-09 11:44:12 +00:00
|
|
|
else
|
|
|
|
|
return false;
|
2012-09-28 18:30:16 +00:00
|
|
|
}
|
2012-09-20 19:38:42 +00:00
|
|
|
|
2012-10-09 11:44:12 +00:00
|
|
|
/**
|
|
|
|
|
* @brief Devuelve la subscripción del usuario que está en sesión.
|
|
|
|
|
* @return Subscripcion
|
|
|
|
|
*/
|
2012-09-28 18:30:16 +00:00
|
|
|
public function getSubscripcion() {
|
2012-10-04 14:54:02 +00:00
|
|
|
return $this->loadSubscripcion();
|
2012-09-28 18:30:16 +00:00
|
|
|
}
|
2012-10-09 11:44:12 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Devuelve el nombre del usuario que está en sesión.
|
|
|
|
|
* Si el usuario ha rellenado su nombre y apellidos, devuelve el nombre
|
|
|
|
|
* completo. Si no, devuelve la dirección e-mail del usuario.
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
2012-10-01 16:45:41 +00:00
|
|
|
public function getName() {
|
2012-10-04 14:54:02 +00:00
|
|
|
$usuario = $this->loadUser();
|
2012-10-09 11:44:12 +00:00
|
|
|
return ($usuario && $usuario->nombre) ? $usuario->nombreCompleto : parent::getName();
|
2012-10-01 16:45:41 +00:00
|
|
|
}
|
|
|
|
|
|
2012-10-12 19:22:31 +00:00
|
|
|
/**
|
|
|
|
|
* @brief Devuelve el email del usuario que está en sesión.
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getEmail() {
|
|
|
|
|
$usuario = $this->loadUser();
|
|
|
|
|
return $usuario->email;
|
|
|
|
|
}
|
|
|
|
|
|
2012-10-09 11:44:12 +00:00
|
|
|
/**
|
|
|
|
|
* @brief Devuelve el usuario que ha hecho sesión.
|
|
|
|
|
* @return Usuario
|
|
|
|
|
*/
|
2012-10-04 14:54:02 +00:00
|
|
|
protected function loadUser() {
|
2012-09-20 19:38:42 +00:00
|
|
|
if ($this->_model === null) {
|
2012-10-04 14:54:02 +00:00
|
|
|
$this->_model = Usuario::model()->findByPk($this->id);
|
2012-10-24 17:18:48 +00:00
|
|
|
if ($this->_model === null)
|
|
|
|
|
throw new CHttpException(404, Yii::t('profind', 'La página solicitada no existe.'));
|
2012-09-20 19:38:42 +00:00
|
|
|
}
|
|
|
|
|
return $this->_model;
|
|
|
|
|
}
|
|
|
|
|
|
2012-10-09 11:44:12 +00:00
|
|
|
/**
|
|
|
|
|
* @brief Devuelve la subscripción activa del usuario que ha hecho sesión.
|
|
|
|
|
* @return Subscripcion
|
|
|
|
|
*/
|
2012-10-04 14:54:02 +00:00
|
|
|
protected function loadSubscripcion() {
|
|
|
|
|
return Subscripcion::model()->activa()->findByAttributes(array('id_usuario' => $this->id));
|
2012-09-28 18:30:16 +00:00
|
|
|
}
|
|
|
|
|
|
2012-09-20 19:38:42 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|