function book_access_ui_grants_form in Book access 7.2
Same name and namespace in other branches
- 6.2 book_access_ui.admin.inc \book_access_ui_grants_form()
Form builder for the book access configuration page.
See also
book_access_ui_user_add_submit()
book_access_ui_grants_form_submit()
theme_book_access_ui_grants_form()
1 string reference to 'book_access_ui_grants_form'
- book_access_ui_menu in ./
book_access_ui.module - Implements hook_menu().
File
- ./
book_access_ui.admin.inc, line 17 - Administration interface for the Book access module.
Code
function book_access_ui_grants_form($form, &$form_state, $node) {
if (!empty($node->book['bid'])) {
$bid = $node->book['bid'];
$context = array(
'bid' => $bid,
'node' => clone $node,
);
$form = array(
'#bid' => $bid,
'#author' => $node->uid,
'#rids' => array(),
'#uids' => array(),
'#tree' => TRUE,
);
// Build the role access permissions for the book.
$grants = BookAccess::getAuthorGrants($bid, $node->uid, variable_get('book_access_default_roles_access', array()));
$grants_copy = $grants;
drupal_alter('book_access_author_grants', $grants, $context);
if ($grants != $grants_copy) {
_book_access_ui_permissions_warning();
}
$author = user_load($node->uid);
if ($author) {
$form['author']['name'] = array(
'#markup' => t('!author-href (author)', array(
'!author-href' => theme('username', array(
'account' => $author,
)),
)),
);
}
else {
$form['author']['name'] = array(
'#markup' => t('author'),
);
}
$form['author']['grant_view'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_view']),
);
$form['author']['grant_update'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_update']),
);
$form['author']['grant_delete'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_delete']),
);
$form['author']['grant_admin_access'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_admin_access']),
);
$form['author']['grant_add_child'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_add_child']),
);
$form['author']['grant_edit_outline'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_edit_outline']),
);
$grants = BookAccess::getRoleGrants($bid, $roles, variable_get('book_access_default_roles_access', array()));
$grants_copy = $grants;
drupal_alter('book_access_roles_grants', $roles, $grants, $context);
if ($grants != $grants_copy) {
_book_access_ui_permissions_warning();
}
foreach ($roles as $rid => $name) {
$form['#rids'][] = $rid;
$form['roles']['names'][$rid] = array(
'#markup' => check_plain($name),
);
$form['roles']['grant_view'][$rid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_view'][$rid]),
);
$form['roles']['grant_update'][$rid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_update'][$rid]),
);
$form['roles']['grant_delete'][$rid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_delete'][$rid]),
);
$form['roles']['grant_admin_access'][$rid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_admin_access'][$rid]),
);
$form['roles']['grant_add_child'][$rid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_add_child'][$rid]),
);
$form['roles']['grant_edit_outline'][$rid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_edit_outline'][$rid]),
);
}
$grants = BookAccess::getUserGrants($bid, $uids);
$grants_copy = $grants;
drupal_alter('book_access_users_grants', $uids, $grants, $context);
if ($grants != $grants_copy) {
_book_access_ui_permissions_warning();
}
foreach ($uids as $uid) {
$form['#uids'][] = $uid;
$form['users']['grant_view'][$uid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_view'][$uid]),
);
$form['users']['grant_update'][$uid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_update'][$uid]),
);
$form['users']['grant_delete'][$uid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_delete'][$uid]),
);
$form['users']['grant_admin_access'][$uid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_admin_access'][$uid]),
);
$form['users']['grant_add_child'][$uid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_add_child'][$uid]),
);
$form['users']['grant_edit_outline'][$uid] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_edit_outline'][$uid]),
);
}
$form['user']['username'] = array(
'#type' => 'textfield',
'#size' => 20,
'#autocomplete_path' => 'user/autocomplete',
);
$grants = array_filter(variable_get('book_access_default_users_access', array()));
$form['user']['grant_view'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_view']),
);
$form['user']['grant_update'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_update']),
);
$form['user']['grant_delete'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_delete']),
);
$form['user']['grant_admin_access'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_admin_access']),
);
$form['user']['grant_add_child'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_add_child']),
);
$form['user']['grant_edit_outline'] = array(
'#type' => 'checkbox',
'#default_value' => !empty($grants['grant_edit_outline']),
);
$form['user']['add_user'] = array(
'#type' => 'submit',
'#value' => t('Add user'),
'#submit' => array(
'book_access_ui_user_add_submit',
),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save configuration'),
);
// the ability to reset just this book to defaults
$form['reset'] = array(
'#type' => 'submit',
'#value' => t('Reset to defaults'),
'#submit' => array(
'book_access_ui_reset_one_to_defaults_submit',
),
);
}
return $form;
}