父节点
9f7f68c854
当前提交
350eb81a41
|
@ -1,5 +1,5 @@
|
|||
# RNRSHook
|
||||
|
||||
本插件为MediaWiki后台提供一个按钮,指向已部署的[实名验证系统](https://git.qiuwen.wiki/Qiuwen/qiuwen-rnrs)。
|
||||
本插件为 MediaWiki 后台提供一个按钮,指向已部署的[实名验证系统](https://git.qiuwen.wiki/Qiuwen/qiuwen-rnrs)。
|
||||
|
||||
若要更换默认的实名验证系统URL,请修改界面文字 _MediaWiki:Rnrshook-url_。
|
||||
若要更换默认的实名验证系统 URL,请修改界面文字 _MediaWiki:Rnrshook-url_。
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
# 反馈安全问题
|
||||
|
||||
若您确信本插件存在安全问题,请将邮件发送至`adjcom at volunteers.qiuwen.org`,来信标题请附带“参数设置界面RNRS按钮插件安全报告”字样。
|
||||
若您确信本插件存在安全问题,请将邮件发送至`adjcom at volunteers.qiuwen.org`,来信标题请附带“参数设置界面 RNRS 按钮插件安全报告”字样。
|
||||
|
|
|
@ -32,9 +32,7 @@
|
|||
}
|
||||
},
|
||||
"MessagesDirs": {
|
||||
"RNRSHook": [
|
||||
"i18n"
|
||||
]
|
||||
"RNRSHook": ["i18n"]
|
||||
},
|
||||
"manifest_version": 2
|
||||
}
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Qiuwen Baike Contributors"
|
||||
]
|
||||
"authors": ["Qiuwen Baike Contributors"]
|
||||
},
|
||||
"rnrshook-desc": "Real-name registration interface.",
|
||||
"rnrshook-prefs-label": "Real-name registration: ",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Qiuwen Baike Contributors"
|
||||
]
|
||||
"authors": ["Qiuwen Baike Contributors"]
|
||||
},
|
||||
"rnrshook-desc": "{{desc|name=RNRS Hook|url=https://git.qiuwen.wiki/qiuwen/RNRSHook}}",
|
||||
"rnrshook-prefs-label": "Real-name registration: ",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Qiuwen Baike Contributors"
|
||||
]
|
||||
"authors": ["Qiuwen Baike Contributors"]
|
||||
},
|
||||
"rnrshook-desc": "实名制验证界面",
|
||||
"rnrshook-prefs-label": "实名制验证:",
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Qiuwen Baike Contributors"
|
||||
]
|
||||
"authors": ["Qiuwen Baike Contributors"]
|
||||
},
|
||||
"rnrshook-desc": "實名制認證介面",
|
||||
"rnrshook-prefs-label": "實名制認證:",
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
namespace MediaWiki\Extension\RNRSHook;
|
||||
|
||||
use MediaWiki\Extension\AbuseFilter\Hooks\AbuseFilterAlterVariablesHook;
|
||||
|
@ -9,15 +10,17 @@ use User;
|
|||
use RequestContext;
|
||||
use Wikimedia\IPUtils;
|
||||
|
||||
class AbuseFilterHooks implements AbuseFilterAlterVariablesHook, AbuseFilterBuilderHook {
|
||||
class AbuseFilterHooks implements AbuseFilterAlterVariablesHook, AbuseFilterBuilderHook
|
||||
{
|
||||
/**
|
||||
* Determine if a given IP is an internal server node
|
||||
*
|
||||
* @param string|null $ip The IP address to check, or null to use the request IP
|
||||
* @return bool True if an internal server node, false otherwise
|
||||
*/
|
||||
public static function isInternalNode( $ip = null ) {
|
||||
if ( $ip == null ) {
|
||||
public static function isInternalNode($ip = null)
|
||||
{
|
||||
if ($ip == null) {
|
||||
$ip = RequestContext::getMain()->getRequest()->getIP();
|
||||
}
|
||||
|
||||
|
@ -29,10 +32,9 @@ class AbuseFilterHooks implements AbuseFilterAlterVariablesHook, AbuseFilterBuil
|
|||
$low_ip_3 = '127.0.0.0';
|
||||
$high_ip_3 = '127.255.255.255';
|
||||
|
||||
$result = (
|
||||
version_compare ( $low_ip_1, IPUtils::sanitizeIP( $ip ) ) + version_compare( IPUtils::sanitizeIP( $ip ), $high_ip_1 ) === -2 ||
|
||||
version_compare ( $low_ip_2, IPUtils::sanitizeIP( $ip ) ) + version_compare( IPUtils::sanitizeIP( $ip ), $high_ip_2 ) === -2 ||
|
||||
version_compare ( $low_ip_3, IPUtils::sanitizeIP( $ip ) ) + version_compare( IPUtils::sanitizeIP( $ip ), $high_ip_3 ) === -2
|
||||
$result = (version_compare($low_ip_1, IPUtils::sanitizeIP($ip)) + version_compare(IPUtils::sanitizeIP($ip), $high_ip_1) === -2 ||
|
||||
version_compare($low_ip_2, IPUtils::sanitizeIP($ip)) + version_compare(IPUtils::sanitizeIP($ip), $high_ip_2) === -2 ||
|
||||
version_compare($low_ip_3, IPUtils::sanitizeIP($ip)) + version_compare(IPUtils::sanitizeIP($ip), $high_ip_3) === -2
|
||||
);
|
||||
|
||||
return (bool)$result;
|
||||
|
@ -41,15 +43,17 @@ class AbuseFilterHooks implements AbuseFilterAlterVariablesHook, AbuseFilterBuil
|
|||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function onAbuseFilterAlterVariables( VariableHolder &$vars, Title $title, User $user ) {
|
||||
$vars->setVar( 'internal_node', self::isInternalNode() );
|
||||
public function onAbuseFilterAlterVariables(VariableHolder &$vars, Title $title, User $user)
|
||||
{
|
||||
$vars->setVar('internal_node', self::isInternalNode());
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function onAbuseFilter_builder( array &$realValues ) {
|
||||
public function onAbuseFilter_builder(array &$realValues)
|
||||
{
|
||||
$realValues['vars']['internal_node'] = 'internal-node';
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -7,22 +7,24 @@ use OOUI\ButtonWidget;
|
|||
use OOUI\HorizontalLayout;
|
||||
use User;
|
||||
|
||||
class PreferencesHook implements GetPreferencesHook {
|
||||
class PreferencesHook implements GetPreferencesHook
|
||||
{
|
||||
/**
|
||||
* @param User $user
|
||||
* @param array &$preferences
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function onGetPreferences( $user, &$preferences ) {
|
||||
$manageButton = new ButtonWidget( [
|
||||
'href' => wfMessage( 'rnrshook-url' )->text(),
|
||||
'label' => wfMessage( 'rnrshook-ui-manage' )->text()
|
||||
] );
|
||||
public function onGetPreferences($user, &$preferences)
|
||||
{
|
||||
$manageButton = new ButtonWidget([
|
||||
'href' => wfMessage('rnrshook-url')->text(),
|
||||
'label' => wfMessage('rnrshook-ui-manage')->text()
|
||||
]);
|
||||
|
||||
$control = new HorizontalLayout( [
|
||||
'items' => [ $manageButton ]
|
||||
] );
|
||||
$control = new HorizontalLayout([
|
||||
'items' => [$manageButton]
|
||||
]);
|
||||
|
||||
$preferences['rnrshook-module'] = [
|
||||
'type' => 'info',
|
||||
|
|
正在加载...
在新工单中引用