public function findBeforeDelete($user_id, $project_id)
 {
     return ProjectsHasUsers::model()->find(array('condition' => 't.user_id = :user_id AND t.project_id = :project_id', 'params' => array(':user_id' => $user_id, ':project_id' => $project_id)));
 }
 /**
  * Remove users from related project
  */
 public function actionRemoveUser()
 {
     // check if user has permissions to updateProjects
     if (Yii::app()->user->checkAccess('updateProjects') && Yii::app()->user->getIsManager()) {
         // verify params request and post request
         if (Yii::app()->request->isAjaxRequest && Yii::app()->request->isPostRequest) {
             // verify user_id has relation with selected project
             if (Users::model()->verifyUserInProject((int) Yii::app()->user->getState('project_selected'), (int) Yii::app()->request->getParam("uid", 0))) {
                 // find record in Project Has User table
                 $model = ProjectsHasUsers::model()->findBeforeDelete((int) Yii::app()->request->getParam("uid", 0), (int) Yii::app()->user->getState('project_selected'));
                 $output = array();
                 if ($model->delete()) {
                     //Save log
                     $attributes = array('log_date' => date("Y-m-d G:i:s"), 'log_activity' => 'UserDeleted', 'log_resourceid' => $model->project_id, 'log_type' => Logs::LOG_DELETED, 'user_id' => $model->user_id, 'module_id' => Yii::app()->controller->id, 'project_id' => (int) Yii::app()->user->getState('project_selected'));
                     Logs::model()->saveLog($attributes);
                     // Managers List
                     $Managers = Projects::model()->findManagersByProject(Yii::app()->user->getState('project_selected'));
                     $managerList = array();
                     if (count($Managers) > 0) {
                         foreach ($Managers as $users) {
                             array_push($managerList, $users->user_id);
                         }
                     } else {
                         array_push($managerList, -1);
                     }
                     // validate source (user or client)
                     $sourceRequest = Yii::app()->request->getParam("action", "user");
                     if (!empty($sourceRequest)) {
                         if ($sourceRequest == "client") {
                             $availables = Users::model()->filterManagers($managerList)->findClientsByProject($model->project_id);
                         } else {
                             $availables = Users::model()->filterManagers($managerList)->findUsersByProject($model->project_id);
                         }
                         // Availables
                         $ManagersAvailables = Users::model()->findAll(array('condition' => 'Companies.company_id = :company_id AND t.user_id NOT IN (' . implode(",", $managerList) . ')', 'params' => array(':company_id' => Projects::model()->findByPk(Yii::app()->user->getState('project_selected'))->company_id), 'together' => true, 'order' => 't.user_name ASC', 'with' => array('Companies')));
                         $str = $this->renderPartial('_dropdownUsersList', array('availablesManagers' => $availables), true);
                         $strManager = $this->renderPartial('_dropdownUsersList', array('availablesManagers' => $ManagersAvailables), true);
                         //verifivar si queda un administrador, enviar hasreg false para que no se pueda eliminar
                         $output = array('saved' => true, 'html' => $str, 'htmlManager' => $strManager, 'hasreg' => true);
                     }
                 }
                 echo CJSON::encode($output);
                 Yii::app()->end();
             } else {
                 throw new CHttpException(403, Yii::t('site', '403_Error'));
             }
         } else {
             throw new CHttpException(403, Yii::t('site', '403_Error'));
         }
     } else {
         throw new CHttpException(403, Yii::t('site', '403_Error'));
     }
 }