Drupal 6 настройка конфликта двух модулей

Я использую модуль автоматического назначения роли, чтобы назначить роль редактора для любой, кто регистрируется по ссылке «создать новую учетную запись». Это прекрасно работает.

Однако пользователи с ролью редактор могут создавать других пользователей с другими типами ролей. Для этого я использую модуль uCreate.

Проблема в том, что когда редактор создает пользователя, этот пользователь также получает роль редактора.

Я изучил ряд хуков для программного удаления нежелательной роли, но безуспешно. Как я могу решить эту проблему?


person sisko    schedule 21.01.2012    source источник


Ответы (1)


Когда пользователи «роли редактора» создают пользователей с помощью «модуля uCreate», вызывается, что hook_user находится в «модуле роли автоматического назначения». Это проблема.

Функция user_save из «ucreate module line: 299» вызывает hook_user с параметром «insert» в «auto assign role.module file», строка № 155.

case 'insert': // If this is an administrator creating the account only use auto_assign if // allowed by auto_admin_active if (arg(0) == 'admin' && _autoassignrole_get_settings('auto_admin_active') == 0) { return; }

Здесь код проверяет, является ли он администратором. Если это не администратор, он назначит этому пользователю роль редактора.

Вместо этого вы можете создать собственный модуль и реализовать hook_user и изменить роль при вставке пользователя. Для получения дополнительной информации см. user_save в drupal 6

person sathishkumar    schedule 22.01.2012