Commit 02d6b122 authored by Dries's avatar Dries

- Patch #648170 by fago, sun: form constructors cannot enable form caching or form rebuilding.

parent c4fd5818
......@@ -328,9 +328,8 @@ function drupal_rebuild_form($form_id, &$form_state, $form_build_id = NULL) {
drupal_prepare_form($form_id, $form, $form_state);
if (empty($form_state['no_cache'])) {
// We cache the form structure so it can be retrieved later for validation.
// If $form_state['storage'] is populated, we also cache it so that it can
// be used to resume complex multi-step processes.
// We cache the form structure and the form state so it can be retrieved
// later for validation.
form_set_cache($form_build_id, $form, $form_state);
}
......@@ -396,8 +395,6 @@ function form_state_keys_no_cache() {
return array(
// Public properties defined by form constructors and form handlers.
'always_process',
'cache',
'no_cache',
'must_validate',
'rebuild',
'redirect',
......
......@@ -144,6 +144,11 @@ function form_test_validate_form($form, &$form_state) {
'#type' => 'submit',
'#value' => 'Save',
);
// To simplify this test, enable form caching and use form storage to
// remember our alteration.
$form_state['cache'] = TRUE;
return $form;
}
......@@ -161,9 +166,6 @@ function form_test_element_validate_name(&$element, &$form_state) {
$triggered = TRUE;
}
if ($form_state['values']['name'] == 'element_validate_access') {
// To simplify this test, enable form caching and use form storage to
// remember our alteration.
$form_state['cache'] = TRUE;
$form_state['storage']['form_test_name'] = $form_state['values']['name'];
// Alter the form element.
$element['#access'] = FALSE;
......@@ -453,9 +455,6 @@ function form_test_storage_element_validate_value_cached($element, &$form_state)
// though.
if (isset($_REQUEST['cache']) && $form_state['values']['value'] == 'change_title') {
$form_state['storage']['thing']['changed'] = TRUE;
// @todo Fix FAPI to make it unnecessary to explicitly set the cache flag in
// this situation. @see http://drupal.org/node/641356.
$form_state['cache'] = TRUE;
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment