From b00678abf4c00970195fd421c7aa513304308938 Mon Sep 17 00:00:00 2001 From: Matteo Piovanelli Date: Fri, 3 Sep 2021 09:01:01 +0200 Subject: [PATCH] Force enumeration of list of permissions. Without this, imported permissions (#8492) would always replace existing ones: i.e. if an existing permission is not in the list being imported it would be removed for the role. --- .../Modules/Orchard.Roles/Recipes/Executors/RolesStep.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Recipes/Executors/RolesStep.cs b/src/Orchard.Web/Modules/Orchard.Roles/Recipes/Executors/RolesStep.cs index 5a305a8ee..42ac238b5 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Recipes/Executors/RolesStep.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Recipes/Executors/RolesStep.cs @@ -40,7 +40,7 @@ namespace Orchard.Roles.Recipes.Executors { var permissionsValid = permissions.Where(permission => installedPermissions.Any(x => x.Name == permission)).ToList(); // Union to keep existing permissions. - _roleService.UpdateRole(role.Id, role.Name, permissionsValid.Union(role.RolesPermissions.Select(p => p.Permission.Name))); + _roleService.UpdateRole(role.Id, role.Name, permissionsValid.Union(role.RolesPermissions.Select(p => p.Permission.Name)).ToList()); } catch (Exception ex) { Logger.Error(ex, "Error while importing role '{0}'.", roleName);