/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/helpers/UserHelper.php
102 строки
3 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\helpers; use common\models\ClientRepresentative; use common\models\ClonedTask; use common\models\gtp\User; use common\models\Task; use common\models\UserTask; use common\models\vendor\Vendor; use common\models\vendor\VendorUser; use Yii; use yii\base\Exception; use yii\base\InvalidCallException; use yii\helpers\ArrayHelper; use yii\helpers\VarDumper; /** * Расширение функций для работы с пользователями * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2019-2021 */ class UserHelper { /** * Генерируем хэш пароля * * @param $password * @return string * @throws Exception */ public static function generatePasswordHash($password) { $cost = ArrayHelper::getValue(Yii::$app->params, 'user.password_cost', 10); return self::generateHash($password, $cost); } /** * Генерация уникального ключа * * @param string $string Исходная строка * @param string $salt Используемая соль * @return mixed */ public static function generateHash($string, $salt) { return Yii::$app->security->hashData($string, $salt); } /** * Устанавливаем язык пользователя */ public static function setLanguage($user) { if ($language = $user->getParams('language', null, -1)) { // переключаем язык Yii::$app->language = $language; Yii::debug(VarDumper::dumpAsString([ 'language' => $language ])); } } /** * Клонирование Task для пользователя * @param $task * @param $user_id * @return bool * @throws \yii\base\InvalidConfigException * @throws \yii\db\Exception */ public static function cloneTask($task, $user_id) { /** @var Task $cloned */ $cloned = $task->copySelf(); if (!$cloned) { throw new InvalidCallException(Yii::t('app', 'Error clone task')); } $ut = UserTask::findOrNew([ 'task_id' => $cloned->id, 'user_id' => $user_id ]); if (!$ut->save()) { throw new InvalidCallException(Yii::t('app', 'Error clone task')); } $ct = new ClonedTask([ 'task_id' => $task->id, 'cloned_task_id' => $cloned->id, ]); if (!$ct->save()) { throw new InvalidCallException(Yii::t('app', 'Error clone task')); } return true; } }