| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- 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.Users
- {
- public class UserPermissionCacheItemInvalidator :
- IEventHandler<EntityChangedEventData<PermissionSetting>>,
- IEventHandler<EntityChangedEventData<UserRole>>,
- IEventHandler<EntityDeletedEventData<UserBase>>,
- ITransientDependency
- {
- private readonly ICacheManager _cacheManager;
- public UserPermissionCacheItemInvalidator(ICacheManager cacheManager)
- {
- _cacheManager = cacheManager;
- }
- public void HandleEvent(EntityChangedEventData<PermissionSetting> eventData)
- {
- var cacheKey = eventData.Entity.MasterValue + "@" + (eventData.Entity.TenantId ?? 0);
- _cacheManager.GetUserPermissionCache().Remove(cacheKey);
- }
- public void HandleEvent(EntityChangedEventData<UserRole> eventData)
- {
- var cacheKey = eventData.Entity.UserId + "@" + (eventData.Entity.TenantId ?? 0);
- _cacheManager.GetUserPermissionCache().Remove(cacheKey);
- }
- public void HandleEvent(EntityDeletedEventData<UserBase> eventData)
- {
- var cacheKey = eventData.Entity.Id + "@" + (eventData.Entity.TenantId ?? 0);
- _cacheManager.GetUserPermissionCache().Remove(cacheKey);
- }
- }
- }
|