Initial Commit

This commit is contained in:
2026-10-03 20:07:49 +02:00
commit a1346c98b1
427 changed files with 59320 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
import { asc, eq } from 'drizzle-orm'
import { roles, userRoles, users } from '../../db/schema'
export default defineEventHandler(async (event) => {
await requirePermission(event, 'admin.access')
const db = useDb()
const allUsers = await db
.select({ id: users.id, name: users.name, email: users.email, createdAt: users.createdAt })
.from(users)
.orderBy(asc(users.name))
const roleRows = await db
.select({ userId: userRoles.userId, roleId: roles.id, name: roles.name })
.from(userRoles)
.innerJoin(roles, eq(userRoles.roleId, roles.id))
const byUser = new Map<number, { id: number, name: string }[]>()
for (const row of roleRows) {
const list = byUser.get(row.userId) ?? []
list.push({ id: row.roleId, name: row.name })
byUser.set(row.userId, list)
}
return allUsers.map(u => ({ ...u, roles: byUser.get(u.id) ?? [] }))
})