import re with open('ui/components/AdminUserDetailsPage.tsx', 'r') as f: content = f.read() import_str = """import { AdminLayout } from "./AdminLayout.tsx";""" content = content.replace(import_str, """import { AdminLayout } from "./AdminLayout.tsx";\nimport { AdminTable } from "./admin/AdminTable.tsx";""") grants_table = """
{grants.length === 0 ? ( ) : ( grants.map((grant) => ( )) )}
Application Name SPIFFE Workload ID Assigned Role Granted At Actions
No application permissions granted (User is blocked from all subsidiary apps).
{grant.app_name} {grant.spiffe_id} {grant.role} {new Date(grant.created_at).toLocaleDateString()}
""" grants_replacement = """
( {grant.app_name} {grant.spiffe_id} {grant.role} {new Date(grant.created_at).toLocaleDateString()} ))} mobileCards={grants.map((grant) => (
{grant.app_name} {grant.role}
{grant.spiffe_id}
{new Date(grant.created_at).toLocaleDateString()}
))} />
""" content = content.replace(grants_table, grants_replacement) sessions_table = """
{sessions.length === 0 ? ( ) : ( sessions.map((s) => ( )) )}
Session ID Created Expires Actions
No active sessions.
{s.id.substring(0, 16)}... {s.is_agent ? ( Agent Session ) : null} {new Date(s.created_at).toLocaleString()} {new Date(s.expires_at).toLocaleString()}
""" sessions_replacement = """ ( {s.id.substring(0, 16)}... {s.is_agent ? ( Agent Session ) : null} {new Date(s.created_at).toLocaleString()} {new Date(s.expires_at).toLocaleString()} ))} mobileCards={sessions.map((s) => (
{s.id.substring(0, 16)}... {s.is_agent ? ( Agent Session ) : null}
Created: {new Date(s.created_at).toLocaleString()}
Expires: {new Date(s.expires_at).toLocaleString()}
))} />""" content = content.replace(sessions_table, sessions_replacement) passkeys_table = """
{passkeys.length === 0 ? ( ) : ( passkeys.map((pk) => ( )) )}
Credential ID Counter Actions
No registered passkeys.
{pk.credential_id.substring(0, 32)}... {pk.sign_count}
""" passkeys_replacement = """ ( {pk.credential_id.substring(0, 32)}... {pk.sign_count} ))} mobileCards={passkeys.map((pk) => (
{pk.credential_id.substring(0, 32)}...
Count: {pk.sign_count}
))} />""" content = content.replace(passkeys_table, passkeys_replacement) with open('ui/components/AdminUserDetailsPage.tsx', 'w') as f: f.write(content) print("Replaced User Details tables!")