Функции + разрешения пользователя: каковы плюсы и минусы всего в одном по сравнению с отдельными?


Мне нужно провести обзор наших ролей пользователей и разрешений. В настоящее время некоторые роли и разрешения уже включены в существующие функции (обычно пользовательские типы контента), но большинство из них - нет. Я хотел бы, чтобы все было включено в функции, чтобы начать обзор.

Каковы плюсы и минусы любого из этих подходов:

  1. Есть ли одна функция "роли и разрешения", которая собирает все роли и разрешения? (Это добавляет множество модулей в качестве зависимостей.)
  2. При необходимости включать роли и разрешения в другие функции? (Для этого все еще может потребоваться отдельная функция для разрешений, которые не вписываются в другие функции.)

Альтернативные методы (например, чтобы помочь уменьшить количество ролей/разрешений) тоже приветствуются!

Примечание: многие наши пользовательские типы контента совместно используют повторно используемые поля, для которых должны быть определены разрешения пользователей.

Author: Pierre.Vriens, 2016-04-13

2 answers

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

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

 1
Author: frazras, 2016-04-13 11:57:48

Я не эксперт по функциям (или фанат), но подходы, которые вас интересуют, являются (""?) типичной проблемой (болью?) в использовании функций. Поэтому я думаю, что вам следует подумать, можете ли вы упростить роли/разрешения, которые вы используете в настоящее время. Читайте дальше, чтобы узнать о возможном подходе к этому, используя модуль Group, рассматриваемый в качестве альтернативы для органических групп (о которых многие люди знакомы).

Группа позволяет создавать произвольные коллекции вашего контента и пользователей на вашем сайте и предоставьте разрешения на управление доступом к этим коллекциям. Он доступен начиная с D7, а также имеет версию D8. Модуль Group создает группы как сущности, делая их полностью полевыми, расширяемыми и экспортируемыми.

Для этого конкретного вопроса вы бы включили подмодуль gnode, и для каждого типа группы вы бы определили соответствующие разрешения (просмотр, редактирование, удаление и т.д.) для различных типов контента. Это это.

Поэтому необходимо подумать о том, как должны выглядеть ваши группы и типы групп, и какими должны быть группы, связанные с "ролями" и "разрешениями" для ваших различных пользователей. Эти роли и разрешения специфичны для модуля группы, и хотя они имеют то же имя, что и в ядре Drupal, они не совпадают. После того, как вы завершите свои роли/разрешения на основе групп, я уверен, что вы могли бы избавиться от многих из ваших существующих ролей/разрешений (которые сделайте оставшийся более управляемым).

После настройки модуля группы в соответствии с вашими потребностями вы можете "экспортировать" свои роли/разрешения. Используя функции, я бы рекомендовал для этого 1 отдельную функцию, очевидно, используя модуль группы (только?) в качестве зависимости.

Ресурсы

 0
Author: Pierre.Vriens, 2016-04-13 14:28:10