> "view TYPE content" - roles that are allowed
to view the content type's
> nodes
'view' is already one of the options fed into hook_access(),
so in that
sense this set of permissions already exists--it's just not
implemented
(yet) in the core node types. If you wish to implement it
for a custom node
type, you can define perms 'view whatevers' and/or 'view own
whatevers' in
hook_perm().
Then:
/**
* Implementation of hook_access().
*/
function whatever_access($op, $node) {
global $user;
if (user_access('administer whatevers')) {
return TRUE;
}
if ($op == 'view') {
return (user_access('view whatevers') ||
(user_access('view own
whatevers') && ($user->uid == $node->uid)));
}
,,,
}
> "administer TYPE content" - roles that are
allowed to modify the
> publishing options on all nodes of that content type
This could be done in a contrib module for 5.0. Something
like:
function adminnodetype_perm() {
$perms = array();
foreach (array_keys(node_get_types('names')) as $type) {
$perms[] = "administer $type content";
}
return $perms;
}
function adminnodetype_form_alter($form_id, &$form) {
if (isset($form['type']) &&
$form['type']['#value'] .'_node_form' ==
$form_id && user_access( 'administer '.
$form['type']['#value'] .'
content')) {
foreach (array('author', 'options') as $key) {
$form[$key]['#access'] = TRUE;
}
}
}
|