function user_relationship_node_access_form_alter in User Relationships 5.3
Same name and namespace in other branches
- 5.2 plugins/user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_form_alter()
- 6 user_relationship_node_access/user_relationship_node_access.module \user_relationship_node_access_form_alter()
File
- user_relationship_node_access/
user_relationship_node_access.module, line 38
Code
function user_relationship_node_access_form_alter($form_id, &$form) {
global $user;
if ($form['#node'] && $form['#node']->uid != $user->uid) {
return;
}
if ((is_null($form['type']) || $form['type']['#value'] . '_node_form' != $form_id) && $form_id != 'node_type_form' || !count($types = user_relationships_types_load())) {
return;
}
// Node form
if ($form_id != 'node_type_form') {
$form['user_relationship_node_access'] = array(
'#type' => 'fieldset',
'#title' => t('User Relationships Node Access'),
'#description' => t('Node access based on your relationships to other users'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#tree' => TRUE,
'#theme' => 'user_relationship_node_access_form',
);
foreach ($types as $rtid => $type) {
unset($types[$rtid]);
if ($type->is_oneway) {
$types["{$rtid}_yt"] = t('@type (you to them)', array(
'@type' => $type->plural_name,
));
$types["{$rtid}_ty"] = t('@type (them to you)', array(
'@type' => $type->plural_name,
));
}
else {
$types[$rtid] = $type->plural_name;
}
}
asort($types);
// reverse the optimization made after saving
$permissions = array();
if (is_array($form['#node']->user_relationship_node_access)) {
foreach ($form['#node']->user_relationship_node_access as $rtid => $permission) {
foreach ($permission as $action => $trash) {
$permissions[$action][$rtid] = $rtid;
}
}
}
$form['user_relationship_node_access'] = array(
'#type' => 'fieldset',
'#title' => t('User Relationships Node Access'),
'#description' => t('Node access based on your relationships to other users'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#tree' => TRUE,
);
foreach (array(
'view',
'update',
'delete',
) as $action) {
$form['user_relationship_node_access'][$action] = array(
'#type' => 'checkboxes',
'#multiple' => TRUE,
'#options' => $types,
'#title' => t(ucfirst($action)),
'#default_value' => $permissions[$action],
'#description' => t('If no box is ticked, then anyone can @action.', array(
'@action' => $action,
)),
);
}
}
}