😎增加强制下线账号,包括修改用户密码、重置密码、删除用户、修改用户角色

This commit is contained in:
zuohuaijun 2025-03-29 10:44:55 +08:00
parent 23c60abe7b
commit f781a9f06f
2 changed files with 15 additions and 3 deletions

View File

@ -99,7 +99,7 @@ public class SysOnlineUserService : IDynamicApiController, ITransient
/// <param name="userId"></param>
/// <returns></returns>
[NonAction]
public async Task ForceOffline(long userId)
public async Task ForceOfflineByUserId(long userId)
{
var users = await _sysOnlineUerRep.GetListAsync(u => u.UserId == userId);
foreach (var user in users)

View File

@ -152,7 +152,7 @@ public class SysUserService : IDynamicApiController, ITransient
var user = await _sysUserRep.AsQueryable().ClearFilter().FirstAsync(u => u.Id == input.Id);
var roleIds = await _sysUserRoleService.GetUserRoleIdList(input.Id);
if (input.OrgId != user.OrgId || !input.RoleIdList.OrderBy(u => u).SequenceEqual(roleIds.OrderBy(u => u)))
await _sysOnlineUserService.ForceOffline(input.Id);
await _sysOnlineUserService.ForceOfflineByUserId(input.Id);
// 更新域账号
await _sysUserLdapService.AddUserLdap(user.TenantId!.Value, user.Id, user.Account, input.DomainAccount);
@ -197,6 +197,9 @@ public class SysUserService : IDynamicApiController, ITransient
// 设置账号Token黑名单
await SetUserBlackList(user, StatusEnum.Disable);
// 强制账号下线
await _sysOnlineUserService.ForceOfflineByUserId(user.Id);
await _sysUserRep.DeleteAsync(user);
// 删除用户角色
@ -281,7 +284,7 @@ public class SysUserService : IDynamicApiController, ITransient
if (status != StatusEnum.Enable)
{
sysCacheService.Set($"{CacheConst.KeyUserBlacklist}{user.Id}", $"{user.RealName}-{user.Phone}");
await _sysOnlineUserService.ForceOffline(user.Id); // 强制账号下线
await _sysOnlineUserService.ForceOfflineByUserId(user.Id); // 强制账号下线
}
else
{
@ -304,6 +307,9 @@ public class SysUserService : IDynamicApiController, ITransient
await _sysUserRoleService.GrantUserRole(input);
// 强制账号下线
await _sysOnlineUserService.ForceOfflineByUserId(input.UserId);
// 发布更新用户角色事件
await _eventPublisher.PublishAsync(UserEventTypeEnum.UpdateRole, input);
}
@ -366,6 +372,9 @@ public class SysUserService : IDynamicApiController, ITransient
// 发布修改用户密码事件
await _eventPublisher.PublishAsync(UserEventTypeEnum.ChangePwd, input);
// 强制账号下线
await _sysOnlineUserService.ForceOfflineByUserId(user.Id);
return rows;
}
@ -387,6 +396,9 @@ public class SysUserService : IDynamicApiController, ITransient
var keyPasswordErrorTimes = $"{CacheConst.KeyPasswordErrorTimes}{user.Account}";
_sysCacheService.Remove(keyPasswordErrorTimes);
// 强制账号下线
await _sysOnlineUserService.ForceOfflineByUserId(user.Id);
// 发布重置用户密码事件
await _eventPublisher.PublishAsync(UserEventTypeEnum.ResetPwd, input);