diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2009-11-20 04:51:27 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2009-11-20 04:51:27 +0000 |
commit | 9b71489a48a266df8efc1e462ec4dbd200e60ddf (patch) | |
tree | 2a10711c6351e0144977424949a43038dd3d067c /modules/simpletest | |
parent | 457a109406d80c2af636ec22bb2d858429c4a871 (diff) | |
download | brdo-9b71489a48a266df8efc1e462ec4dbd200e60ddf.tar.gz brdo-9b71489a48a266df8efc1e462ec4dbd200e60ddf.tar.bz2 |
#636834 by yched: Fixed field revision data when user has no 'edit' access on the field (with tests).
Diffstat (limited to 'modules/simpletest')
-rw-r--r-- | modules/simpletest/tests/field_test.module | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/modules/simpletest/tests/field_test.module b/modules/simpletest/tests/field_test.module index 538071dee..a3cd45125 100644 --- a/modules/simpletest/tests/field_test.module +++ b/modules/simpletest/tests/field_test.module @@ -49,6 +49,15 @@ function field_test_menu() { return $items; } +/** + * Implements hook_field_access(). + */ +function field_test_field_access($op, $field, $obj_type, $object, $account) { + if ($field['field_name'] == "field_no_{$op}_access") { + return FALSE; + } + return TRUE; +} /** * @@ -312,7 +321,7 @@ function field_test_entity_add($fttype) { $fttype = str_replace('-', '_', $fttype); $entity = (object)array('fttype' => $fttype); drupal_set_title(t('Create test_entity @bundle', array('@bundle' => $fttype)), PASS_THROUGH); - return drupal_get_form('field_test_entity_form', $entity); + return drupal_get_form('field_test_entity_form', $entity, TRUE); } function field_test_entity_edit($entity) { @@ -323,7 +332,7 @@ function field_test_entity_edit($entity) { /** * Form to set the value of fields attached to our entity. */ -function field_test_entity_form($form, &$form_state, $entity) { +function field_test_entity_form($form, &$form_state, $entity, $add = FALSE) { if (isset($form_state['test_entity'])) { $entity = $form_state['test_entity'] + (array)$entity; } @@ -340,13 +349,15 @@ function field_test_entity_form($form, &$form_state, $entity) { $form['#builder_function'] = 'field_test_entity_form_submit_builder'; field_attach_form('test_entity', $entity, $form, $form_state); - $form['revision'] = array( - '#access' => user_access('administer field_test content'), - '#type' => 'checkbox', - '#title' => t('Create new revision'), - '#default_value' => FALSE, - '#weight' => 100, - ); + if (!$add) { + $form['revision'] = array( + '#access' => user_access('administer field_test content'), + '#type' => 'checkbox', + '#title' => t('Create new revision'), + '#default_value' => FALSE, + '#weight' => 100, + ); + } $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), @@ -391,6 +402,7 @@ function field_test_entity_form_submit($form, &$form_state) { */ function field_test_entity_form_submit_builder($form, &$form_state) { $entity = field_test_create_stub_entity($form_state['values']['ftid'], $form_state['values']['ftvid'], $form_state['values']['fttype']); + $entity->revision = !empty($form_state['values']['revision']); field_attach_submit('test_entity', $entity, $form, $form_state); $form_state['test_entity'] = (array)$entity; |