Как выйти из системы администратора (сотрудника) из бэк-офиса в Prestashop 1.7? - PullRequest
0 голосов
/ 15 ноября 2018

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

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

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

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

1 Ответ

0 голосов
/ 15 ноября 2018

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