--- import DashboardLayout from '../../layouts/DashboardLayout.astro'; import Icon from '../../components/Icon.astro'; import { db } from '../../db'; import { apiTokens, passkeys } from '../../db/schema'; import { eq, desc } from 'drizzle-orm'; import ProfileForm from '../../components/settings/ProfileForm.vue'; import PasswordForm from '../../components/settings/PasswordForm.vue'; import ApiTokenManager from '../../components/settings/ApiTokenManager.vue'; import PasskeyManager from '../../components/settings/PasskeyManager.vue'; const user = Astro.locals.user; if (!user) return Astro.redirect('/login'); const url = new URL(Astro.request.url); const successType = url.searchParams.get('success'); const userTokens = await db.select() .from(apiTokens) .where(eq(apiTokens.userId, user.id)) .orderBy(desc(apiTokens.createdAt)) .all(); const userPasskeys = await db.select() .from(passkeys) .where(eq(passkeys.userId, user.id)) .orderBy(desc(passkeys.createdAt)) .all(); ---

Account Settings

{/* Success Messages */} {successType === 'profile' && (
Profile updated successfully!
)} {successType === 'password' && (
Password changed successfully!
)} ({ ...pk, lastUsedAt: pk.lastUsedAt ? pk.lastUsedAt.toISOString() : null, createdAt: pk.createdAt ? pk.createdAt.toISOString() : null }))} /> ({ ...t, lastUsedAt: t.lastUsedAt ? t.lastUsedAt.toISOString() : null, createdAt: t.createdAt ? t.createdAt.toISOString() : '' }))} />

Account Information

Account ID {user.id}
Email {user.email}
Site Administrator {user.isSiteAdmin ? "Yes" : "No"}