From 0e302299f9dd2606962cf939c0ed18420ddafdc7 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Thu, 14 Mar 2024 13:44:32 +0300 Subject: [PATCH] add legacy fill reload --- erp24/models/LoginForm.php | 61 +------------------------------------- erp24/records/Admin.php | 61 ++++++++++++++++++++++++++++++++++++++ erp24/web/index.php | 6 ++++ 3 files changed, 68 insertions(+), 60 deletions(-) diff --git a/erp24/models/LoginForm.php b/erp24/models/LoginForm.php index c9b6d7b..64ab1ef 100644 --- a/erp24/models/LoginForm.php +++ b/erp24/models/LoginForm.php @@ -61,71 +61,12 @@ class LoginForm extends Model { $user = $this->getUser(); if ($this->validate() && $user) { - $this->legacyFill(); + $user->legacyFill(); return \Yii::$app->user->login($user, 3600 * 24 * 30); } return false; } - private function legacyFill() - { - $user = $this->getUser(); - - $user->updateAttributes(['lasttime' => new Expression("NOW()")]); - - $_SESSION['admin_id'] = $user->id; - $_SESSION['group_id'] = $user->group_id; - $_SESSION["store_arr_dostup"] = explode(",", $user->store_arr); - $_SESSION["store_arr_guid_dostup"] = explode(",", $user->store_arr_guid); - $_SESSION["org_id_default"] = $user->org_id; - $_SESSION["sklad_id_default"] = $user->sklad_id; - $ava = 'i/heart.webp'; - $_SESSION["avatarka"] = $ava; - - $_SESSION["view_modules"] = json_decode($user->popular_modules, true, 512, JSON_UNESCAPED_UNICODE); - - $_SESSION['name_admin'] = $user->name; - - $_SESSION['city_arr_dostup'] = []; - $_SESSION['sklad_arr_dostup'] = []; - $_SESSION['sites_arr_dostup'] = []; - $_SESSION['filial_arr_dostup'] = []; - - $_SESSION['sklad_dostup_all'] = []; - $_SESSION['city_dostup_all'] = []; - $_SESSION['sites_dostup_all'] = []; - $_SESSION['filial_dostup_all'] = []; - $_SESSION['kassa_dostup_all'] = []; - - $_SESSION["admin_photo"] = $ava; - $_SESSION['dostup_area'] = ""; - - $_SESSION['dostup_area'] = []; - $group = AdminGroup::findOne($user->group_id); - $_SESSION['admin_group_name'] = $group->name ?? "Какая-то..."; - $_SESSION['name_group_admin'] = $group->name ?? "Какая-то..."; - $_SESSION['status_dostup_arr'] = []; - $_SESSION['admin_group_add_arr'] = []; - - $_SESSION['modul_arr_dostup'] = []; - $_SESSION['group_dostup'] = []; - - $_SESSION['filial_dostup_city'] = []; - - $_SESSION['filial_city_arr'] = []; - - $_SESSION['seo_sites_arr'] = []; - - $_SESSION['filial_dostup_city'] = []; - $_SESSION['filial_id'] = $user->filial_id; - $_SESSION['filial_default_city_id'] = 1921; - $_SESSION['filial_sites_arr'] = []; - - $_SESSION['manager_id'] = $user->manager_id ?? null; - $_SESSION['content_dostup'] = $user->content_dostup ?? null; - -// $_SESSION['name_group_admin'] = "Пользователь"; - } /** * Finds user by [[username]] diff --git a/erp24/records/Admin.php b/erp24/records/Admin.php index 58a3d02..98cc247 100755 --- a/erp24/records/Admin.php +++ b/erp24/records/Admin.php @@ -7,6 +7,7 @@ use svay\FaceDetector; use yii\base\NotSupportedException; use yii\db\ActiveQueryInterface; use yii\db\ActiveRecord; +use yii\db\Expression; use yii\helpers\ArrayHelper; use yii\web\IdentityInterface; @@ -621,4 +622,64 @@ class Admin extends ActiveRecord implements IdentityInterface { return $this->hasOne(ExportImportTable::class, ['entity_id' => 'id'])->where(['entity' => "admin", 'export_id' => 1]); } + + public function legacyFill() + { + $user = $this; + + $user->updateAttributes(['lasttime' => new Expression("NOW()")]); + + $_SESSION['admin_id'] = $user->id; + $_SESSION['group_id'] = $user->group_id; + $_SESSION["store_arr_dostup"] = explode(",", $user->store_arr); + $_SESSION["store_arr_guid_dostup"] = explode(",", $user->store_arr_guid); + $_SESSION["org_id_default"] = $user->org_id; + $_SESSION["sklad_id_default"] = $user->sklad_id; + $ava = 'i/heart.webp'; + $_SESSION["avatarka"] = $ava; + + $_SESSION["view_modules"] = json_decode($user->popular_modules, true, 512, JSON_UNESCAPED_UNICODE); + + $_SESSION['name_admin'] = $user->name; + + $_SESSION['city_arr_dostup'] = []; + $_SESSION['sklad_arr_dostup'] = []; + $_SESSION['sites_arr_dostup'] = []; + $_SESSION['filial_arr_dostup'] = []; + + $_SESSION['sklad_dostup_all'] = []; + $_SESSION['city_dostup_all'] = []; + $_SESSION['sites_dostup_all'] = []; + $_SESSION['filial_dostup_all'] = []; + $_SESSION['kassa_dostup_all'] = []; + + $_SESSION["admin_photo"] = $ava; + $_SESSION['dostup_area'] = ""; + + $_SESSION['dostup_area'] = []; + $group = AdminGroup::findOne($user->group_id); + $_SESSION['admin_group_name'] = $group->name ?? "Какая-то..."; + $_SESSION['name_group_admin'] = $group->name ?? "Какая-то..."; + $_SESSION['status_dostup_arr'] = []; + $_SESSION['admin_group_add_arr'] = []; + + $_SESSION['modul_arr_dostup'] = []; + $_SESSION['group_dostup'] = []; + + $_SESSION['filial_dostup_city'] = []; + + $_SESSION['filial_city_arr'] = []; + + $_SESSION['seo_sites_arr'] = []; + + $_SESSION['filial_dostup_city'] = []; + $_SESSION['filial_id'] = $user->filial_id; + $_SESSION['filial_default_city_id'] = 1921; + $_SESSION['filial_sites_arr'] = []; + + $_SESSION['manager_id'] = $user->manager_id ?? null; + $_SESSION['content_dostup'] = $user->content_dostup ?? null; + +// $_SESSION['name_group_admin'] = "Пользователь"; + } } \ No newline at end of file diff --git a/erp24/web/index.php b/erp24/web/index.php index 2156800..f94e130 100644 --- a/erp24/web/index.php +++ b/erp24/web/index.php @@ -39,4 +39,10 @@ if ( //$app->params['API2_TOKEN'] = $app->db->createCommand( // 'SELECT access_token FROM api_user WHERE "login"=\'erp\' LIMIT 1;')->queryAll()[0]['access_token'] ?? null; +$app->on(\yii\base\Application::EVENT_BEFORE_REQUEST, function ($event) { + if (!Yii::$app->user->isGuest && !isset($_SESSION['admin_id'])) { + Yii::$app->user->identity->legacyFill(); + } +}); + $app->run(); -- 2.39.5