Функции администратора в пользовательской части OpenCart. IsAdmin?

OpenCart
3 мин. на чтение

PHP инженеры и разработчики, знакомые с большим кругом CMS и самописными решениями однозначно понимают значение функции, которую встречают в малознакомом коде, если она называется isAdmin();

Как я уже писал в предыдущем посте, пользовательская и администраторская часть OpenCart живут своими отдельными жизнями и почти не пересекаются. У каждого свои контроллеры, модели и представления. А так иногда хочется «запилить» что-то исключительно для администратора.

Из свежих доработок, которые я делал была кнопка Редактирования товаров, а так же вывод всех Статей (опубликованных и нет), если пользователь залогиненый Администратор. Рассматривать точечные решения задач сегодня нет настроения, так что тут будет просто шпаргалка для разработчиков «куда копать, если хочется написать что-то только для админа».

В сети встречаются решения, когда проверка isAdmin() производится в Представлении (во фронт-энде). Меня от таких методов немного коробит. Правильно со всех точек зрения делать это в Контроллере, т.к. в принципе эта функция относится к логике работы OpenCart.

Итак, чтобы проверить является ли пользователь залогиненым Администратором в OpenCart 1.5.x используйте условие:

$this->load->library('user');
			
$this->user = new User($this->registry);
			
if($this->user->isLogged()) {
	// произвольный код функции для Администратора
}

Для OpenCart 2.x и 3.x подойдет такое решение:

if (!empty($this->session->data['user_id']) && !empty($this->session->data['token'])) {
 // проивольный код функции для Администратора
 }

Что характерно, для второго решения нет необходимости подключать библиотеку User. Теоретически такое же решение есть и для OpenCart 1.5.x, но автор не утруждал себя поисками, т.к. указаное решение вполне решает задачу в поставленных рамках.

Игорь Чишкала
Директор по технологиям в SoftForge. Люблю ИТ, пишу технические статьи в этом блоге или для сайта фриланс-биржи Upwork. Кодю на PHP с использованием фреймворков Laravel или Symfony.
Оцените автора
Авторский блог Игоря Чишкалы
Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  1. Andre

    Здравствуйте Игорь! Где можно ещё с вами пообщаться?

    Ответить
    1. Ihor Chyshkala
      Ответить