- 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
99 lines
2.8 KiB
PHP
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));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
?>
|