Files
Umbraco-CMS/src/Umbraco.Infrastructure/Compose/PublicAccessComponent.cs
Bjarke Berg e3c8bd8ced Merge remote-tracking branch 'origin/v8/dev' into netcore/dev
# Conflicts:
#	src/Umbraco.Core/Cache/MemberCacheRefresher.cs
#	src/Umbraco.Infrastructure/Compose/NotificationsComponent.cs
#	src/Umbraco.Infrastructure/Search/ExamineComponent.cs
#	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
#	src/Umbraco.Web/Security/MembershipHelper.cs
#	src/Umbraco.Web/Security/Providers/UmbracoMembershipProvider.cs
2020-09-23 12:54:13 +02:00

43 lines
1.5 KiB
C#

using System;
using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
namespace Umbraco.Web.Compose
{
public sealed class PublicAccessComponent : IComponent
{
private readonly IPublicAccessService _publicAccessService;
public PublicAccessComponent(IPublicAccessService publicAccessService)
{
_publicAccessService = publicAccessService ?? throw new ArgumentNullException(nameof(publicAccessService));
}
public void Initialize()
{
MemberGroupService.Saved += MemberGroupService_Saved;
}
public void Terminate()
{
MemberGroupService.Saved -= MemberGroupService_Saved;
}
private void MemberGroupService_Saved(IMemberGroupService sender, Core.Events.SaveEventArgs<Core.Models.IMemberGroup> e)
{
foreach (var grp in e.SavedEntities)
{
//check if the name has changed
if (grp.AdditionalData.ContainsKey("previousName")
&& grp.AdditionalData["previousName"] != null
&& grp.AdditionalData["previousName"].ToString().IsNullOrWhiteSpace() == false
&& grp.AdditionalData["previousName"].ToString() != grp.Name)
{
_publicAccessService.RenameMemberGroupRoleRules(grp.AdditionalData["previousName"].ToString(), grp.Name);
}
}
}
}
}