Incam_PROFIND_Web/www/protected/components/UsuarioWeb.php
david df138cf8bb - Revisión del código en general
- Tarea #1099 -> Mejorar la encriptación de las contraseñas
- Tarea #1104 -> Guardar en el usuario la fecha de creación y del último login
- Tarea #1125 -> Quitar la máscara en el campo 'teléfono' del usuario

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_PROFIND_Web/trunk@57 3fe1ab16-cfe0-e34b-8c9f-7d8c168d430d
2012-10-09 11:44:12 +00:00

99 lines
2.8 KiB
PHP

<?php
/**
* @class UsuarioWeb
* @brief Guarda los datos del usuario registrado que está en sesión
*
* @package application.components
*/
class UsuarioWeb extends CWebUser {
private $_model;
/**
* @brief Actualiza la fecha de la última entrada (last login) del usuario
* que ha iniciado sesión.
*/
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;
}
/**
* @brief ID de la empresa del usuario que está en sesión.
* @return integer
*/
public function getId_empresa() {
$usuario = $this->loadUser($this->id);
return $usuario->id_empresa;
}
/**
* @brief Comprueba si el usuario que está en sesión es coordinador o no.
* @return boolean
*/
public function getEsCoordinador() {
$usuario = $this->loadUser();
return ($usuario->tipo == Usuario::TIPO_USUARIO_COORDINADOR);
}
/**
* @brief Comprueba si el usuario que está en sesión tiene/puede tener
* un equipo de agentes.
* @return boolean
*/
public function getTieneEquipo() {
$subscripcion = $this->loadSubscripcion();
Yii::log(CVarDumper::dumpAsString($subscripcion), CLogger::LEVEL_ERROR);
if ($subscripcion)
return ($subscripcion->producto->n_agentes > 0);
else
return false;
}
/**
* @brief Devuelve la subscripción del usuario que está en sesión.
* @return Subscripcion
*/
public function getSubscripcion() {
return $this->loadSubscripcion();
}
/**
* @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
*/
public function getName() {
$usuario = $this->loadUser();
return ($usuario && $usuario->nombre) ? $usuario->nombreCompleto : parent::getName();
}
/**
* @brief Devuelve el usuario que ha hecho sesión.
* @return Usuario
*/
protected function loadUser() {
if ($this->_model === null) {
$this->_model = Usuario::model()->findByPk($this->id);
}
return $this->_model;
}
/**
* @brief Devuelve la subscripción activa del usuario que ha hecho sesión.
* @return Subscripcion
*/
protected function loadSubscripcion() {
return Subscripcion::model()->activa()->findByAttributes(array('id_usuario' => $this->id));
}
}
?>