This commit is contained in:
2026-05-04 04:02:50 +05:00
parent 0c19af34c3
commit 4ddcaec7c8
6 changed files with 119 additions and 10 deletions
+6 -3
View File
@@ -8,16 +8,19 @@ export default defineEventHandler(async (event) => {
const canvas = await prisma.canvas.findUnique({ where: { id } })
if (!canvas) throw createError({ statusCode: 404, message: 'Canvas not found' })
const user = tryLazyEventHandler(event, () => requireAuth(event)) || { id: null, role: 'guest' }
let user = { id: null, role: 'guest' } as any
try {
user = requireAuth(event)
} catch (e) {}
// Определение роли
let userRole = 'viewer'
if (user.id === canvas.ownerId) userRole = 'owner'
else if (user.role === 'admin') userRole = 'admin'
else if (canvas.groupId) {
const membership = await prisma.groupMember.findUnique({
const membership = user.id ? await prisma.groupMember.findUnique({
where: { userId_groupId: { userId: user.id as string, groupId: canvas.groupId } }
})
}) : null
if (membership) userRole = membership.role
else if (!canvas.isPublic) throw createError({ statusCode: 403, message: 'Access denied' })
} else if (!canvas.isPublic) {