Возникла сегодня простая задача: есть список пользователей (логин, пароль, имя и 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 редакторов, с одинаковыми данными для авторизации).