Skip to content
This repository was archived by the owner on Mar 12, 2020. It is now read-only.

Commit 300fa75

Browse files
authored
Merge pull request #12 from sitedyno/preg_quote-masks
Use preg_quote on masks.
2 parents 2b8bcf8 + ae4fc54 commit 300fa75

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

src/UserFilter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public function filter(EventInterface $event)
7777
);
7878

7979
foreach ($this->masks as $mask) {
80-
$pattern = '/^' . str_replace('*', '.*', $mask) . '$/';
80+
$pattern = '/^' . str_replace('\*', '.*', preg_quote($mask, '/')) . '$/';
8181

8282
if ($this->caseless) {
8383
$pattern .= "i";

tests/UserFilterTest.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ public function dataProviderFilter()
4949
$data[] = [$event, true];
5050
}
5151

52+
// Matching freenode style mask
53+
$event = $this->getMockUserEvent('freenodenick', 'freenodeuser', 'unaffiliated/freenodenick');
54+
$data[] = [$event, true];
55+
5256
return $data;
5357
}
5458

@@ -97,7 +101,11 @@ public function dataProviderFilterCased()
97101
*/
98102
public function testFilter(EventInterface $event, $expected)
99103
{
100-
$filter = new UserFilter($masks = ['nick1!user1@host1', 'nick2*!user2*@host2*']);
104+
$filter = new UserFilter($masks = [
105+
'nick1!user1@host1',
106+
'nick2*!user2*@host2*',
107+
'freenodenick!freenodeuser@unaffiliated/freenodenick'
108+
]);
101109
$this->assertSame($expected, $filter->filter($event));
102110
}
103111

0 commit comments

Comments
 (0)