function custom_module_access($array) {
$flag = FALSE;
foreach($array as $value) {
$flag =$flag || user_access($value);
}
return $flag;
}
function custom_module_access($array) {
global $user;
static $perm = array();
if ($user->uid == 1) {
return TRUE;
}
if (!isset($perm[$user->uid])) {
$result = db_query("SELECT p.perm FROM {role} r INNER JOIN {permission} p ON p.rid = r.rid WHERE r.rid IN (" . db_placeholders($user->roles) . ")", array_keys($user->roles)); $perms = array();
while ($row = db_fetch_object($result)) {
$perms += array_flip(explode(', ', $row->perm));
}
$perm[$user->uid] = $perms;
}
$result_intersect = array_intersect(array_values($perm[$user->uid]), array_keys($array));
if (empty($result_intersect)) {
$flag = FALSE;
}
else {
$flag = TRUE;
}
return $flag;
}
查看更多关于Drupal 自定义权限验证 代码的详细内容...