diff --git a/backend/src/main/java/io/dataease/auth/server/AuthServer.java b/backend/src/main/java/io/dataease/auth/server/AuthServer.java index b94eca461e..53dffa07f1 100644 --- a/backend/src/main/java/io/dataease/auth/server/AuthServer.java +++ b/backend/src/main/java/io/dataease/auth/server/AuthServer.java @@ -77,6 +77,7 @@ public class AuthServer implements AuthApi { ldapAddRequest.setEnabled(1L); ldapAddRequest.setDeptId(1L); ldapAddRequest.setRoleIds(new ArrayList(){{add(2L);}}); + sysUserService.validateExistUser(ldapUserEntity.getUserName(), ldapUserEntity.getEmail()); sysUserService.saveLdapUsers(ldapAddRequest); } diff --git a/backend/src/main/java/io/dataease/plugins/server/SSOServer.java b/backend/src/main/java/io/dataease/plugins/server/SSOServer.java index b50257be85..a102174941 100644 --- a/backend/src/main/java/io/dataease/plugins/server/SSOServer.java +++ b/backend/src/main/java/io/dataease/plugins/server/SSOServer.java @@ -54,6 +54,7 @@ public class SSOServer { SSOUserInfo ssoUserInfo = oidcXpackService.requestUserInfo(config, ssoToken.getAccessToken()); SysUserEntity sysUserEntity = authUserService.getUserBySub(ssoUserInfo.getSub()); if(null == sysUserEntity){ + sysUserService.validateExistUser(ssoUserInfo.getUsername(), ssoUserInfo.getEmail()); sysUserService.saveOIDCUser(ssoUserInfo); sysUserEntity = authUserService.getUserBySub(ssoUserInfo.getSub()); } diff --git a/backend/src/main/java/io/dataease/service/sys/SysUserService.java b/backend/src/main/java/io/dataease/service/sys/SysUserService.java index 9c704a4883..2a102f7d94 100644 --- a/backend/src/main/java/io/dataease/service/sys/SysUserService.java +++ b/backend/src/main/java/io/dataease/service/sys/SysUserService.java @@ -299,6 +299,33 @@ public class SysUserService { return null; } + public void validateExistUser(String userName, String email) { + SysUserExample example = new SysUserExample(); + if (StringUtils.isNotBlank(userName)) { + example.createCriteria().andUsernameEqualTo(userName); + List users = sysUserMapper.selectByExample(example); + if(CollectionUtils.isNotEmpty(users)) { + throw new RuntimeException("用户ID【"+userName+"】已存在,请联系管理员"); + } + } + + /* if (StringUtils.isNotBlank(nickName)) { + example.createCriteria().andNickNameEqualTo(nickName); + List users = sysUserMapper.selectByExample(example); + if(CollectionUtils.isNotEmpty(users)) { + throw new RuntimeException("用户姓名【"+nickName+"】已存在,请联系管理员"); + } + } */ + + if (StringUtils.isNotBlank(email)) { + example.createCriteria().andEmailEqualTo(email); + List users = sysUserMapper.selectByExample(example); + if(CollectionUtils.isNotEmpty(users)) { + throw new RuntimeException("用户邮箱【"+email+"】已存在,请联系管理员"); + } + } + } + public List users(List userIds) { return userIds.stream().map(sysUserMapper::selectByPrimaryKey).collect(Collectors.toList());