public function saveClient() { $model = new ProjectsHasUsers(); $model->project_id = $this->project_id; $model->user_id = $this->client_id; $model->isManager = $this->isManager; return $model->save(); }
/** * Create client user as project participant */ public function actionAddClient() { // check if user has permissions to updateProjects if (Yii::app()->user->checkAccess('updateProjects') && Yii::app()->user->getIsManager()) { // verify params request if (Yii::app()->request->isAjaxRequest) { // verify params request if (Yii::app()->request->isPostRequest) { // create object to save relation between user and project as manager $model = new ProjectsHasUsers(); $model->user_id = $_POST['uid']; $model->project_id = (int) Yii::app()->user->getState('project_selected'); if ($model->save()) { // find data for project and user to send an email $userSelected = Users::model()->findByPk($model->user_id); $project = Projects::model()->findByPk($model->project_id); // prepares to send email to user added to PM $str = $this->renderPartial('//templates/projects/useradd', array('userCreateInvitation' => Yii::app()->user->CompleteName, 'userInvited' => $userSelected->CompleteName, 'projectName' => $project->project_name, 'applicationName' => Yii::app()->name, 'applicationUrl' => "http://" . $_SERVER['SERVER_NAME'] . Yii::app()->request->baseUrl), true); $subject = Yii::t('email', 'UserAddtoProject'); Yii::import('application.extensions.phpMailer.yiiPhpMailer'); $mailer = new yiiPhpMailer(); $mailer->pushMail($subject, $str, array('email' => $userSelected->user_email, 'name' => $userSelected->CompleteName), Emails::PRIORITY_NORMAL); // save log $attributes = array('log_date' => date("Y-m-d G:i:s"), 'log_activity' => 'ClientAssigned', 'log_resourceid' => $model->project_id, 'log_type' => Logs::LOG_ASSIGNED, 'user_id' => Yii::app()->user->id, 'module_id' => Yii::app()->controller->id, 'project_id' => $model->project_id); Logs::model()->saveLog($attributes); $managers = Projects::model()->findManagersByProject((int) 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); } $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'))); $availablesClients = Users::model()->filterManagers($managerList)->findClientsByProject(Yii::app()->user->getState('project_selected')); $str = $this->renderPartial('_dropdownUsersList', array('availablesManagers' => $availablesClients), true); $strManager = $this->renderPartial('_dropdownUsersList', array('availablesManagers' => $ManagersAvailables), true); // output is a json denotation result $output = array('saved' => true, 'html' => $str, 'htmlManager' => $strManager, 'hasreg' => count($availablesClients) > 0 ? true : false); } } else { throw new CHttpException(403, Yii::t('site', '403_Error')); } 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')); } }