mirror of https://gitee.com/stylefeng/roses
【7.2.3】更新解除冻结功能
parent
6e91ba0642
commit
64f9d6d956
|
@ -45,6 +45,7 @@ public class LoginRequest extends BaseRequest {
|
||||||
* 账号
|
* 账号
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "账号不能为空")
|
@NotBlank(message = "账号不能为空")
|
||||||
|
@NotBlank(message = "账号不能为空", groups = cancelFreeze.class)
|
||||||
@ChineseDescription("账号")
|
@ChineseDescription("账号")
|
||||||
private String account;
|
private String account;
|
||||||
|
|
||||||
|
@ -85,4 +86,10 @@ public class LoginRequest extends BaseRequest {
|
||||||
@ChineseDescription("租户编码")
|
@ChineseDescription("租户编码")
|
||||||
private String tenantCode;
|
private String tenantCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消账号冻结
|
||||||
|
*/
|
||||||
|
public @interface cancelFreeze {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,4 +149,10 @@ public class SysUserDTO {
|
||||||
@ChineseDescription("是否是超级管理员,超级管理员可以拥有所有权限(Y-是,N-否)")
|
@ChineseDescription("是否是超级管理员,超级管理员可以拥有所有权限(Y-是,N-否)")
|
||||||
private String superAdminFlag;
|
private String superAdminFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否密码重试次数过多,当密码重试次数超过5次这个状态就会激活
|
||||||
|
*/
|
||||||
|
@ChineseDescription("是否密码重试次数过多")
|
||||||
|
private Boolean loginErrorCountFlag = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -183,7 +183,7 @@ public class LoginController {
|
||||||
* @date 2022/1/22 16:40
|
* @date 2022/1/22 16:40
|
||||||
*/
|
*/
|
||||||
@PostResource(name = "取消帐号冻结", path = "/cancelFreeze")
|
@PostResource(name = "取消帐号冻结", path = "/cancelFreeze")
|
||||||
public ResponseData<?> cancelFreeze(@RequestBody LoginRequest loginRequest) {
|
public ResponseData<?> cancelFreeze(@RequestBody @Validated(LoginRequest.cancelFreeze.class) LoginRequest loginRequest) {
|
||||||
authServiceApi.cancelFreeze(loginRequest);
|
authServiceApi.cancelFreeze(loginRequest);
|
||||||
return new SuccessResponseData<>();
|
return new SuccessResponseData<>();
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
||||||
|
import cn.stylefeng.roses.kernel.auth.api.constants.LoginCacheConstants;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
|
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
|
||||||
|
@ -149,6 +150,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
@Resource
|
@Resource
|
||||||
private ExpandApi expandApi;
|
private ExpandApi expandApi;
|
||||||
|
|
||||||
|
@Resource(name = "loginErrorCountCacheApi")
|
||||||
|
private CacheOperatorApi<Integer> loginErrorCountCacheApi;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void add(SysUserRequest sysUserRequest) {
|
public void add(SysUserRequest sysUserRequest) {
|
||||||
|
@ -461,6 +465,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
|
|
||||||
Page<SysUserDTO> userPage = this.baseMapper.findUserPage(PageFactory.defaultPage(), sysUserRequest);
|
Page<SysUserDTO> userPage = this.baseMapper.findUserPage(PageFactory.defaultPage(), sysUserRequest);
|
||||||
|
|
||||||
|
// 获取所有被禁用的用户,如果有被禁用的用户,则返回被锁状态
|
||||||
|
for (SysUserDTO record : userPage.getRecords()) {
|
||||||
|
if (loginErrorCountCacheApi.contains(record.getAccount())) {
|
||||||
|
Integer errorCount = loginErrorCountCacheApi.get(record.getAccount());
|
||||||
|
if (errorCount >= LoginCacheConstants.MAX_ERROR_LOGIN_COUNT) {
|
||||||
|
record.setLoginErrorCountFlag(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return PageResultFactory.createPageResult(userPage);
|
return PageResultFactory.createPageResult(userPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue