Skip to content

Commit faf92fb

Browse files
committed
Merge pull request mongodb#1992 from andrei-gafton-rtgt/master
[3.x] add escape regex chars to DB Presence Verifier
2 parents c63aaeb + 22059df commit faf92fb

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

Diff for: src/Jenssegers/Mongodb/Validation/DatabasePresenceVerifier.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class DatabasePresenceVerifier extends \Illuminate\Validation\DatabasePresenceVe
1616
*/
1717
public function getCount($collection, $column, $value, $excludeId = null, $idColumn = null, array $extra = [])
1818
{
19-
$query = $this->table($collection)->where($column, 'regex', "/$value/i");
19+
$query = $this->table($collection)->where($column, 'regex', "/" . preg_quote($value) . "/i");
2020

2121
if ($excludeId !== null && $excludeId != 'NULL') {
2222
$query->where($idColumn ?: 'id', '<>', $excludeId);

Diff for: tests/ValidationTest.php

+20
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,26 @@ public function testUnique(): void
4141
['name' => 'required|unique:users']
4242
);
4343
$this->assertFalse($validator->fails());
44+
45+
User::create(['name' => 'Johnny Cash', 'email' => '[email protected]']);
46+
47+
$validator = Validator::make(
48+
['email' => '[email protected]'],
49+
['email' => 'required|unique:users']
50+
);
51+
$this->assertTrue($validator->fails());
52+
53+
$validator = Validator::make(
54+
['email' => '[email protected]'],
55+
['email' => 'required|unique:users']
56+
);
57+
$this->assertFalse($validator->fails());
58+
59+
$validator = Validator::make(
60+
['email' => '[email protected]'],
61+
['email' => 'required|unique:users']
62+
);
63+
$this->assertFalse($validator->fails());
4464
}
4565

4666
public function testExists(): void

Diff for: tests/models/User.php

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* Class User
1414
* @property string $_id
1515
* @property string $name
16+
* @property string $email
1617
* @property string $title
1718
* @property int $age
1819
* @property \Carbon\Carbon $birthday

0 commit comments

Comments
 (0)