Вы захотите пройтись по API-функции user_save()
, чтобы получить представление о том, что делает Drupal при создании нового пользователя.
Нет никакого глубокого волшебства в том, что делает Drupal с сохранением данных такого типа: это все в базе данных. Таким образом, хотя использование Drupal API не является идеальным, на самом деле вы имеете дело только с двумя вставками базы данных: вставкой таблицы {user}
(которую вы уже сделали) и вставкой таблицы {users_roles}
.
Исходя из вашей информации, я подозреваю, что отсутствующая ссылка заключается в том, что вы не добавляете в таблицу {users_roles}
строку для UID вашего нового пользователя. Соответствующая строка в user_save()
:
db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $account->uid, $rid);
Где $account->uid
- это UID вновь созданного пользователя, а $rid
- это идентификатор роли, которую вы хотите дать пользователю. Новому пользователю требуется как минимум роль authenticated user
.
Все остальное в user_save()
- это в основном проверка работоспособности (user_save()
обрабатывает обновление пользователя в дополнение к созданию нового) и срабатывание ловушки, о котором вам, скорее всего, не нужно беспокоиться в этом случае использования. 1022 *