Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
41 of 152 menu
Бесплатный курс по Верстке. От новичка до продвинутого верстальщика! Начало 11 ноября. Жми для записи!

Таблица oc_user

Таблица oc_user хранит учетные записи пользователей, которые имеют доступ к административной части интернет-магазина OpenCart. Каждая запись содержит данные для авторизации, контактную информацию и настройки прав доступа.

Поля

Поле Тип данных Описание
user_id int Уникальный идентификатор пользователя админ-панели. Автоинкремент.
user_group_id int Внешний ключ, который связывает пользователя с группой прав доступа. Ссылается на таблицу oc_user_group.
username varchar(20) Уникальное имя пользователя для входа в админ-панель.
password varchar(40) Хеш пароля пользователя. Обычно используется алгоритм SHA1.
salt varchar(9) Соль (дополнительная случайная строка), которая используется для усиления безопасности хеширования пароля.
firstname varchar(32) Реальное имя пользователя.
lastname varchar(32) Реальная фамилия пользователя.
email varchar(96) Электронная почта пользователя. Используется для уведомлений и восстановления доступа.
image varchar(255) Путь к изображению (аватару) пользователя относительно корня сайта.
code varchar(40) Секретный код, используемый для восстановления пароля или подтверждения действий.
ip varchar(40) IP-адрес, с которого пользователь впервые зарегистрировался или выполнил важное действие.
status tinyint(1) Статус учетной записи: 1 - активна, 0 - отключена.
date_added datetime Дата и время создания учетной записи пользователя.

Как это работает

При установке OpenCart создается первый пользователь с полными правами доступа (обычно с user_id = 1). Этот суперадминистратор может через админ-панель создавать новых пользователей, назначая им группу прав доступа через поле user_group_id.

Процесс авторизации в админ-панели происходит следующим образом: система находит запись в таблице oc_user по полю username, затем комбинирует введенный пароль с salt из этой записи, хеширует полученную строку и сравнивает результат с значением в поле password.

Группа пользователя (user_group_id) определяет, к каким разделам админ-панели и каким действиям (просмотр, редактирование, удаление) пользователь имеет доступ. Эти права настраиваются в таблице oc_user_group.

Важно различать таблицы oc_user (администраторы) и oc_customer (клиенты магазина). Это совершенно разные сущности с разными правами доступа и функциональностью.

Пример SQL-запроса

Получить список всех активных администраторов с информацией об их группе можно следующим запросом:

SELECT u.user_id, u.username, u.firstname, u.lastname, u.email, u.status, ug.name as group_name FROM oc_user u LEFT JOIN oc_user_group ug ON (u.user_group_id = ug.user_group_id) WHERE u.status = 1 ORDER BY u.user_id;

Смотрите также

  • таблицу oc_user_group,
    которая определяет права доступа для групп пользователей
  • таблицу oc_customer,
    которая хранит данные клиентов магазина
  • таблицу oc_api,
    которая управляет доступом к API