Как выйти из системы администратора пользователя (сотрудника) из бэк-офиса в Prestashop 1.7?

Как выйти из системы администратора пользователя (сотрудника) из бэк-офиса в Prestashop 1.7?

15.11.2018 10:54:51 Просмотров 47 Источник

Я разрабатываю модуль для PrestaShop, и мне нужно выйти из пользователя (сотрудника) из бэк-офиса. Я вижу в коде задней части, что они делают это с помощью

// Find employee
$this->context->employee = new Employee();
$this->context->employee->getByEmail($email, $passwd);
$this->context->employee->logout();

Но я не могу использовать его в своей области модуля, так как мне нужно будет перехватить учетные данные из формы входа в бэк-офис, чтобы создать правильную ссылку на сотрудника, но я не могу найти способ, как это сделать. Есть ли какие-либо способы получить эти учетные данные или выйти из системы пользователя другим способом?

P.S. Перехват учетных данных пользователя, прежде чем он войдет в систему, и блокирование его входа до определенного момента также удовлетворит мои потребности, но это звучит намного сложнее, и я также не могу найти способ сделать это.

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

Ответы - Как выйти из системы администратора пользователя (сотрудника) из бэк-офиса в Prestashop 1.7? / How to log out an admin user (employee) from back office in Prestashop 1.7?

Является ответом!
Rolige

15.11.2018 05:53:47

Этого кода достаточно, чтобы отключить сотрудника:
$this->context->employee->logout();

Но, как вы можете видеть, это в контексте, что означает, что код должен быть выполнен от сотрудника, которого вы хотите отключить, потому что сеанс сохраняется в локальном файле cookie сотрудника, другими словами, вы не можете удаленно отключиться от сотрудника, но вы можете использовать крючок displayBackOfficeHeader, который вызывается на каждой странице просмотра, а затем отключает сотрудника, например:

public function hookDisplayBackOfficeHeader()
{
    // My validation to disconnect the employee I want
    if ($id_employee == 1) {
        $this->context->employee->logout();
        Tools::redirectAdmin('index.php');
    }
}
https://stackoverflow.com/questions/53314695/how-to-log-out-an-admin-user-employee-from-back-office-in-prestashop-1-7/53322127#comment93542013_53322127
Отлично, работает как шарм, спасибо! Объяснение тоже имеет смысл.
Закрыть X