feat: 用户管理姓名字段增加重复验证

This commit is contained in:
fit2cloud-chenyw 2021-11-01 14:29:26 +08:00
parent ca34067728
commit 2395741707
6 changed files with 23 additions and 5 deletions

View File

@ -73,7 +73,7 @@ public class AuthServer implements AuthApi {
ldapAddRequest.setEnabled(1L); ldapAddRequest.setEnabled(1L);
// ldapAddRequest.setDeptId(1L); // ldapAddRequest.setDeptId(1L);
ldapAddRequest.setRoleIds(new ArrayList<Long>(){{add(2L);}}); ldapAddRequest.setRoleIds(new ArrayList<Long>(){{add(2L);}});
sysUserService.validateExistUser(ldapUserEntity.getUsername(), ldapUserEntity.getEmail()); sysUserService.validateExistUser(ldapUserEntity.getUsername(), ldapUserEntity.getNickname(), ldapUserEntity.getEmail());
sysUserService.saveLdapUsers(ldapAddRequest); sysUserService.saveLdapUsers(ldapAddRequest);
} }

View File

@ -68,7 +68,7 @@ public class SSOServer {
SysUserEntity sysUserEntity = authUserService.getUserBySub(ssoUserInfo.getSub()); SysUserEntity sysUserEntity = authUserService.getUserBySub(ssoUserInfo.getSub());
if(null == sysUserEntity){ if(null == sysUserEntity){
sysUserService.validateExistUser(ssoUserInfo.getUsername(), ssoUserInfo.getEmail()); sysUserService.validateExistUser(ssoUserInfo.getUsername(), ssoUserInfo.getNickName(), ssoUserInfo.getEmail());
sysUserService.saveOIDCUser(ssoUserInfo); sysUserService.saveOIDCUser(ssoUserInfo);
sysUserEntity = authUserService.getUserBySub(ssoUserInfo.getSub()); sysUserEntity = authUserService.getUserBySub(ssoUserInfo.getSub());
} }

View File

@ -87,6 +87,7 @@ public class SysUserService {
public int save(SysUserCreateRequest request) { public int save(SysUserCreateRequest request) {
checkUsername(request); checkUsername(request);
checkEmail(request); checkEmail(request);
checkNickName(request);
SysUser user = BeanUtils.copyBean(new SysUser(), request); SysUser user = BeanUtils.copyBean(new SysUser(), request);
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
user.setCreateTime(now); user.setCreateTime(now);
@ -183,6 +184,7 @@ public class SysUserService {
public int update(SysUserCreateRequest request) { public int update(SysUserCreateRequest request) {
checkUsername(request); checkUsername(request);
checkEmail(request); checkEmail(request);
checkNickName(request);
if (StringUtils.isEmpty(request.getPassword())) { if (StringUtils.isEmpty(request.getPassword())) {
request.setPassword(null); request.setPassword(null);
} }
@ -300,7 +302,7 @@ public class SysUserService {
return null; return null;
} }
public void validateExistUser(String userName, String email) { public void validateExistUser(String userName, String nickName, String email) {
SysUserExample example = new SysUserExample(); SysUserExample example = new SysUserExample();
if (StringUtils.isNotBlank(userName)) { if (StringUtils.isNotBlank(userName)) {
example.createCriteria().andUsernameEqualTo(userName); example.createCriteria().andUsernameEqualTo(userName);
@ -310,13 +312,13 @@ public class SysUserService {
} }
} }
/* if (StringUtils.isNotBlank(nickName)) { if (StringUtils.isNotBlank(nickName)) {
example.createCriteria().andNickNameEqualTo(nickName); example.createCriteria().andNickNameEqualTo(nickName);
List<SysUser> users = sysUserMapper.selectByExample(example); List<SysUser> users = sysUserMapper.selectByExample(example);
if(CollectionUtils.isNotEmpty(users)) { if(CollectionUtils.isNotEmpty(users)) {
throw new RuntimeException("用户姓名【"+nickName+"】已存在,请联系管理员"); throw new RuntimeException("用户姓名【"+nickName+"】已存在,请联系管理员");
} }
} */ }
example.clear(); example.clear();
if (StringUtils.isNotBlank(email)) { if (StringUtils.isNotBlank(email)) {
example.createCriteria().andEmailEqualTo(email); example.createCriteria().andEmailEqualTo(email);
@ -366,5 +368,18 @@ public class SysUserService {
} }
} }
private void checkNickName(SysUserCreateRequest request) {
SysUserExample sysUserExample = new SysUserExample();
SysUserExample.Criteria criteria = sysUserExample.createCriteria();
if (request.getUserId() != null) {
criteria.andUserIdNotEqualTo(request.getUserId());
}
criteria.andNickNameEqualTo(request.getNickName());
List<SysUser> sysUsers = sysUserMapper.selectByExample(sysUserExample);
if (CollectionUtils.isNotEmpty(sysUsers)) {
throw new RuntimeException(Translator.get("i18n_nickname_exists"));
}
}
} }

View File

@ -244,6 +244,7 @@ i18n_union_field_exists=The same field can't in two dataset
i18n_cron_time_error=Start time can't greater then end time i18n_cron_time_error=Start time can't greater then end time
i18n_auth_source_be_canceled=This Auth Resource Already Be Canceled,Please Connect Admin i18n_auth_source_be_canceled=This Auth Resource Already Be Canceled,Please Connect Admin
i18n_username_exists=ID is already exists i18n_username_exists=ID is already exists
i18n_nickname_exists=NickName is already exists
i18n_email_exists=Email is already exists i18n_email_exists=Email is already exists
i18n_ds_name_exists=Datasource name used i18n_ds_name_exists=Datasource name used
i18n_sync_job_exists=There is already a synchronization task running, please try again later i18n_sync_job_exists=There is already a synchronization task running, please try again later

View File

@ -243,6 +243,7 @@ i18n_union_field_exists=两个数据集之间关联不能出现多次相同字
i18n_cron_time_error=开始时间不能大于结束时间 i18n_cron_time_error=开始时间不能大于结束时间
i18n_auth_source_be_canceled=本用户当前资源所有授权权限已经被取消,如需再次开通,请联系管理员 i18n_auth_source_be_canceled=本用户当前资源所有授权权限已经被取消,如需再次开通,请联系管理员
i18n_username_exists=用户 ID 已存在 i18n_username_exists=用户 ID 已存在
i18n_nickname_exists=用户 姓名 已存在
i18n_email_exists=邮箱已存在 i18n_email_exists=邮箱已存在
i18n_ds_name_exists=数据源名称已被使用 i18n_ds_name_exists=数据源名称已被使用
i18n_sync_job_exists=已经有同步任务在运行,稍后重试 i18n_sync_job_exists=已经有同步任务在运行,稍后重试

View File

@ -246,6 +246,7 @@ i18n_union_field_exists=兩個數據集之間關聯不能出現多次相同字
i18n_cron_time_error=開始時間不能大於結束時間 i18n_cron_time_error=開始時間不能大於結束時間
i18n_auth_source_be_canceled=本用户当前资源所有授权权限已经被取消,如需再次开通,请联系管理员 i18n_auth_source_be_canceled=本用户当前资源所有授权权限已经被取消,如需再次开通,请联系管理员
i18n_username_exists=用戶ID已存在 i18n_username_exists=用戶ID已存在
i18n_nickname_exists=用戶 姓名 已存在
i18n_email_exists=郵箱已存在 i18n_email_exists=郵箱已存在
i18n_ds_name_exists=數據源名稱已被使用 i18n_ds_name_exists=數據源名稱已被使用
i18n_sync_job_exists=已經有同步任務在運行,稍後重試 i18n_sync_job_exists=已經有同步任務在運行,稍後重試