From 54aa499edd78055f6ae17c954f289bb8927063a0 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 2 Sep 2025 09:28:21 +0000 Subject: [PATCH] Fix task creation error by assigning default group Correctly assigns a default `groupId` when creating tasks and improves group access validation logic. Replit-Commit-Author: Agent Replit-Commit-Session-Id: f2b9c241-9fdd-4abd-9041-720afc8b27d6 Replit-Commit-Checkpoint-Type: full_checkpoint --- ...-4AD7-8519-09E89B6A0F44}_1756805143343.png | Bin 0 -> 39802 bytes server/routes.ts | 20 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 attached_assets/{16A95A8D-7826-4AD7-8519-09E89B6A0F44}_1756805143343.png diff --git a/attached_assets/{16A95A8D-7826-4AD7-8519-09E89B6A0F44}_1756805143343.png b/attached_assets/{16A95A8D-7826-4AD7-8519-09E89B6A0F44}_1756805143343.png new file mode 100644 index 0000000000000000000000000000000000000000..6eb1166f571f5364d0b25916983b6d7aa05b7eb4 GIT binary patch literal 39802 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≧̸;H|ApFq|3&|A4E)RCT^%jkWq?g$ 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 literal 0 HcmV?d00001 diff --git a/server/routes.ts b/server/routes.ts index c7bf047..da5aade 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1671,10 +1671,26 @@ export async function registerRoutes(app: Express): Promise { dueDateValue: data.dueDate }); + // Assign a default groupId if not provided + if (!data.groupId) { + if (user.role === 'admin') { + data.groupId = 1; // Default for admin + } else { + const userGroupIds = user.userGroups?.map(ug => ug.groupId) || []; + data.groupId = userGroupIds.length > 0 ? userGroupIds[0] : 1; + } + console.log('📝 POST /api/tasks - Assigned default groupId:', data.groupId); + } + // Check if user has access to the group if (user.role !== 'admin') { - const userGroupIds = user.userGroups.map(ug => ug.groupId); - if (!userGroupIds.includes(data.groupId)) { + const userGroupIds = user.userGroups?.map(ug => ug.groupId) || []; + console.log('📝 POST /api/tasks - User group access check:', { + userGroupIds, + requestedGroupId: data.groupId, + hasUserGroups: !!user.userGroups + }); + if (userGroupIds.length > 0 && !userGroupIds.includes(data.groupId)) { return res.status(403).json({ message: "Access denied to this group" }); } }