大家都知道透過 hook_permission 可以自定一個使用者權限,在管理權限頁面可以看到相關設置。但如果你是開發者,看到權限列表中友善權限名,實會不滿意吧 ?
我想要的是 Machine Name !!

難道每次要 SEARCH 所有檔案嗎 ??
當然不是啦,你可以透過 user_permission_get_modules 取得
不過還不滿足,自寫一段:
function upm($module = NULL, $print = TRUE, $dfunction = FALSE) {
$permissions = array();
if($dfunction == FALSE) {
if($module) {
$perms = module_invoke($module, 'permission');
foreach ($perms as $key => $value) {
$m[$module][] = $key;
}
}
else{
foreach (module_implements('permission') as $module) {
$perms = module_invoke($module, 'permission');
foreach ($perms as $key => $value) {
$m[$module][] = $key;
}
}
}
}
else {
$m = user_permission_get_modules();
}
if($print) {
if(function_exists('dpm')) {
dpm($m);
}
else {
debug($m);
}
}
else {
return $m;
}
}
使用方法:
// 簡單
upm();
// 只顯示某一個模組
upm('block');
// 使用原有 CORE Function
upm(0,1,1);
// PHP 你會的......
額外
Devel 中的 Devel node access 也很好用的,打開後去 BLOCK 設置畫面能找到相關設置,不妨一試。

寫下您的回覆