mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
refs #8654 FormHelper cleanup unlockFields key
This commit is contained in:
parent
f28c21c7a7
commit
57e0a97483
2 changed files with 27 additions and 0 deletions
|
@ -1619,6 +1619,29 @@ class FormHelperTest extends CakeTestCase {
|
|||
$this->assertEquals(1, $this->Form->fields['Contact.id'], 'Hidden input should be secured.');
|
||||
}
|
||||
|
||||
/**
|
||||
* test unlockField removing from fields array. multiple field version.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testUnlockMultipleFieldRemovingFromFields() {
|
||||
$this->Form->request['_Token'] = array(
|
||||
'key' => 'testKey',
|
||||
'unlockedFields' => array()
|
||||
);
|
||||
$this->Form->create('Order');
|
||||
$this->Form->hidden('Order.id', array('value' => 1));
|
||||
$this->Form->checkbox('Ticked.id.');
|
||||
$this->Form->checkbox('Ticked.id.');
|
||||
|
||||
$this->assertEquals(1, $this->Form->fields['Order.id'], 'Hidden input should be secured.');
|
||||
$this->assertTrue(in_array('Ticked.id', $this->Form->fields), 'Field should be secured.');
|
||||
|
||||
$this->Form->unlockField('Order.id');
|
||||
$this->Form->unlockField('Ticked.id');
|
||||
$this->assertEquals(array(), $this->Form->fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* testTagIsInvalid method
|
||||
*
|
||||
|
|
|
@ -666,6 +666,10 @@ class FormHelper extends AppHelper {
|
|||
$field = Hash::filter(explode('.', $field));
|
||||
}
|
||||
|
||||
if (is_array($field)) {
|
||||
$field = array_filter($field, 'strlen');
|
||||
}
|
||||
|
||||
foreach ($this->_unlockedFields as $unlockField) {
|
||||
$unlockParts = explode('.', $unlockField);
|
||||
if (array_values(array_intersect($field, $unlockParts)) === $unlockParts) {
|
||||
|
|
Loading…
Reference in a new issue