summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshizhendong <[email protected]>2024-05-13 16:04:29 +0800
committershizhendong <[email protected]>2024-05-13 16:04:29 +0800
commitcce25703bf115966a9c9dfc232717e9208d93e4e (patch)
tree898929d263541899278bbb19886995e4224d0c3b
parent6cd17196999cb5fbb47b5eeebb03cd5ebcc476cb (diff)
fix: NEZ-3468 用户编辑页面修改 username 校验规则rel-24.01.21
-rw-r--r--nz-admin/src/main/java/com/nis/modules/sys/controller/SysUserController.java24
-rw-r--r--nz-admin/src/main/java/com/nis/modules/sys/service/SysUserService.java10
-rw-r--r--nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java35
-rw-r--r--nz-common/src/main/java/com/nis/common/utils/RCode.java3
4 files changed, 26 insertions, 46 deletions
diff --git a/nz-admin/src/main/java/com/nis/modules/sys/controller/SysUserController.java b/nz-admin/src/main/java/com/nis/modules/sys/controller/SysUserController.java
index f2cf2574..cbd08be8 100644
--- a/nz-admin/src/main/java/com/nis/modules/sys/controller/SysUserController.java
+++ b/nz-admin/src/main/java/com/nis/modules/sys/controller/SysUserController.java
@@ -1,7 +1,6 @@
package com.nis.modules.sys.controller;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.nis.common.annotation.SysLog;
import com.nis.common.exception.NZException;
import com.nis.common.smartvalidate.ValidateUtils;
@@ -166,29 +165,6 @@ public class SysUserController extends AbstractController {
}
/**
- * 用户名称校验
- * @param params
- * @return
- */
- @RequestMapping(value = "nameCheck", method = RequestMethod.GET)
- public R nameCheck(@RequestParam Map<String, Object> params) {
- ValidateUtils.is(params.get("name")).notNull();
- //校验名称重复
- SysUserEntity queryParam = new SysUserEntity();
- Object object = params.get("id");
- if (object != null && !StringUtils.isEmpty(object.toString())) {
- queryParam.setId(Long.valueOf((String)object));
- }
- queryParam.setUsername((String)params.get("name"));
-
- if (sysUserService.checkName(queryParam)) {
- throw new NZException(RCode.SYS_USER_DUPLICATENAME);
- } else {
- return R.ok();
- }
- }
-
- /**
* 用户权限查询接口
* @param request
* @return
diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/SysUserService.java b/nz-admin/src/main/java/com/nis/modules/sys/service/SysUserService.java
index b3a39e23..a0d407ac 100644
--- a/nz-admin/src/main/java/com/nis/modules/sys/service/SysUserService.java
+++ b/nz-admin/src/main/java/com/nis/modules/sys/service/SysUserService.java
@@ -46,13 +46,6 @@ public interface SysUserService extends IService<SysUserEntity> {
*/
boolean updatePassword(Long userId, String password, String newPassword);
- /**
- * 校验用户名是否重复
- * @param queryParam
- * @return
- */
- boolean checkName(SysUserEntity queryParam);
-
void deleteUsers(String userIds);
Map<String, Object> getUserPermissions(HttpServletRequest request);
@@ -63,4 +56,7 @@ public interface SysUserService extends IService<SysUserEntity> {
void checkPin(SysUserEntity user,boolean isLogin);
void checkCacheRetry(SysUserEntity user);
+
+ void validateUsername(String username);
+
}
diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java
index bf0bd55c..4dfca324 100644
--- a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java
+++ b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java
@@ -43,6 +43,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.TimeUnit;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
@@ -149,6 +151,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
.and(user.getMobile()).maxLength(64)
.and(status).notNull(RCode.SYS_USER_STATUS_ISNULL).and(user.getName()).notNull(RCode.SYS_USER_NAME_ISNULL).maxLength(64);
+ // 校验用户名
+ this.validateUsername(user.getUsername());
+
List<SysUserEntity> list = this.list(new QueryWrapper<SysUserEntity>().lambda().eq(SysUserEntity::getName, user.getName()).ne(ObjectUtil.isNotEmpty(user.getId()),SysUserEntity::getId, user.getId()));
if(ObjectUtil.isNotEmpty(list)) {
throw new NZException(RCode.SYS_USER_NAME_DUPLICATE);
@@ -309,21 +314,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
}
@Override
- public boolean checkName(SysUserEntity user) {
- List<SysUserEntity> list = this.list(new LambdaUpdateWrapper<SysUserEntity>()
- .eq(ToolUtil.isNotEmpty(user.getUsername()), SysUserEntity::getUsername, user.getUsername())
- .eq(ToolUtil.isNotEmpty(user.getStatus()), SysUserEntity::getStatus, 1));
- boolean dumpFlag = true; //是否名称重复,true为重复
-
- //当只有一个结果并且这个结果是自身时,或没有结果时,说明名称不重复
- if ((list == null || list.size() == 0) ||
- (list.size() == 1 && list.get(0).getId().longValue() == user.getId().longValue())) {
- dumpFlag = false;
- }
- return dumpFlag;
- }
-
- @Override
@Transactional(rollbackFor = Exception.class)
public void deleteUsers(String userIds) {
ValidateUtils.is(userIds).notNull(RCode.SYS_USER_ID_ISNULL);
@@ -561,4 +551,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
cache.put(key, "1", TimeUnit.MINUTES.toMillis(5));
}
}
+
+ @Override
+ public void validateUsername(String username) {
+ if (username.length() > 64 || username.length() < 1) {
+ log.info("[validateUsername] [Username length is invalid] [value: {}]", username);
+ throw new NZException(RCode.SYS_USER_USERNAME_LENGTH_INVALID);
+ }
+ // 判断用户名仅允许字母数字及英文标点符号
+ final String pattern = "^[a-zA-Z0-9!@~\\-=`#\\$%^&\\*\\(\\)\\+\\{\\}\\[\\]\\\\|:;'\"<>,\\./\\?_]*$";
+ final Pattern compole = Pattern.compile(pattern);
+ final Matcher m = compole.matcher(username);
+ if (!m.matches()) {
+ throw new NZException(RCode.SYS_USER_USERNAME_VALIDATION_FAILED);
+ }
+ }
}
diff --git a/nz-common/src/main/java/com/nis/common/utils/RCode.java b/nz-common/src/main/java/com/nis/common/utils/RCode.java
index 03af998c..b371a1fc 100644
--- a/nz-common/src/main/java/com/nis/common/utils/RCode.java
+++ b/nz-common/src/main/java/com/nis/common/utils/RCode.java
@@ -615,6 +615,9 @@ public enum RCode {
SYS_USER_QUERY_KEY_ISNULL(511050,"Query key can not be empty"),
SYS_USER_QUERY_VALUE_ISNULL(511051,"Query value can not be empty"),
SYS_USER_USERNAME_DUPLICATE(511052,"System user userName duplicate"),
+ SYS_USER_USERNAME_VALIDATION_FAILED(513053,"Only letters, numbers and symbols are allowed for username"),
+ SYS_USER_USERNAME_LENGTH_INVALID(513054, "Username length is invalid"),
+
AGENT_ID_ISNULL(521000, "Agent id can not be empty"),
AGENT_DCID_ISNULL(521001, "Agent Dc id can not be empty"),