Commit abfbe1ea83570a00106dedebb283dc8b065ac929

Authored by YunaiV
1 parent 4a9e9961

feat:【SYSTEM】通过系统配置管理来设置系统是否可注册用户

yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
@@ -45,6 +45,7 @@ public interface ErrorCodeConstants { @@ -45,6 +45,7 @@ public interface ErrorCodeConstants {
45 ErrorCode USER_COUNT_MAX = new ErrorCode(1_002_003_008, "创建用户失败,原因:超过租户最大租户配额({})!"); 45 ErrorCode USER_COUNT_MAX = new ErrorCode(1_002_003_008, "创建用户失败,原因:超过租户最大租户配额({})!");
46 ErrorCode USER_IMPORT_INIT_PASSWORD = new ErrorCode(1_002_003_009, "初始密码不能为空"); 46 ErrorCode USER_IMPORT_INIT_PASSWORD = new ErrorCode(1_002_003_009, "初始密码不能为空");
47 ErrorCode USER_MOBILE_NOT_EXISTS = new ErrorCode(1_002_003_010, "该手机号尚未注册"); 47 ErrorCode USER_MOBILE_NOT_EXISTS = new ErrorCode(1_002_003_010, "该手机号尚未注册");
  48 + ErrorCode USER_REGISTER_DISABLED = new ErrorCode(1_002_003_011, "注册功能已关闭");
48 49
49 // ========== 部门模块 1-002-004-000 ========== 50 // ========== 部门模块 1-002-004-000 ==========
50 ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门"); 51 ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门");
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.service.user; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.service.user;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.collection.CollectionUtil; 4 import cn.hutool.core.collection.CollectionUtil;
5 import cn.hutool.core.io.IoUtil; 5 import cn.hutool.core.io.IoUtil;
  6 +import cn.hutool.core.util.ObjUtil;
6 import cn.hutool.core.util.StrUtil; 7 import cn.hutool.core.util.StrUtil;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 8 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.exception.ServiceException; 9 import cn.iocoder.yudao.framework.common.exception.ServiceException;
@@ -61,6 +62,8 @@ public class AdminUserServiceImpl implements AdminUserService { @@ -61,6 +62,8 @@ public class AdminUserServiceImpl implements AdminUserService {
61 62
62 static final String USER_INIT_PASSWORD_KEY = "system.user.init-password"; 63 static final String USER_INIT_PASSWORD_KEY = "system.user.init-password";
63 64
  65 + static final String USER_REGISTER_ENABLED_KEY = "system.user.register-enabled";
  66 +
64 @Resource 67 @Resource
65 private AdminUserMapper userMapper; 68 private AdminUserMapper userMapper;
66 69
@@ -117,14 +120,18 @@ public class AdminUserServiceImpl implements AdminUserService { @@ -117,14 +120,18 @@ public class AdminUserServiceImpl implements AdminUserService {
117 120
118 @Override 121 @Override
119 public Long registerUser(AuthRegisterReqVO registerReqVO) { 122 public Long registerUser(AuthRegisterReqVO registerReqVO) {
120 - // 1.1 校验账户配合 123 + // 1.1 校验是否开启注册
  124 + if (ObjUtil.notEqual(configApi.getConfigValueByKey(USER_REGISTER_ENABLED_KEY), "true")) {
  125 + throw exception(USER_REGISTER_DISABLED);
  126 + }
  127 + // 1.2 校验账户配合
121 tenantService.handleTenantInfo(tenant -> { 128 tenantService.handleTenantInfo(tenant -> {
122 long count = userMapper.selectCount(); 129 long count = userMapper.selectCount();
123 if (count >= tenant.getAccountCount()) { 130 if (count >= tenant.getAccountCount()) {
124 throw exception(USER_COUNT_MAX, tenant.getAccountCount()); 131 throw exception(USER_COUNT_MAX, tenant.getAccountCount());
125 } 132 }
126 }); 133 });
127 - // 1.2 校验正确性 134 + // 1.3 校验正确性
128 validateUserForCreateOrUpdate(null, registerReqVO.getUsername(), null, null, null, null); 135 validateUserForCreateOrUpdate(null, registerReqVO.getUsername(), null, null, null, null);
129 136
130 // 2. 插入用户 137 // 2. 插入用户