开发者

What's the relationship between user_access and hook_perm in drupal?

It seems both of these functions are used to check whether a user has some previledge.

And the differ开发者_运维知识库ence isn't obvious to me.

Can someone elaborate?


If you implement hook_perm this will define permissions for the given module like this

/**
 * Implementation of hook_perm().
 */
function yourmodule_perm() {
  return array('can select', 'can update', 'can delete');
}

However the permissions per se, mean nothing... One way of controlling what a user can and can't do is user_access:

// @ some other module function
if (user_access('can delete')){
  // delete stuff
} else {
  drupal_access_denied();
}

Also, hook_perm-defined permissions can be used while setting up your module menu hook_menu by doing:

// @hook_menu
$items['modulepath'] = array(
    'title'            => 'modulename',
    'page callback'    => 'module_function',
    'access callback'  => 'user_access',
    'access arguments' =>  array('can select'),
    'type'             => MENU_NORMAL_ITEM,
);

Don't forget to configure your user perms at: admin/user/permissions


hook_perm defines the possible permissions then you can go to admin/user/permissions assign the permissions to specific roles and then use user_access whether the user got the permission (belongs to a role which contains the permission).


hook_perm lets you add custom permissions through a module. These permissions then appear when configuring user roles. user_access is about determining whether a user has access to particular permissions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜