From 85e24e03f15d5626fd2e4e64f9e2eb4bf15729f6 Mon Sep 17 00:00:00 2001 From: pancakes Date: Tue, 31 Dec 2024 00:02:50 +1000 Subject: [PATCH] [backend/api] Add conflict check when creating folders --- Iceshrimp.Backend/Controllers/Web/DriveController.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Iceshrimp.Backend/Controllers/Web/DriveController.cs b/Iceshrimp.Backend/Controllers/Web/DriveController.cs index 591eec1d..ee3e2d02 100644 --- a/Iceshrimp.Backend/Controllers/Web/DriveController.cs +++ b/Iceshrimp.Backend/Controllers/Web/DriveController.cs @@ -283,6 +283,15 @@ public class DriveController( if (string.IsNullOrWhiteSpace(request.Name)) throw GracefulException.BadRequest("Folder name cannot be empty"); + var existing = await db.DriveFolders + #pragma warning disable CA1862 + .AnyAsync(p => p.Name.ToLower() == request.Name.Trim().ToLower() + #pragma warning restore CA1862 + && p.ParentId == request.ParentId + && p.UserId == user.Id); + if (existing) + throw GracefulException.Conflict("A folder with this name already exists"); + var driveFolder = await driveSvc.CreateFolderAsync(user, request.Name.Trim(), request.ParentId); return new DriveFolderResponse