| 1234567891011121314151617181920212223242526272829303132333435 |
- using Abp.Dependency;
- using Abp.Events.Bus.Entities;
- using Abp.Events.Bus.Handlers;
- using Abp.Runtime.Caching;
- using IwbZero.Authorization.Base.Permissions;
- using IwbZero.Runtime.Caching;
- namespace IwbZero.Authorization.Base.Roles
- {
- public class RolePermissionCacheItemInvalidator :
- IEventHandler<EntityChangedEventData<PermissionSetting>>,
- IEventHandler<EntityDeletedEventData<RoleBase>>,
- ITransientDependency
- {
- private readonly ICacheManager _cacheManager;
- public RolePermissionCacheItemInvalidator(ICacheManager cacheManager)
- {
- _cacheManager = cacheManager;
- }
- public void HandleEvent(EntityChangedEventData<PermissionSetting> eventData)
- {
- var cacheKey = eventData.Entity.MasterValue + "@" + (eventData.Entity.TenantId ?? 0);
- _cacheManager.GetRolePermissionCache().Remove(cacheKey);
- }
- public void HandleEvent(EntityDeletedEventData<RoleBase> eventData)
- {
- var cacheKey = eventData.Entity.Id + "@" + (eventData.Entity.TenantId ?? 0);
- _cacheManager.GetRolePermissionCache().Remove(cacheKey);
- }
- }
- }
|