Авторизация пользователя в X-Cart Next заперта в классе \XLite\Core\Auth. Сей класс является синглтоном и вызов его методов выглядит как
\XLite\Core\Auth::getInstance()->methodName();
В классе заперта валидация пароля и пользователя, а также генерация подписи от пароля.
За валидацию пароля отвечает метод comparePassword(), который все равно упирается в метод encryptPassword(). Через этот метод можно реализовать свой алгоритм хранения пароля, создав метод вида encryptPasswordMyMethod() и перекрыв константу DEFAULT_HASH_ALGO.
По умолчанию используется алгоритм SHA512, который в добавок использует настройку installer_details -> shared_secret_key из etc/config.php как HMAC-ключ. Поэтому - если переносите магазин с БД - не забудьте скопировать эту настройку.
Кроме этого, в этом классе заперта процедура логина - это методы login() и loginProfile(). Точно также здесь заперта функциональность разлогинивания - метод logoff(). Поэтому - если надо что-то сделать в момент логина или логоффа - перекрывайте эти методы.
Из важного по пользователям здесь же заперта функциональность по определению, является ли текущий пользователь админом или нет (метод isAdmin()) и функционал проверка прав текущего пользователя (метод isPermissionAllowed()).
В этом же классе надо искать функционал по определению доступности storefront'а - это методы isAccessibleStorefront(), isClosedStorefront() и пр.
Комментариев нет:
Отправить комментарий