Browse Source

Add `UserDeletedEventHandler` to `SettingManagement.Application`.

pull/18051/head
maliming 3 years ago
parent
commit
95e7b1bbc6
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 2
      modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserDeletedEventHandler.cs
  2. 1
      modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.csproj
  3. 4
      modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/AbpSettingManagementApplicationModule.cs
  4. 25
      modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/UserDeletedEventHandler.cs
  5. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs
  6. 14
      modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs
  7. 12
      modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs

2
modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserDeletedEventHandler.cs

@ -20,6 +20,6 @@ public class UserDeletedEventHandler :
public async Task HandleEventAsync(EntityDeletedEto<UserEto> eventData)
{
await PermissionManager.DeleteAsync(UserPermissionValueProvider.ProviderName, eventData.Entity.Name);
await PermissionManager.DeleteAsync(UserPermissionValueProvider.ProviderName, eventData.Entity.Id.ToString());
}
}

1
modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.csproj

@ -13,6 +13,7 @@
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj" />
<ProjectReference Include="..\Volo.Abp.SettingManagement.Application.Contracts\Volo.Abp.SettingManagement.Application.Contracts.csproj" />
<ProjectReference Include="..\Volo.Abp.SettingManagement.Domain\Volo.Abp.SettingManagement.Domain.csproj" />
<ProjectReference Include="..\..\..\users\src\Volo.Abp.Users.Abstractions\Volo.Abp.Users.Abstractions.csproj" />
</ItemGroup>
</Project>

4
modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/AbpSettingManagementApplicationModule.cs

@ -2,6 +2,7 @@
using Volo.Abp.Emailing;
using Volo.Abp.Modularity;
using Volo.Abp.Timing;
using Volo.Abp.Users;
namespace Volo.Abp.SettingManagement;
@ -10,7 +11,8 @@ namespace Volo.Abp.SettingManagement;
typeof(AbpSettingManagementDomainModule),
typeof(AbpSettingManagementApplicationContractsModule),
typeof(AbpEmailingModule),
typeof(AbpTimingModule)
typeof(AbpTimingModule),
typeof(AbpUsersAbstractionModule)
)]
public class AbpSettingManagementApplicationModule : AbpModule
{

25
modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/UserDeletedEventHandler.cs

@ -0,0 +1,25 @@
using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events.Distributed;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Users;
namespace Volo.Abp.SettingManagement;
public class UserDeletedEventHandler :
IDistributedEventHandler<EntityDeletedEto<UserEto>>,
ITransientDependency
{
protected ISettingManager SettingManager { get; }
public UserDeletedEventHandler(ISettingManager settingManager)
{
SettingManager = settingManager;
}
public async Task HandleEventAsync(EntityDeletedEto<UserEto> eventData)
{
await SettingManager.DeleteAsync(UserPermissionValueProvider.ProviderName, eventData.Entity.Id.ToString());
}
}

2
modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs

@ -12,4 +12,6 @@ public interface ISettingManager
Task<List<SettingValue>> GetAllAsync([NotNull] string providerName, [CanBeNull] string providerKey, bool fallback = true);
Task SetAsync([NotNull] string name, [CanBeNull] string value, [NotNull] string providerName, [CanBeNull] string providerKey, bool forceToSet = false);
Task DeleteAsync(string providerName, string providerKey);
}

14
modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs

@ -13,6 +13,7 @@ public class SettingManager : ISettingManager, ISingletonDependency
{
protected ISettingDefinitionManager SettingDefinitionManager { get; }
protected ISettingEncryptionService SettingEncryptionService { get; }
protected ISettingManagementStore SettingManagementStore { get; }
protected List<ISettingManagementProvider> Providers => _lazyProviders.Value;
protected SettingManagementOptions Options { get; }
private readonly Lazy<List<ISettingManagementProvider>> _lazyProviders;
@ -21,10 +22,12 @@ public class SettingManager : ISettingManager, ISingletonDependency
IOptions<SettingManagementOptions> options,
IServiceProvider serviceProvider,
ISettingDefinitionManager settingDefinitionManager,
ISettingEncryptionService settingEncryptionService)
ISettingEncryptionService settingEncryptionService,
ISettingManagementStore settingManagementStore)
{
SettingDefinitionManager = settingDefinitionManager;
SettingEncryptionService = settingEncryptionService;
SettingManagementStore = settingManagementStore;
Options = options.Value;
//TODO: Instead, use IServiceScopeFactory and create a scope..?
@ -160,6 +163,15 @@ public class SettingManager : ISettingManager, ISingletonDependency
}
}
public virtual async Task DeleteAsync(string providerName, string providerKey)
{
var settings = await SettingManagementStore.GetListAsync(providerName, providerKey);
foreach (var setting in settings)
{
await SettingManagementStore.DeleteAsync(setting.Name, providerName, providerKey);
}
}
protected virtual async Task<string> GetOrNullInternalAsync(string name, string providerName, string providerKey, bool fallback = true)
{
var setting = await SettingDefinitionManager.GetAsync(name);

12
modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs

@ -186,4 +186,16 @@ public class SettingManager_User_Tests : SettingsTestBase
(await _settingManager.GetOrNullForUserAsync("MySettingWithoutInherit", _testData.User2Id)).ShouldBeNull(); //Does not inherit!
(await _settingManager.GetOrNullGlobalAsync("MySettingWithoutInherit")).ShouldBe("default-store-value");
}
[Fact]
public async Task DeleteAsync()
{
(await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)).ShouldBe("user1-store-value");
(await _settingManager.GetOrNullForUserAsync("MySettingWithoutInherit", _testData.User1Id)).ShouldBe("user1-store-value");
await _settingManager.DeleteAsync(UserSettingValueProvider.ProviderName, _testData.User1Id.ToString());
(await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)).ShouldNotBe("user1-store-value");
(await _settingManager.GetOrNullForUserAsync("MySettingWithoutInherit", _testData.User1Id)).ShouldNotBe("user1-store-value");
}
}

Loading…
Cancel
Save