Skip to content

Commit 54afa84

Browse files
author
mutec
committed
feature: hide blacklisted user agents from users online list
1 parent 2feba7e commit 54afa84

7 files changed

Lines changed: 64 additions & 0 deletions

File tree

constants.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?php
2+
3+
define('BLACKLIST_USER_AGENTS_HIDE_FROM_ONLINELIST', 0);
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace wcf\system\event\listener;
4+
5+
use wcf\util\StringUtil;
6+
7+
class HideUserAgentsUserOnlineListListener implements IParameterizedEventListener {
8+
/**
9+
* @inheritDoc
10+
*/
11+
public function execute($eventObj, $className, $eventName, array &$parameters) {
12+
/** @var \wcf\page\UsersOnlineListPage $eventObj */
13+
14+
$excludedAgents = explode("\n", StringUtil::unifyNewlines(BLACKLIST_USER_AGENTS));
15+
if (!empty($excludedAgents)) {
16+
foreach ($excludedAgents as $agent) {
17+
$eventObj->objectList->getConditionBuilder()->add('userAgent NOT LIKE ?', [str_replace('*', '%', $agent)]);
18+
}
19+
}
20+
}
21+
}

language/de-informal.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<language languagecode="de-informal" countrycode="de" xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com https://www.woltlab.com/XSD/vortex/language.xsd">
3+
<category name="wcf.acp.option">
4+
<item name="wcf.acp.option.blacklist_user_agents_hide_from_onlinelist"><![CDATA[UserAgents in der Benutzer-Online-Liste ausblenden]]></item>
5+
</category>
6+
</language>

language/de.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<language languagecode="de" countrycode="de" xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com https://www.woltlab.com/XSD/vortex/language.xsd">
3+
<category name="wcf.acp.option">
4+
<item name="wcf.acp.option.blacklist_user_agents_hide_from_onlinelist"><![CDATA[UserAgents in der Benutzer-Online-Liste ausblenden]]></item>
5+
</category>
6+
</language>

language/en.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<language languagecode="en" countrycode="gb" xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com https://www.woltlab.com/XSD/vortex/language.xsd">
3+
<category name="wcf.acp.option">
4+
<item name="wcf.acp.option.blacklist_user_agents_hide_from_onlinelist"><![CDATA[Hide UserAgents from UsersOnlineList]]></item>
5+
</category>
6+
</language>

xml/eventListener.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com https://www.woltlab.com/XSD/vortex/eventListener.xsd">
3+
<import>
4+
<eventlistener name="hideUserAgents">
5+
<eventclassname>wcf\page\UsersOnlineListPage</eventclassname>
6+
<eventname>afterInitObjectList</eventname>
7+
<listenerclassname>wcf\system\event\listener\HideUserAgentsUserOnlineListListener</listenerclassname>
8+
<environment>user</environment>
9+
<inherit>1</inherit>
10+
</eventlistener>
11+
</import>
312
<delete>
413
<eventlistener name="uninstallPackageAction">
514
<eventclassname>wcf\acp\action\UninstallPackageAction</eventclassname>

xml/option.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com https://www.woltlab.com/XSD/vortex/option.xsd">
3+
<import>
4+
<options>
5+
<option name="blacklist_user_agents_hide_from_onlinelist">
6+
<categoryname>security.blacklist</categoryname>
7+
<optiontype>boolean</optiontype>
8+
<defaultvalue>0</defaultvalue>
9+
<showorder>3</showorder>
10+
</option>
11+
</options>
12+
</import>
13+
</data>

0 commit comments

Comments
 (0)