Пермишны, создаваемые в чужих модулях, иногда приходятся к месту. Скажем, когда пишешь дополнение и проще воспользоваться уже имеющимся правом (типа access content), чем организовывать свое.
Однако новая система вывода пермишнов в семерке — как будто издевается над разработчиком, предлагая, во-первых, display title вместо реального (подставляемого в user_access()) названия пермишна, а во-вторых — еще и подставляя перевод этого тайтла. Поиск оригинального названия пермишна иногда [censored] в [censored] немного утомляет.
А вот простой выход:
$modules = array();
foreach (module_implements('permission') as $module) {
$modules[$module] = $module_info[$module]['name'];
}
asort($modules);
$perms = array();
foreach ($modules as $module => $display_name) {
$perms[$module] = array();
if ($permissions = module_invoke($module, 'permission')) {
$perms[$module] = $permissions;
}
}
dpm($perms);
Текст вставляется в php-код любой страницы или блока, и выводит сгруппированный по модулям список настоящих (подходящих для user_access()) пермишнов.