From 4fcadc7e949350b6abf4ec74dfe21bf92ffb0b8c Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 17 Jun 2015 12:21:47 +0200 Subject: [PATCH] fixes: U4-5591 Error Change premissions on many nodes. 500 - The server supports a maximum of 2100 parameters --- .../Persistence/Repositories/PermissionRepository.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs b/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs index 10c20663e4..0463312982 100644 --- a/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs @@ -127,8 +127,12 @@ namespace Umbraco.Core.Persistence.Repositories var db = _unitOfWork.Database; using (var trans = db.GetTransaction()) { - db.Execute("DELETE FROM umbracoUser2NodePermission WHERE userId=@userId AND nodeId in (@nodeIds)", - new {userId = userId, nodeIds = entityIds}); + //we need to batch these in groups of 2000 so we don't exceed the max 2100 limit + foreach (var idGroup in entityIds.InGroupsOf(2000)) + { + db.Execute("DELETE FROM umbracoUser2NodePermission WHERE userId=@userId AND nodeId in (@nodeIds)", + new { userId = userId, nodeIds = idGroup }); + } var toInsert = new List(); foreach (var p in permissions)