%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/tasks/models/user/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/tasks/models/user/TaskUser.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2018 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences * */ namespace humhub\modules\tasks\models\user; use humhub\modules\tasks\models\Task; use humhub\modules\tasks\notifications\AddResponsibleNotification; use humhub\modules\tasks\notifications\AssignedNotification; use Yii; use humhub\modules\user\models\User; use humhub\components\ActiveRecord; /** * This is the model class for table "task_user". * * The followings are the available columns in table 'task_user': * @property integer $id * @property integer $task_id * @property integer $user_id * @property integer $user_type */ class TaskUser extends ActiveRecord { public $sendNotificationOnCreation = true; /** * @return string the associated database table name */ public static function tableName() { return 'task_user'; } /** * @return array validation rules for model attributes. */ public function rules() { return [ [['task_id', 'user_type'], 'required'], [['task_id', 'user_id', 'user_type'], 'integer'], ]; } /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return [ 'id' => 'ID', 'task_id' => 'Task', 'user_id' => 'User', 'user_type' => 'User Type' ]; } public function getUser() { if ($this->user_id) { return User::findOne(['id' => $this->user_id]); } return null; } public function getTask() { return $this->hasOne(Task::class, ['id' => 'task_id']); } public function afterSave($insert, $changedAttributes) { if($insert) { $this->notifyCreated(); } parent::afterSave($insert, $changedAttributes); } /** * Notify users about created task * @throws \yii\base\InvalidConfigException * @throws \Throwable */ public function notifyCreated() { if(!$this->sendNotificationOnCreation) { return; } $source = $this->task; $target = $this->user; $from = Yii::$app->user->getIdentity(); if($target->is($from)) { return; } if($this->user_type === Task::USER_ASSIGNED) { AssignedNotification::instance()->about($source)->delete($target); AssignedNotification::instance()->from($from)->about($source)->send($target); } else if($this->user_type === Task::USER_RESPONSIBLE) { AddResponsibleNotification::instance()->about($source)->delete($target); AddResponsibleNotification::instance()->from($from)->about($source)->send($target); } } }