Добавить пользовательское разрешение в конкретную модуль «группа» на странице разрешений

drupal.stackexchange https://drupal.stackexchange.com/questions/771

  •  16-10-2019
  •  | 
  •  

Вопрос

Используя пользовательский модуль, как можно добавить разрешение в группу «Core/Module" на странице разрешений без взлома модуля Core/PoNLATE?

Пример:
Add custom permission to core module

Это было полезно?

Решение

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

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

  • Осуществлять Hook_theme_registry_alter () изменить функцию темы, которая называется, когда theme('user_admin_perm') вызывается.
  • Реализовать функцию темы, просматривая код theme_user_admin_perm ().

Стоит ли это сделать? Это может быть, в зависимости от вашего клиента.
Учитывая, что первый официальный релиз Drupal 7 был выпущен, и код Drupal 7 изменится, он, вероятно, не стоит этого делать. Я бы предпочел попытаться понять, почему клиент хочет изменить порядок разрешений, перечисленных на странице администрирования, и объяснить причину, по которой его изменение - плохая идея; Если клиент настаивает на том, что код должен быть реализован для их собственных целей, то я бы заставил его понять, что код должен быть переписан, когда сайт переходит в Drupal 7, и не стоит тратить время на такие изменения, когда это возможно использовать то же время для реализации того, что это действительно необходимо.

Другие советы

Нет никакого hook_perm_alter, и эти разрешения сгруппированы с помощью модуля, поэтому, вероятно, это было бы, чтобы войти там с Hook_form_alter в этих формах (есть форма разрешения на роль вместе с основными; не уверены, используют ту же форму_ид )

Должен определить разрешение через yourmodule_perm, чтобы все остальное могло знать, что существует разрешение.

Лично я посоветовал против этого; Пусть ваше разрешение, где это будет, так что нет «Я установил этот модуль и не могу найти разрешение! О, почему разрешение было под другим модулем? !!»

Есть два способа выполнить то, о чем вы просите.

Либо через hook_form_alter или переоценив функцию темы формы: theme_user_admin_perm.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top