feat: user search, group members management, and fixed canvases filtering
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import { requireAuth } from '~/server/utils/auth'
|
||||
import { prisma } from '~/server/utils/prisma'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const user = requireAuth(event)
|
||||
const id = getRouterParam(event, 'id')
|
||||
const body = await readBody(event)
|
||||
|
||||
// Проверяем права: только владелец может менять настройки доступа
|
||||
const canvas = await prisma.canvas.findUnique({
|
||||
where: { id }
|
||||
})
|
||||
|
||||
if (!canvas) {
|
||||
throw createError({ statusCode: 404, message: 'Canvas not found' })
|
||||
}
|
||||
|
||||
if (canvas.ownerId !== user.id && user.role !== 'admin') {
|
||||
throw createError({ statusCode: 403, message: 'Only owner can change settings' })
|
||||
}
|
||||
|
||||
// Обновляем поля
|
||||
const updatedCanvas = await prisma.canvas.update({
|
||||
where: { id },
|
||||
data: {
|
||||
name: body.name !== undefined ? body.name : undefined,
|
||||
isPublic: body.isPublic !== undefined ? body.isPublic : undefined,
|
||||
groupId: body.groupId !== undefined ? body.groupId : undefined,
|
||||
}
|
||||
})
|
||||
|
||||
return { success: true, canvas: updatedCanvas }
|
||||
})
|
||||
Reference in New Issue
Block a user