import { useState } from 'react'; import { Management, button, control } from '@/pages/management/shared'; import { profileJson } from '@/lib/profile-json'; import { createOperationKey } from '@/lib/operation-key'; type Plan = { approval_id: string; requested_by: number; second_user_id: number; reason: string; expires_at: string; consumed: boolean; expired: boolean; code_current: boolean; can_confirm: boolean; mfa_confirmed_in_session: boolean; hash: string; target: { database: string; port: number }; }; export default function BootstrapConfirmation(plan: Plan) { const [key] = useState(createOperationKey); const [reason, setReason] = useState(''); const [confirmed, setConfirmed] = useState(false); const [busy, setBusy] = useState(false); const [done, setDone] = useState(plan.consumed); const [message, setMessage] = useState(''); async function confirm() { setBusy(true); setMessage(''); try { await profileJson( '/management/profile-install/bootstrap/' + plan.approval_id + '/confirm', { hash: plan.hash, confirm: confirmed, idempotency_key: key, reason, }, ); setDone(true); setMessage( 'Dupla inicializada por confirmação cruzada. Apenas estas duas contas foram designadas; nenhuma flag foi alterada. Inicie uma nova sessão.', ); } catch (error) { setMessage( error instanceof Error ? error.message : 'Resposta indisponível. Recupere este pedido antes de repetir.', ); } finally { setBusy(false); } } return (

Base {plan.target.database}:{plan.target.port}

Pedido apresentado pela conta {plan.requested_by}; confirmação reservada à conta {plan.second_user_id}.

Fundamento do pedido: {plan.reason}

Expira em {plan.expires_at}.

O pedido não atribui privilégios. A confirmação é uma operação distinta, com MFA e auditoria. Não altera a regra de substituição posterior.

{plan.expired && (

Pedido expirado. Prepare novo pedido autorizado.

)} {!plan.code_current && (

Revisão ou destino alterados. Este pedido não pode ser confirmado.

)} {!plan.mfa_confirmed_in_session && (

Conclua MFA nesta sessão antes de confirmar.

)} {!plan.can_confirm && !done && (

Esta conta pode consultar, mas não confirmar o pedido.

)}