Изменение роли, потеря разрешений


Я создал роль, Администратор. У администратора есть разрешения: "Назначать роли" (через Назначение ролей ), "Доступ к страницам администрирования", "Просмотр темы администратора" и "Администрирование пользователей".

Я экспортирую роль с функциями (включая разрешения по одному, а также саму роль).

Я удаляю роль в конфигурации и очищаю кэш перед включением этой функции. Я включаю эту функцию. Я drush fr adminrole и я получаю Current state already matches defaults, aborting.

Но моя новая роль администратора не имейте ожидаемые разрешения. Иногда в нем есть "Доступ к страницам администрирования" и "просмотр темы администратора", но в нем нет "назначение ролей" или "администрирование пользователей".

Это тот случай, когда для функций требуется Сильная рука? Или мне нужно использовать Безопасные разрешения (что было бы не идеально, потому что другие администраторы больше не смогут изменять разрешения в конфигурации.)

Author: beth, 2013-03-05

2 answers

Я путал две разные вещи. Из-за того, как функции обрабатывают разрешения и роли, есть три части, а не только две.

Что, как я думал, происходит:

  1. Я добавляю свою роль в эту функцию.
  2. Я добавляю mypermission1, mypermission2, mypermission3 и т.д. в свою функцию.
  3. Я сохраняю свою функцию, и у пользователя с Myrole будут мои разрешения 1, 2, 3 и т.д.

Что на самом деле должно произойти:

  1. Я добавляю свою роль в Особенность
  2. Я добавляю mypermission1, mypermission2, mypermission3 и т.д. в свою функцию.
  3. Я удостоверяюсь, что разрешения Myrole в моей текущей конфигурации действительно включают мои разрешения 1, 2, 3 и т.д.
  4. Я сохраняю свою функцию, и у пользователя с Myrole будут мои разрешения 1, 2, 3 и т.д.

Первый экспортирует независимо от состояния моих разрешений 1, 2, 3 и т. Д. На момент экспорта, что означает, что если роль в вашей конфигурации на самом деле не имеет этих разрешения, ваша функция будет явно указывать, что ваша роль не имеет эти разрешения. Назад от того, что я пытался сделать.

 2
Author: beth, 2013-03-07 16:30:27

Одна из распространенных проблем с настройкой разрешений заключается в том, что роли в исходной и целевой установках должны быть идентичны не только по имени, но и по идентификатору. Если нет, возможно, вы применяете разрешения к неправильным ролям или к несуществующим идентификаторам ролей. Поэтому первое, что нужно сделать, это проверить, что оба сайта соответствуют таблице ролей.

 1
Author: Alfred Armstrong, 2013-03-05 16:41:27