test: add SpecialContributionsBeforeMainOutputHook

Signed-off-by: WaitSpring <me@waitspring.com>
这个提交包含在:
WaitSpring 2024-02-27 12:26:02 +08:00
父节点 c51b2714e1
当前提交 eaec02aa57
找不到此签名对应的密钥
共有 2 个文件被更改,包括 39 次插入2 次删除

查看文件

@ -16,7 +16,8 @@
},
"Hooks": {
"GetPreferences": "PreferencesHook",
"getUserPermissionsErrors": "PermissionsHook"
"getUserPermissionsErrors": "PermissionsHook",
"SpecialContributionsBeforeMainOutput": "PermissionsHook"
},
"HookHandlers": {
"PreferencesHook": {

查看文件

@ -8,14 +8,17 @@ use MediaWiki\User\UserOptionsLookup;
use MediaWiki\User\UserIdentity;
use MediaWiki\User\Registration\UserRegistrationLookup;
use MediaWiki\User\UserGroupManager;
use MediaWiki\Hook\SpecialContributionsBeforeMainOutputHook;
use MediaWiki\MediaWikiServices;
use MediaWiki\SpecialPage;
use RequestContext;
use Config;
use Title;
use User;
class PermissionsHook implements
getUserPermissionsErrorsHook
getUserPermissionsErrorsHook,
SpecialContributionsBeforeMainOutputHook
{
/** @var permissionManager */
private $permissionManager;
@ -155,4 +158,37 @@ class PermissionsHook implements
};
}
}
/**
* @param int $userId
* @param User $user
* @param SpecialPage $special
*
* @return bool
*/
public function onSpecialContributionsBeforeMainOutput($userId, $user, $special)
{
global $wgRNRSConfirmedGroup;
$rnrsverified_mode1_2 = $this->checkUserVerifyHash($user);
if ($rnrsverified_mode1_2) {
$rnrsverified_has_confirmed_group = in_array(
$wgRNRSConfirmedGroup,
array_merge(
$this->userGroupManager->listAllImplicitGroups(),
$this->userGroupManager->listAllGroups()
)
);
if (
$rnrsverified_has_confirmed_group &&
!in_array($wgRNRSConfirmedGroup, $this->permissionManager->getUserPermissions($user))
) {
$this->userGroupManager->addUserToGroup($user, 'rnrsverify-confirmed');
}
}
return true;
}
}