/** * 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 actionRelatedCreate() { // 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'])) { $output = array(); $model = new UsersHasTasks(); $model->user_id = $_POST['uid']; $model->task_id = $_POST['task_id']; if ($model->save()) { $user = Users::model()->findByPk($model->user_id); $task = Tasks::model()->with('Projects', 'Milestones')->findByPk($model->task_id); $recipientsList['email'] = $user->user_email; $recipientsList['name'] = $user->CompleteName; $subject = Yii::t('email', 'TaskAssigned') . " - " . $task->task_name; $str = $this->renderPartial('//templates/tasks/assigment', array('task' => $task, 'task_url' => "http://" . $_SERVER['SERVER_NAME'] . Yii::app()->createUrl('tasks/view', array('id' => $model->task_id)), 'applicationName' => Yii::app()->name, 'applicationUrl' => "http://" . $_SERVER['SERVER_NAME'] . Yii::app()->request->baseUrl), true); Yii::import('application.extensions.phpMailer.yiiPhpMailer'); $mailer = new yiiPhpMailer(); $mailer->pushMail($subject, $str, $recipientsList, Emails::PRIORITY_NORMAL); // Guardar log $attributes = array('log_date' => date("Y-m-d G:i:s"), 'log_activity' => 'TaskAssigned', 'log_resourceid' => $model->task_id, 'log_type' => Logs::LOG_ASSIGNED, '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' => count($availableUsers) > 0 ? true : false); } 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')); } }
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))); }