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/db/migration/V27__de1.4.sql b/backend/src/main/resources/db/migration/V27__de1.4.sql index c63489b1e5..69a25ceedc 100644 --- a/backend/src/main/resources/db/migration/V27__de1.4.sql +++ b/backend/src/main/resources/db/migration/V27__de1.4.sql @@ -43,14 +43,15 @@ COMMIT; ALTER TABLE `chart_view` MODIFY COLUMN `name` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称' AFTER `id`, -MODIFY COLUMN `title` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'EChart标题' AFTER `result_mode`; +MODIFY COLUMN `title` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'EChart标题' AFTER `name`; ALTER TABLE `chart_view` ADD COLUMN `result_count` int(10) COMMENT '展示结果' AFTER `render`; ALTER TABLE `chart_view` ADD COLUMN `result_mode` varchar(50) COMMENT '展示模式' AFTER `result_count`; UPDATE `chart_view` SET `result_count` = 1000; UPDATE `chart_view` SET `result_mode` = 'custom'; - +ALTER TABLE `dataset_table` + MODIFY COLUMN `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL; -- ---------------------------- -- Table structure for sys_theme 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=已經有同步任務在運行,稍後重試 diff --git a/frontend/src/views/system/user/form.vue b/frontend/src/views/system/user/form.vue index 20ee51390e..096608a604 100644 --- a/frontend/src/views/system/user/form.vue +++ b/frontend/src/views/system/user/form.vue @@ -32,7 +32,7 @@ {{ $t('commons.disable') }} - + - + { + this.isPluginLoaded = res.success && res.data + }) + }, methods: { entryKey(event) { const keyCode = event.keyCode diff --git a/frontend/src/views/system/user/index.vue b/frontend/src/views/system/user/index.vue index 4e4e7383eb..18dbcf08ab 100644 --- a/frontend/src/views/system/user/index.vue +++ b/frontend/src/views/system/user/index.vue @@ -27,12 +27,12 @@ - + - +