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 = "账号不能为空", groups = cancelFreeze.class)
|
||||
@ChineseDescription("账号")
|
||||
private String account;
|
||||
|
||||
|
@ -85,4 +86,10 @@ public class LoginRequest extends BaseRequest {
|
|||
@ChineseDescription("租户编码")
|
||||
private String tenantCode;
|
||||
|
||||
/**
|
||||
* 取消账号冻结
|
||||
*/
|
||||
public @interface cancelFreeze {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -149,4 +149,10 @@ public class SysUserDTO {
|
|||
@ChineseDescription("是否是超级管理员,超级管理员可以拥有所有权限(Y-是,N-否)")
|
||||
private String superAdminFlag;
|
||||
|
||||
/**
|
||||
* 是否密码重试次数过多,当密码重试次数超过5次这个状态就会激活
|
||||
*/
|
||||
@ChineseDescription("是否密码重试次数过多")
|
||||
private Boolean loginErrorCountFlag = false;
|
||||
|
||||
}
|
||||
|
|
|
@ -183,7 +183,7 @@ public class LoginController {
|
|||
* @date 2022/1/22 16:40
|
||||
*/
|
||||
@PostResource(name = "取消帐号冻结", path = "/cancelFreeze")
|
||||
public ResponseData<?> cancelFreeze(@RequestBody LoginRequest loginRequest) {
|
||||
public ResponseData<?> cancelFreeze(@RequestBody @Validated(LoginRequest.cancelFreeze.class) LoginRequest loginRequest) {
|
||||
authServiceApi.cancelFreeze(loginRequest);
|
||||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
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.enums.DataScopeTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
|
||||
|
@ -149,6 +150,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
@Resource
|
||||
private ExpandApi expandApi;
|
||||
|
||||
@Resource(name = "loginErrorCountCacheApi")
|
||||
private CacheOperatorApi<Integer> loginErrorCountCacheApi;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
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);
|
||||
|
||||
// 获取所有被禁用的用户,如果有被禁用的用户,则返回被锁状态
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue