1import React, { useEffect, useState } from 'react';
2import PropTypes from 'prop-types';
3import { apiFetch } from '../../lib/api';
5function ImpersonationAuditTable({ tenantId }) {
6 const [logs, setLogs] = useState([]);
7 const [loading, setLoading] = useState(true);
8 const [error, setError] = useState(null);
11 async function fetchLogs() {
15 const res = await apiFetch(`/tenants/${tenantId}/impersonation-audit`);
17 const data = await res.json();
18 setLogs(data.logs || []);
20 setError('Failed to fetch audit logs');
23 setError('Error fetching audit logs');
27 if (tenantId) fetchLogs();
30 if (loading) return <div>Loading impersonation logs...</div>;
31 if (error) return <div style={{ color: 'red' }}>{error}</div>;
32 if (!logs.length) return <div>No impersonation activity found.</div>;
35 <table className="impersonation-audit-table">
47 <tr key={log.audit_id}>
48 <td>{new Date(log.timestamp).toLocaleString()}</td>
49 <td>{log.impersonator_name || log.impersonator_id}</td>
51 <td>{log.ip_address}</td>
52 <td>{log.user_agent}</td>
60ImpersonationAuditTable.propTypes = {
61 tenantId: PropTypes.string.isRequired,
64export default ImpersonationAuditTable;