1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-21 00:02:18 +02:00

Merge branch 'develop-ascraeus' into develop

This commit is contained in:
Marc Alexander 2015-01-10 12:37:11 +01:00
commit 3cfbe7bb4f
3 changed files with 70 additions and 11 deletions

View File

@ -0,0 +1,47 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v31x;
class profilefield_remove_underscore_from_alpha extends \phpbb\db\migration\migration
{
static public function depends_on()
{
return array('\phpbb\db\migration\data\v31x\v311');
}
public function update_data()
{
return array(
array('custom', array(array($this, 'remove_underscore_from_alpha_validations'))),
);
}
public function remove_underscore_from_alpha_validations()
{
$this->update_validation_rule('[\w]+', '[a-zA-Z0-9]+');
$this->update_validation_rule('[\w_]+', '[\w]+');
$this->update_validation_rule('[\w.]+', '[a-zA-Z0-9.]+');
$this->update_validation_rule('[\w\x20_+\-\[\]]+', '[\w\x20+\-\[\]]+');
$this->update_validation_rule('[a-zA-Z][\w\.,\-_]+', '[a-zA-Z][\w\.,\-]+');
}
public function update_validation_rule($old_validation, $new_validation)
{
$sql = 'UPDATE ' . PROFILE_FIELDS_TABLE . "
SET field_validation = '" . $this->db->sql_escpape($new_validation) . "'
WHERE field_validation = '" . $this->db->sql_escpape($old_validation) . "'";
$this->db->sql_query($sql);
}
}

View File

@ -18,11 +18,11 @@ abstract class type_string_common extends type_base
protected $validation_options = array(
'CHARS_ANY' => '.*',
'NUMBERS_ONLY' => '[0-9]+',
'ALPHA_ONLY' => '[\w]+',
'ALPHA_UNDERSCORE' => '[\w_]+',
'ALPHA_DOTS' => '[\w.]+',
'ALPHA_SPACERS' => '[\w\x20_+\-\[\]]+',
'ALPHA_PUNCTUATION' => '[a-zA-Z][\w\.,\-_]+',
'ALPHA_ONLY' => '[a-zA-Z0-9]+',
'ALPHA_UNDERSCORE' => '[\w]+',
'ALPHA_DOTS' => '[a-zA-Z0-9.]+',
'ALPHA_SPACERS' => '[\w\x20+\-\[\]]+',
'ALPHA_PUNCTUATION' => '[a-zA-Z][\w\.,\-]+',
'LETTER_NUM_ONLY' => '[\p{Lu}\p{Ll}0-9]+',
'LETTER_NUM_UNDERSCORE' => '[\p{Lu}\p{Ll}0-9_]+',
'LETTER_NUM_DOTS' => '[\p{Lu}\p{Ll}0-9.]+',

View File

@ -133,37 +133,49 @@ class phpbb_profilefield_type_string_test extends phpbb_test_case
),
array(
'ö äö äö ä',
array('field_validation' => '[\w]+'),
array('field_validation' => '[a-zA-Z0-9]+'),
'FIELD_INVALID_CHARS_ALPHA_ONLY-field',
'Required field should reject UTF-8 in alpha only field',
),
array(
'a_abc',
array('field_validation' => '[a-zA-Z0-9]+'),
'FIELD_INVALID_CHARS_ALPHA_ONLY-field',
'Required field should reject underscore in alpha only field',
),
array(
'Hello',
array('field_validation' => '[\w]+'),
array('field_validation' => '[a-zA-Z0-9]+'),
false,
'Required field should accept a characters only field',
),
array(
'Valid.Username123',
array('field_validation' => '[\w.]+'),
array('field_validation' => '[a-zA-Z0-9.]+'),
false,
'Required field should accept a alphanumeric field with dots',
),
array(
'Invalid.,username123',
array('field_validation' => '[\w.]+'),
array('field_validation' => '[a-zA-Z0-9.]+'),
'FIELD_INVALID_CHARS_ALPHA_DOTS-field',
'Required field should reject field with comma',
),
array(
'Invalid._username123',
array('field_validation' => '[a-zA-Z0-9.]+'),
'FIELD_INVALID_CHARS_ALPHA_DOTS-field',
'Required field should reject field with underscore',
),
array(
'skype.test.name,_this',
array('field_validation' => '[a-zA-Z][\w\.,\-_]+'),
array('field_validation' => '[a-zA-Z][\w\.,\-]+'),
false,
'Required field should accept alphanumeric field with punctuations',
),
array(
'1skype.this.should.faila',
array('field_validation' => '[a-zA-Z][\w\.,\-_]+'),
array('field_validation' => '[a-zA-Z][\w\.,\-]+'),
'FIELD_INVALID_CHARS_ALPHA_PUNCTUATION-field',
'Required field should reject field having invalid input for the given validation',
),