feat: 后台身份认证记录支持删除
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d8a1c35e9d
commit
b475263e76
4 files changed
+33
No files matched your search
@@ -176,6 +176,10 @@ trait UsersMenusVerify {
|
||||
} else {
|
||||
echo '<span class="description">' . esc_html__('无需人工操作', 'aksrt') . '</span>';
|
||||
}
|
||||
echo '<form method="post" action="' . esc_url(admin_url('admin-post.php')) . '" style="margin-top:8px;" onsubmit="return confirm(\'' . esc_js(__('确定删除这条身份认证记录?关联事件和人工材料也会删除。', 'aksrt')) . '\');">';
|
||||
echo '<input type="hidden" name="action" value="aksrt_users_delete_verify" /><input type="hidden" name="application_uuid" value="' . esc_attr((string) $row['application_uuid']) . '" />';
|
||||
wp_nonce_field('aksrt_users_delete_verify_' . (string) $row['application_uuid']);
|
||||
echo '<button class="button button-link-delete">' . esc_html__('删除记录', 'aksrt') . '</button></form>';
|
||||
}
|
||||
|
||||
public function handle_review_verify(): void {
|
||||
@@ -197,6 +201,23 @@ trait UsersMenusVerify {
|
||||
$this->redirect('aksrt_user_auth', is_wp_error($result) ? 'verify_failed' : 'verify_updated', $extra);
|
||||
}
|
||||
|
||||
public function handle_delete_verify(): void {
|
||||
if (!current_user_can('aksrt_review_identity') && !current_user_can(self::CAPABILITY)) {
|
||||
wp_die(esc_html__('权限不足', 'aksrt'));
|
||||
}
|
||||
$uuid = sanitize_text_field((string) wp_unslash($_POST['application_uuid'] ?? ''));
|
||||
check_admin_referer('aksrt_users_delete_verify_' . $uuid);
|
||||
$repo = new \AKSRT\Identity\ApplicationRepository();
|
||||
$application = $repo->find_by_uuid($uuid);
|
||||
if (!$application) {
|
||||
$this->redirect('aksrt_user_auth', 'verify_failed', ['aksrt_verify_error' => __('认证记录不存在', 'aksrt')]);
|
||||
}
|
||||
(new \AKSRT\Identity\EvidenceService())->delete((array) ($application['evidence_ids'] ?? []));
|
||||
(new \AKSRT\Identity\EventRepository())->delete_for_application((int) $application['id']);
|
||||
$deleted = $repo->delete((int) $application['id']);
|
||||
$this->redirect('aksrt_user_auth', $deleted ? 'verify_deleted' : 'verify_failed', $deleted ? [] : ['aksrt_verify_error' => __('认证记录删除失败', 'aksrt')]);
|
||||
}
|
||||
|
||||
private function get_verify_history(int $user_id): array {
|
||||
return \AKSRT\User\AuthApply::get_review_history($user_id);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user