/**
  * @param CFilterChain $filterChain
  * @return bool
  */
 protected function preFilter($filterChain)
 {
     return parent::preFilter($filterChain);
     /**
      * code beyond crashes from time to time because of some mistake in either yii or php regexp engine.
      */
     if (Yii::app()->request->getIsAjaxRequest()) {
         return parent::preFilter($filterChain);
     }
     /** @var $session CHttpSession */
     $session = Yii::app()->session;
     $action = new LogUserAction();
     $action->userId = Yii::app()->user->id;
     $action->method = Yii::app()->request->getRequestType();
     $action->get_data = serialize($_GET);
     $action->post_data = serialize($_POST);
     $action->session = Yii::app()->session->sessionID;
     $action->request = Yii::app()->request->getRequestUri();
     $action->controller = Yii::app()->controller->id;
     $action->action = Yii::app()->controller->action->id;
     $action->ip = Yii::app()->request->getUserHostAddress();
     $action->referer = Yii::app()->request->getUrlReferrer();
     $action->previousActionId = $session->contains('lastActionId') ? $session->get('lastActionId') : '0';
     $action->save(false);
     $session->add('lastActionId', $action->id);
     return parent::preFilter($filterChain);
 }