From 2395741707f7ae655a68157a8f8b9457720c8d61 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 1 Nov 2021 14:29:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=A7=93=E5=90=8D=E5=AD=97=E6=AE=B5=E5=A2=9E=E5=8A=A0=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/auth/server/AuthServer.java | 2 +- .../io/dataease/plugins/server/SSOServer.java | 2 +- .../dataease/service/sys/SysUserService.java | 21 ++++++++++++++++--- .../resources/i18n/messages_en_US.properties | 1 + .../resources/i18n/messages_zh_CN.properties | 1 + .../resources/i18n/messages_zh_TW.properties | 1 + 6 files changed, 23 insertions(+), 5 deletions(-) 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 3e0e3d1d6a..219a9c5a47 100644 --- a/backend/src/main/java/io/dataease/auth/server/AuthServer.java +++ b/backend/src/main/java/io/dataease/auth/server/AuthServer.java @@ -73,7 +73,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.validateExistUser(ldapUserEntity.getUsername(), ldapUserEntity.getNickname(), 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 0126d03e52..39566e0119 100644 --- a/backend/src/main/java/io/dataease/plugins/server/SSOServer.java +++ b/backend/src/main/java/io/dataease/plugins/server/SSOServer.java @@ -68,7 +68,7 @@ public class SSOServer { SysUserEntity sysUserEntity = authUserService.getUserBySub(ssoUserInfo.getSub()); if(null == sysUserEntity){ - sysUserService.validateExistUser(ssoUserInfo.getUsername(), ssoUserInfo.getEmail()); + sysUserService.validateExistUser(ssoUserInfo.getUsername(), ssoUserInfo.getNickName(), 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 7000988ae0..e98ca355f5 100644 --- a/backend/src/main/java/io/dataease/service/sys/SysUserService.java +++ b/backend/src/main/java/io/dataease/service/sys/SysUserService.java @@ -87,6 +87,7 @@ public class SysUserService { public int save(SysUserCreateRequest request) { checkUsername(request); checkEmail(request); + checkNickName(request); SysUser user = BeanUtils.copyBean(new SysUser(), request); long now = System.currentTimeMillis(); user.setCreateTime(now); @@ -183,6 +184,7 @@ public class SysUserService { public int update(SysUserCreateRequest request) { checkUsername(request); checkEmail(request); + checkNickName(request); if (StringUtils.isEmpty(request.getPassword())) { request.setPassword(null); } @@ -300,7 +302,7 @@ public class SysUserService { return null; } - public void validateExistUser(String userName, String email) { + public void validateExistUser(String userName, String nickName, String email) { SysUserExample example = new SysUserExample(); if (StringUtils.isNotBlank(userName)) { example.createCriteria().andUsernameEqualTo(userName); @@ -310,13 +312,13 @@ public class SysUserService { } } - /* if (StringUtils.isNotBlank(nickName)) { + if (StringUtils.isNotBlank(nickName)) { example.createCriteria().andNickNameEqualTo(nickName); List users = sysUserMapper.selectByExample(example); if(CollectionUtils.isNotEmpty(users)) { throw new RuntimeException("用户姓名【"+nickName+"】已存在,请联系管理员"); } - } */ + } example.clear(); if (StringUtils.isNotBlank(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 sysUsers = sysUserMapper.selectByExample(sysUserExample); + if (CollectionUtils.isNotEmpty(sysUsers)) { + throw new RuntimeException(Translator.get("i18n_nickname_exists")); + } + } + } diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index 443db6a5d3..1a7a60cf2d 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -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_auth_source_be_canceled=This Auth Resource Already Be Canceled,Please Connect Admin i18n_username_exists=ID is already exists +i18n_nickname_exists=NickName is already exists i18n_email_exists=Email is already exists i18n_ds_name_exists=Datasource name used i18n_sync_job_exists=There is already a synchronization task running, please try again later diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 7d9b47b654..8be33cb6ea 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -243,6 +243,7 @@ i18n_union_field_exists=两个数据集之间关联不能出现多次相同字 i18n_cron_time_error=开始时间不能大于结束时间 i18n_auth_source_be_canceled=本用户当前资源所有授权权限已经被取消,如需再次开通,请联系管理员 i18n_username_exists=用户 ID 已存在 +i18n_nickname_exists=用户 姓名 已存在 i18n_email_exists=邮箱已存在 i18n_ds_name_exists=数据源名称已被使用 i18n_sync_job_exists=已经有同步任务在运行,稍后重试 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index cf99c59593..2fe6ca5c5b 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -246,6 +246,7 @@ i18n_union_field_exists=兩個數據集之間關聯不能出現多次相同字 i18n_cron_time_error=開始時間不能大於結束時間 i18n_auth_source_be_canceled=本用户当前资源所有授权权限已经被取消,如需再次开通,请联系管理员 i18n_username_exists=用戶ID已存在 +i18n_nickname_exists=用戶 姓名 已存在 i18n_email_exists=郵箱已存在 i18n_ds_name_exists=數據源名稱已被使用 i18n_sync_job_exists=已經有同步任務在運行,稍後重試