forked from BRETT/BRETT
Initial Commit
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
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) ?? [] }))
|
||||
})
|
||||
Reference in New Issue
Block a user