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

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

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

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

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

0

Решение

Этого кода достаточно, чтобы отключить сотрудника:
$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');
}
}
0

Другие решения

Других решений пока нет …