Files
register/marko_unpacked/marko/cms/controllers/AdminGlobalController.php
T
Admin Nasledstvo ac168868ee Initial import
2026-05-01 20:52:04 +03:00

188 lines
5.6 KiB
PHP

<?php
namespace app\controllers;
use app\models\CmsRoles;
use app\models\CmsRr;
use app\models\Help;
use app\models\News;
use app\models\UserSession;
use app\services\Auth;
use app\services\openid\IdServer;
class AdminGlobalController extends BaseController
{
public $layout = 'cms';
public $userTypeKey = 'admin-global';
public function beforeAction($action)
{
$admin = Auth::userAdminGlobal();
if (!$admin) {
$_SESSION['admin-global-page'] = $_SERVER['REQUEST_URI'];
return $this->redirect('/admin-global');
} else {
if ($admin && $admin->open_id) {
$us = UserSession::find()->where(['sub' => $admin->open_id])->one();
if (!$us) {
Auth::userAdminGlobalLogout();
return $this->redirect('/admin-global');
}
}
}
return parent::beforeAction($action);
}
public function actionIndex($page)
{
return $this->render('index/' . $page);
}
public function actionHelpKeysRemote($page)
{
if ($page == 'prepare-help') {
if (!empty($_GET['help_keys'])) {
if ($_GET['help_keys'] == 'active') {
$_SESSION['help_keys'] = 1;
$message = 'Ключовете за помощна информация са показани';
\Yii::$app->flash('success', $message);
}
if ($_GET['help_keys'] == 'inactive') {
if (!empty($_SESSION['help_keys'])) {
unset($_SESSION['help_keys']);
}
$message = 'Ключовете за помощна информация са скрити';
\Yii::$app->flash('success', $message);
}
echo json_encode(['success' => 1]);
exit;
}
}
if ($page == 'set-help') {
if (!empty($_POST['key'])) {
$help = Help::find()->where(['key' => $_POST['key']])->one();
if (!$help) {
$help = new Help();
$help->key = $_POST['key'];
if (!empty($_POST['title'])) {
$help->title = $_POST['title'];
}
$help->save();
}
echo json_encode(['url_to' => '/admin-global/index/help/?o=w&id=' . $help->id]);
exit;
}
echo json_encode(['error' => 1]);
exit;
}
if ($page == 'get-list') {
if (!empty($_GET['keys'])) {
$helpKeys = Help::find()->where(['IN', 'key', explode(',', $_GET['keys'])])->all();
$list = [];
foreach ($helpKeys as $helpKey) {
$list[] = ['key' => $helpKey->key, 'id' => $helpKey->id];
}
echo json_encode(['list' => $list]);
}
}
if ($page == 'get-content') {
return $this->renderPartial('help-info-content');
}
if ($page == 'delete-help') {
if (!empty($_POST['id'])) {
$help = Help::findOne($_POST['id']);
if ($help) {
$help->delete();
\Yii::$app->flash('success', 'Помощната информация беше изтрита');
echo json_encode(['url_to' => '/admin-global/index/help/']);
exit;
}
}
}
exit;
}
public function actionWebPortal($page)
{
return $this->render('web-portal/' . $page);
}
public function actionTour($page)
{
return $this->render('tour/' . $page);
}
public function actionMobileApp($page)
{
return $this->render('mobile-app/' . $page);
}
public function actionNomenclature($page)
{
return $this->render('nomenclature/' . $page);
}
public function actionNomenclatureRegister($page)
{
return $this->render('nomenclature-register/' . $page);
}
public function actionProducts($page)
{
return $this->render('products/' . $page);
}
public function actionOrders($page)
{
return $this->render('orders/' . $page);
}
public function actionUser($page)
{
return $this->render('user/' . $page);
}
public function actionRoleRights()
{
if (!empty($_GET['role_id'])) {
$roleRights = CmsRr::find()->innerJoinWith('right')->where(['role_id' => $_GET['role_id'], 'is_active' => 1])->all();
$rightsIds = [];
foreach ($roleRights as $rr) {
$rightsIds[] = $rr->right_id;
}
return $this->asJson(['rights' => $rightsIds]);
}
return $this->asJson([]);
}
public function actionLogout()
{
$admin = Auth::userAdminGlobal();
if ($admin->open_id) {
$q = "";
if (!empty($_SESSION['id_token_hint'])) {
$redirect = \Yii::$app->params['cms'] . '/partner-register-login/';
$q = '?id_token_hint=' . $_SESSION['id_token_hint'] . '&post_logout_redirect_uri=' . $redirect;
}
header('Location: ' . \Yii::$app->params['sso_logout_url'] . $q);
exit;
} else {
Auth::userAdminGlobalLogout();
return $this->redirect('/cms-admin');
}
}
public function actionCheck()
{
echo password_hash('marko84', PASSWORD_DEFAULT);
exit;
}
}