fix: trips admin shows only users with trips.record permission
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -66,6 +66,45 @@ export default async function tripsRoutes(
|
||||
});
|
||||
});
|
||||
|
||||
// GET /api/admin/trips/users — users with trips.record permission
|
||||
fastify.get(
|
||||
"/users",
|
||||
{ preHandler: requireAuth },
|
||||
async (_request, reply) => {
|
||||
const users = await prisma.users.findMany({
|
||||
where: {
|
||||
is_active: true,
|
||||
roles: {
|
||||
is: {
|
||||
OR: [
|
||||
{ name: "admin" },
|
||||
{
|
||||
role_permissions: {
|
||||
some: { permissions: { name: "trips.record" } },
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
first_name: true,
|
||||
last_name: true,
|
||||
username: true,
|
||||
},
|
||||
orderBy: { last_name: "asc" },
|
||||
});
|
||||
return success(
|
||||
reply,
|
||||
users.map((u) => ({
|
||||
id: u.id,
|
||||
name: `${u.first_name} ${u.last_name}`.trim() || u.username,
|
||||
})),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
// GET /api/admin/trips/print — print data for trip report
|
||||
fastify.get(
|
||||
"/print",
|
||||
|
||||
Reference in New Issue
Block a user