Drupal 6.x
I have this module that manages four different content types. For that matter, how do I define permission for each content within the same module? Is that even possible? I can't figure out how to define permission for each content type cuz hook_perm has to be named with module name and it doesn't have any argument(like hook_access $node) to return permission base on content type. Here's how I'd like to do -
function mymodule_perm()
{
if(content1)
return array(
'create content1 node',
'edit content1 nodes',
'delete content1 nodes',
);
if(content2)
return array(
'create content2 node',
'edit content2 nodes',
'delete content2 nodes',
);
if(content3)
return array(
'create content3 node',
'edit content3 nodes',
'delete content3 nodes',
);
.......
}
Any help would be highly appreciated.
Normally you do not need to create permissions for content types yourself, as the node module does this for you in
node_perm()
. For every content type you declare inhook_node_info()
, the node module will automatically create a fixed set of permissions as follows:Besides that, you can declare any number of additional permissions in your modules
hook_perm()
implementation (as long as they are unique) and use those in your code as you wish.The important thing here is that a permission does not do much by itself - it is just a name that will show up on the permissions page, allowing it to be attributed to roles. They only become 'meaningful' by code that uses them via
user_access()
calls.So if, for example, you wanted to create a special, new permission for each of your content types yourself, you would just declare them in
hook_perm()
all at once (so you do not need any argument - just return one string per permission you'd like to create).