Проверка того, вошел ли администратор в систему OpenCart или нет

Проверка того, вошел ли администратор в систему OpenCart или нет

05.11.2014 11:37:14 Просмотров 20 Источник

В настоящее время я работаю над API для извлечения данных в виде JSON из нашей базы данных. Я решил форсировать проверку перед извлечением данных.

Поскольку я использую OpenCart, мне предлагается функция isLogged().

Однако, из того, что я знаю, есть два isLogged():

  1. isLogged()для пользователя, который является администратором, по этому пути:

    opencart/upload/system/library/user.php

  2. isLogged()для клиента, по этому пути:

    opencart/upload/system/library/customer.php

Использование isLogged()(насколько я знаю прямо сейчас) зависит от того, где находится мой контроллер. В настоящее время я разрабатываю под /opencart/upload/catalog/controller/api/order.php, который по определению находится на стороне customer. Поэтому я не могу использовать $this->user->isLogged(), а вместо этого должен использовать $this->customer->isLogged(), что противоречит точке проверки администратора.

Если я попытаюсь использовать $this->user->isLogged(), я получу следующую ошибку:

PHP Fatal error: Call to a member function isLogged() on a non-object in /vagrant/opencart/upload/catalog/controller/api/order.php

Как я могу , не перемещая контроллер в admin, проверить, вошел ли администратор в систему или нет? Или я совершенно не прав в своем анализе?

Правка: похоже, я неправильно понял требования проекта. Это не имеет ничего общего с пользовательской валидацией OpenCart, но пользовательская валидация из другой нашей внутренней системы.

У вопроса есть решение - Посмотреть?

Ответы - Проверка того, вошел ли администратор в систему OpenCart или нет / Validating whether an admin is logged in or not in OpenCart

Tanmoy

05.05.2015 03:41:14

$this->session->data['isAdminLogin'] = 0;
    if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { 
        $this->session->data['token'] = md5(mt_rand());
        $this->session->data['isAdminLogin'] = 1;

        if (isset($this->request->post['redirect'])) {

            $this->redirect($this->request->post['redirect'] . '&token=' . $this->session->data['token']);
        } else {

            $this->redirect($this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'));
        }
    }

Замените common / login.php индексирует код функции с этим. Теперь проверьте adminlogin с этим

$this->session->data['isAdminLogin']
Abstractcodify

30.09.2016 07:56:07

в версии 2.ОБМАН

используйте команду вставить этот код в /index.РНР

// User
$registry->set('user', new User($registry));

и используйте этот код для проверки логина администратора

    //Checks to see if the logged in user has permission to view or edit a particular admin page.

    $this->user->isLogged();

    //Checks to see if the admin user is logged into their account.

    $this->user->getId();

    //Gets the ID number of the administrator account.

    $this->user->getUserName();
Gábor Honffy

01.02.2018 12:24:06

В OpenCart 1.5.икс

Например, если вы хотите, чтобы посетители вашей страницы не видели селектор языка только для администратора, вы введете /catalog/controller/common/header.РНР

                      

      // Show if logged in as admin
        $this->load->library('user');

        $this->user = new User($this->registry);

скажите после " protected function index () {"и сохраните его.

Затем откройте свой шаблон:

/каталог/просмотр/тема/*/шаблон/общие/заголовок.ТПЛ

<?php echo $language; ?>

вы собираетесь заменить:

<?php  if($this->user->isLogged()){echo $language;} ?>

И готова ...

Kamlesh

22.03.2019 08:30:50

// In Version 3.X

// logged in user id

echo (int)$this->user->getId();
Закрыть X