<?php

class WebUser extends CWebUser
{

	public function getRole()
	{
		return $this->getState('__role');
	}
	
	public function getId()
	{
		return $this->getState('__id') ? $this->getState('__id') : 0;
	}

//	protected function beforeLogin($id, $states, $fromCookie)
//	{
//		parent::beforeLogin($id, $states, $fromCookie);
//
//		$model = new UserLoginStats();
//		$model->attributes = array(
//			'user_id' => $id,
//			'ip' => ip2long(Yii::app()->request->getUserHostAddress())
//		);
//		$model->save();
//
//		return true;
//	}

	protected function afterLogin($fromCookie)
	{
		parent::afterLogin($fromCookie);
		$this->updateSession();
	}

	public function updateSession() {
		$user = Yii::app()->getModule('panel')->user($this->id);
		/*$user = Yii::app()->funciones->user($this->id);*/
		$userAttributes = CMap::mergeArray(array(
												'email'=>$user->email,
												'username'=>$user->username,
												'create_at'=>$user->create_at,
												'lastvisit_at'=>$user->lastvisit_at,
												'type'=>$user->type,
										   ),$user->profile->getAttributes());
		foreach ($userAttributes as $attrName=>$attrValue) {
			$this->setState($attrName,$attrValue);
		}
	}

	public function model($id=0) {
		return Yii::app()->getModule('user')->user($id);
	}

	public function user($id=0) {
		return $this->model($id);
	}

	public function getUserByName($username) {
		return Yii::app()->getModule('user')->getUserByName($username);
	}

	public function getAdmins() {
		return Yii::app()->getModule('user')->getAdmins();
	}

	public function isAdmin() {
		return Yii::app()->getModule('user')->isAdmin();
	}

}