Возникла сегодня простая задача: есть список пользователей (логин, пароль, имя и e-mail), необходимо по этому списку создать пользователей Joomla. Учитывая тот факт, что пользователей было немного, я решил написать SQL-запрос, чтобы вставить пользователей прямо из phpMyAdmin.
Информация о зарегистрированных пользователях Joomla хранится в нескольких таблицах:
- jos_users
- jos_core_acl_aro
- jos_core_acl_groups_aro_map
Первая таблица является основной и содержит все данные о пользователе. Две другие таблицы принадлежат системе разграничения прав доступа Joomla и содержат информацию о принадлежности пользователя к конкретной группе пользователей Joomla.
Для того, чтобы добавить пользователя Joomla необходимо выполнить следующий запрос:
INSERT INTO jos_users( `name`, `username`, `password`, `email`, `usertype`, `gid` )
VALUES( 'Иванов Иван', 'ivanov', md5('12345'), 'ivanov@mail.ru', 'Registered', 18 );
INSERT INTO jos_core_acl_aro( `section_value`, `value` )
VALUES ( 'users', LAST_INSERT_ID() );
INSERT INTO jos_core_acl_groups_aro_map( `group_id`, `aro_id` )
VALUES ( 18, LAST_INSERT_ID() );
После выполнения такого запроса, в списке пользователей Joomla появится пользователь Иванов Иван, с логином ivanov и паролем 12345. Пользователь будет относиться к группе Registered, как будто бы он зарегистрировался через стандартный компонент регистрации пользователей Joomla.
В данном примере, пользователю автоматически присваивается группа Registered (во-первых эта информация прописывается в таблицу jos_users, а во-вторых значение 18 соответствует именно этой группе пользователей). Вот полный список групп и их названий (при необходимости можете вставить эти значения в запросы вместо 18 и 'Registered'):
- 18 — 'Registered'
- 19 — 'Author'
- 20 — 'Editor'
- 21 — 'Publisher'
- 23 — 'Manager'
- 24 — 'Administrator'
- 25 — 'Super Administrator'
Вот так, просто и незатейливо можно добавлять пользователей Joomla из phpMyAdmin. Данный метод может использоваться для быстрого добавления заданного набора пользователей (ну допустим у вас есть 5 сайтов, и на них надо быстро добавить 5 редакторов, с одинаковыми данными для авторизации).