Files
2026-10-03 20:07:49 +02:00

19 lines
601 B
TypeScript

import { asc, count, eq } from 'drizzle-orm'
import { roles, userRoles } from '../../db/schema'
export default defineEventHandler(async (event) => {
await requirePermission(event, 'admin.access')
const roleList = await useDb()
.select({
id: roles.id,
name: roles.name,
memberCount: count(userRoles.userId),
})
.from(roles)
.leftJoin(userRoles, eq(userRoles.roleId, roles.id))
.groupBy(roles.id)
.orderBy(asc(roles.name))
const permsByRole = await getRolePermissions()
return roleList.map(r => ({ ...r, permissions: permsByRole.get(r.id) ?? [] }))
})