function node_privacy_byrole_rolereference_action_form in node privacy byrole 6
Same name and namespace in other branches
- 5 node_privacy_byrole.module \node_privacy_byrole_rolereference_action_form()
File
- ./
node_privacy_byrole.module, line 511 - Set node access permissions by role.
Code
function node_privacy_byrole_rolereference_action_form($context) {
$form = array();
$form['#node']->node_privacy_byrole = isset($context['node_privacy_byrole']) ? $context['node_privacy_byrole'] : NULL;
// Avoiding a notice since menu_form_alter assumes if $form['#node'] is set, $form['#node']->type will be also.
$form['#node']->type = NULL;
node_privacy_byrole_node_form($form);
$form['node_privacy_byrole']['#collapsed'] = FALSE;
unset($form['node_privacy_byrole']['#weight']);
$form['node_privacy_byrole']['#title'] = t('Default permissions');
$form['new'] = array(
'#type' => 'fieldset',
'#title' => t('New permission'),
'#description' => t('The new permissions to set that will override the defaults. The value of the field is expected to match a numerical role id.'),
'#collapsed' => FALSE,
'#collapsible' => TRUE,
);
$fields = content_fields();
$options = array();
foreach ($fields as $field) {
if ($field['type'] == 'rolereference') {
$options[$field['field_name']] = t($field['widget']['label']) . ' (' . $field['field_name'] . ')';
}
}
if (!count($options)) {
drupal_set_message(t('This action cannot be applied because there are no rolereference fields currently available.'));
drupal_goto(referer_uri());
}
asort($options, SORT_LOCALE_STRING);
$form['new']['field'] = array(
'#title' => t('Field'),
'#type' => 'select',
'#options' => $options,
'#default_value' => isset($context['field']) ? $context['field'] : '',
);
unset($fields, $field, $options);
$form['new']['permissions'] = array(
'#title' => t('Permissions'),
'#type' => 'checkboxes',
'#options' => array(
'view' => t('view'),
'edit' => t('edit'),
'delete' => t('delete'),
),
'#default_value' => isset($context['permissions']) ? $context['permissions'] : array(),
'#description' => t('Edit permission implies view. Delete permission implies edit.'),
);
$form['author'] = array(
'#type' => 'fieldset',
'#title' => t('Node Author'),
'#collapsed' => FALSE,
'#collapsible' => TRUE,
);
$form['author']['node_author'] = array(
'#type' => 'checkboxes',
'#options' => array(
'view' => t('view'),
'edit' => t('edit'),
'delete' => t('delete'),
),
'#default_value' => isset($context['node_author']) ? $context['node_author'] : array(),
'#description' => t('Edit permission implies view. Delete permission implies edit.'),
);
return $form;
}