optimize logic

这个提交包含在:
WaitSpring 2024-04-17 15:52:40 +08:00
父节点 7e064b5354
当前提交 0729dee56f
共有 1 个文件被更改,包括 23 次插入18 次删除

查看文件

@ -85,11 +85,9 @@ class PermissionsHook implements
*/
private function checkUserRights(UserIdentity $user)
{
// Mode2: has right to exempt from verification
$rnrsverified_mode2 = (
$this->permissionManager->userHasRight($user, $this->config->get('RNRSConfirmedGroup')) ||
$this->permissionManager->userHasRight($user, $this->config->get('RNRSExemptGroup'))
);
// Mode2: confirmed by verification
$rnrsverified_mode2 =
$this->permissionManager->userHasRight($user, $this->config->get('RNRSConfirmedGroup'));
if ($rnrsverified_mode2) {
return true;
@ -107,7 +105,8 @@ class PermissionsHook implements
{
// Mode3: in group(s) that exempted from verification
$rnrsverified_mode3 = (
in_array($this->config->get('RNRSExemptGroup'), $this->permissionManager->getUserPermissions($user)) ||
$this->permissionManager->userHasRight($user, $this->config->get('RNRSExemptGroup')) ||
in_array('rnrsverify-exempt', $this->permissionManager->getUserPermissions($user)) ||
in_array('bot', $this->permissionManager->getUserPermissions($user))
);
@ -126,7 +125,7 @@ class PermissionsHook implements
*/
private function addGroupLog($user, $added_group)
{
$oldGroups = $this->permissionManager->getAllPermissions($user); // previous groups
$oldGroups = $this->userGroupManager->getUserGroups($user); // previous groups
$newGroups = array_merge($oldGroups, [$added_group]); // all groups
$logEntry = new ManualLogEntry('rights', 'autopromote');
$logEntry->setPerformer($user);
@ -147,17 +146,23 @@ class PermissionsHook implements
*/
private function removeGroupLog($user, $removed_group)
{
$oldGroups = $this->permissionManager->getAllPermissions($user); // previous groups
$newGroups = array_intersect($oldGroups, [$removed_group]); // all groups
$logEntry = new ManualLogEntry('rights', 'autopromote');
$logEntry->setPerformer($user);
$logEntry->setTarget($user->getUserPage());
$logEntry->setParameters([
'4::oldgroups' => $oldGroups,
'5::newgroups' => $newGroups,
]);
$logid = $logEntry->insert();
$logEntry->publish($logid);
$oldGroups = $this->userGroupManager->getUserGroups($user); // previous groups
$newGroups = [...$oldGroups]; // all groups
$key = array_search($removed_group, $newGroups);
if ($key !== false) {
array_splice($newGroups, $key, 1);
}
if ($oldGroups !== $newGroups) {
$logEntry = new ManualLogEntry('rights', 'autopromote');
$logEntry->setPerformer($user);
$logEntry->setTarget($user->getUserPage());
$logEntry->setParameters([
'4::oldgroups' => $oldGroups,
'5::newgroups' => $newGroups,
]);
$logid = $logEntry->insert();
$logEntry->publish($logid);
}
}
/**