Таблица 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