Пермишны, создаваемые в чужих модулях, иногда приходятся к месту. Скажем, когда пишешь дополнение и проще воспользоваться уже имеющимся правом (типа 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()) пермишнов.