- Внесены коррективы в механизм валидации пользователя

parent df580cbb
......@@ -4,8 +4,10 @@ namespace common\modules\users\models;
use common\components\UnisenderAPI;
use common\modules\messageTemplate\controllers\TemplateAdminController;
use common\modules\messageTemplate\models\MessageTemplate;
use common\modules\triggers\components\conditions\Conditions;
use common\modules\triggers\components\conditions\conditions\CheckUserToRegistration;
use common\modules\triggers\models\TriggerCondition;
use common\modules\triggers\models\TriggerLogs;
use common\modules\triggers\models\TriggerSchedule;
use common\modules\triggers\models\TriggerTrigger;
use Yii;
......@@ -560,15 +562,20 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
* Если указан, выполняем действия триггера
*/
public function afterRegistration($params=array()){
/** @var TriggerTrigger[] $actualTriggers */
$actualTriggers = TriggerTrigger::getActualTriggers();
foreach($actualTriggers as $trigger) {
$exists = TriggerCondition::find()->where(['trigger_id'=>$trigger->id, 'condition_id'=>CheckUserToRegistration::CONDITION_ID])->exists();
$count = TriggerCondition::find()->where(['trigger_id'=>$trigger->id])->count();
// Добавляем в расписание срабатывание триггера регистрации только при условии что у триггера условие регистрации есть и оно там одно
if ($exists===true && $count==1) {
$init = $trigger->initAction($params);
if ($init===true) {
$date = new \DateTime();
$model = new TriggerLogs();
$model->user_id = $this->getPrimaryKey();
$model->action = TriggerLogs::USER_REGISTRATION;
$model->url = Yii::$app->request->getUrl();
$model->datetime = $date->format('Y-m-d H:i:s');
$model->presence_time = 1;
if ($model->save()) {
/** @var TriggerTrigger[] $actualTriggers */
$actualTriggers = TriggerTrigger::getActualTriggers();
foreach($actualTriggers as $trigger) {
$exists = TriggerCondition::find()->where(['trigger_id'=>$trigger->id, 'condition_id'=>CheckUserToRegistration::CONDITION_ID])->exists();
// Добавляем в расписание срабатывание триггера регистрации только при условии что у триггера условие регистрации есть и оно там одно
if ($exists===true) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, Yii::$app->urlManager->createAbsoluteUrl('/triggers/default/rechecktriggers'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
......@@ -577,11 +584,11 @@ class User extends \common\components\ActiveRecordModel implements IdentityInter
return false;
}
return true;
} else {
$this->addError('email', $init);
return false;
}
}
} else {
$this->addError('email', current(current($model->getErrors())));
return false;
}
return true;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment