/**
  * Return a value indicating whether the user has joined or not into specific task
  * @param int $id
  * @return boolean value
  */
 public function getHasJoined($id = 0)
 {
     $exist = false;
     $task_id = $id == 0 ? $_GET['id'] : $id;
     $exist = UsersHasTasks::model()->exists('t.user_id = :user_id AND t.task_id = :task_id', array(':user_id' => Yii::app()->user->id, ':task_id' => $task_id));
     return (bool) $exist;
 }
 public function actionRelatedDelete()
 {
     // check if user has permissions to viewTasks
     if (Yii::app()->user->checkAccess('viewTasks')) {
         // verify params request
         if (Yii::app()->request->isAjaxRequest) {
             // verify params request
             if (Yii::app()->request->isPostRequest) {
                 // verify user_id has relation with selected project and task_id has relation with selected project
                 if (Users::model()->verifyUserInProject((int) Yii::app()->user->getState('project_selected'), (int) $_POST['uid']) && Tasks::model()->verifyTasksInProject((int) Yii::app()->user->getState('project_selected'), (int) $_POST['task_id']) && Yii::app()->user->isManager) {
                     $model = UsersHasTasks::model()->findBeforeDelete($_POST['uid'], $_POST['task_id']);
                     if ($model->delete()) {
                         // Guardar log
                         $attributes = array('log_date' => date("Y-m-d G:i:s"), 'log_activity' => 'TaskRevoked', 'log_resourceid' => $model->task_id, 'log_type' => Logs::LOG_REVOKED, 'user_id' => $model->user_id, 'module_id' => Yii::app()->controller->id, 'project_id' => (int) Yii::app()->user->getState('project_selected'));
                         Logs::model()->saveLog($attributes);
                         $availableUsers = Users::model()->availablesUsersToTakeTask(Yii::app()->user->getState('project_selected'), $model->task_id);
                         $str = $this->renderPartial('_dropdownUsersList', array('availableUsers' => $availableUsers), true);
                         $output = array('saved' => true, 'html' => $str, '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'));
         }
     } else {
         throw new CHttpException(403, Yii::t('site', '403_Error'));
     }
 }
 public function findBeforeDelete($user_id, $task_id)
 {
     return UsersHasTasks::model()->find(array('condition' => 't.user_id = :user_id AND t.task_id = :task_id', 'params' => array(':user_id' => $user_id, ':task_id' => $task_id)));
 }