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.
This commit is contained in:
Matteo Piovanelli
2021-09-03 09:01:01 +02:00
committed by GitHub
parent 08597931e6
commit b00678abf4

View File

@@ -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);