| 1234567891011121314151617181920212223242526272829303132333435363738 |
- using Abp.Dependency;
- using Abp.Domain.Repositories;
- using Abp.Domain.Uow;
- using Abp.Events.Bus.Entities;
- using Abp.Events.Bus.Handlers;
- namespace IwbZero.Authorization.Base.Users
- {
- /// <summary>
- /// Removes the user from all user roles when a user is deleted.
- /// </summary>
- public class UserRoleRemover :
- IEventHandler<EntityDeletedEventData<UserBase>>,
- ITransientDependency
- {
- private readonly IRepository<UserRole, long> _userRoleRepository;
- private readonly IUnitOfWorkManager _unitOfWorkManager;
- public UserRoleRemover(
- IUnitOfWorkManager unitOfWorkManager,
- IRepository<UserRole, long> userRoleRepository)
- {
- _unitOfWorkManager = unitOfWorkManager;
- _userRoleRepository = userRoleRepository;
- }
- [UnitOfWork]
- public virtual void HandleEvent(EntityDeletedEventData<UserBase> eventData)
- {
- using (_unitOfWorkManager.Current.SetTenantId(eventData.Entity.TenantId))
- {
- _userRoleRepository.Delete(
- ur => ur.UserId == eventData.Entity.Id
- );
- }
- }
- }
- }
|