diff --git a/common/src/main/java/com/jeesite/common/msg/SmsUtils.java b/common/src/main/java/com/jeesite/common/msg/SmsUtils.java index 32b6f85a..048854bc 100644 --- a/common/src/main/java/com/jeesite/common/msg/SmsUtils.java +++ b/common/src/main/java/com/jeesite/common/msg/SmsUtils.java @@ -36,7 +36,7 @@ public class SmsUtils { // conn.data("mobile", mobile); // // 短信内容 // conn.data("content", prefix + content + suffix); - logger.warn("模拟发送短信成功!请实现 "+SmsUtils.class+" 的 send 方法。"); + logger.warn("模拟发送短信成功!请实现 "+SmsUtils.class+" 的 send 方法。内容:"+content); return "{result:0,message:\"模拟发送短信成功!\"}"; } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx b/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx index 5109b4bd..50f65203 100644 Binary files a/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx and b/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx differ diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/user/AccountController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/user/AccountController.java index 9d9b0581..769dbe56 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/user/AccountController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/user/AccountController.java @@ -100,12 +100,10 @@ public class AccountController extends BaseController{ UserUtils.putCache("fpUserCode", u.getUserCode()); UserUtils.putCache("fpLoginCode", u.getLoginCode()); UserUtils.putCache("fpValidCode", fpValidCode); - // 发送短信消息。 + // 发送邮箱或短信验证码 if("mobile".equals(validType)){ return sendSmsValidCode(u, fpValidCode, text("找回密码")); - } - // 发送邮件消息。 - else if("email".equals(validType)){ + }else if("email".equals(validType)){ return sendEmailValidCode(u, fpValidCode, text("找回密码")); } return null; @@ -272,8 +270,8 @@ public class AccountController extends BaseController{ @ApiImplicitParam(name = "userName", value = "用户姓名", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "email", value = "电子邮箱", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "mobile", value = "手机号码", required = true, paramType="query", type="String"), - @ApiImplicitParam(name = "corpCode", value = "租户编号", required = true, paramType="query", type="String"), - @ApiImplicitParam(name = "corpName", value = "租户名称", required = true, paramType="query", type="String"), + @ApiImplicitParam(name = "corpCode_", value = "租户编号", required = true, paramType="query", type="String"), + @ApiImplicitParam(name = "corpName_", value = "租户名称", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "userType", value = "用户类型(employee)", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "validCode", value = "图片验证码,防止重复机器人", required = true), @ApiImplicitParam(name = "validType", value = "验证方式(mobile、email)", required = true), @@ -287,6 +285,9 @@ public class AccountController extends BaseController{ return renderResult(Global.FALSE, text("非法操作。")); } // 非空数据校验。 + if (Global.isUseCorpModel() && StringUtils.isBlank(user.getCorpCode_())) { + return renderResult(Global.FALSE, text("请选择注册到的租户!")); + } if (!(StringUtils.isNotBlank(user.getLoginCode()) && StringUtils.isNotBlank(user.getUserName()))){ return renderResult(Global.FALSE, text("登录账号和用户姓名不能为空!")); } @@ -305,30 +306,31 @@ public class AccountController extends BaseController{ UserUtils.putCache("regLastDate", new Date()); } // 验证用户编码是否存在。 - if (UserUtils.getByLoginCode(user.getLoginCode()) != null){ + if (UserUtils.getByLoginCode(user.getLoginCode(), user.getCorpCode_()) != null){ return renderResult(Global.FALSE, text("登录账号已存在")); } // 生成验证码,并缓存。 - String code = StringUtils.getRandomNum(6); - UserUtils.putCache("regCorpCode", user.getCorpCode()); - UserUtils.putCache("regCorpName", user.getCorpName()); + String regValidCode = StringUtils.getRandomNum(6); + UserUtils.putCache("regCorpCode", user.getCorpCode_()); + UserUtils.putCache("regCorpName", user.getCorpName_()); UserUtils.putCache("regLoginCode", user.getLoginCode()); + UserUtils.putCache("regUserName", user.getUserName()); // 账号注册类型 String[] userTypes = StringUtils.split(Global.getConfig( - "sys.account.registerUser.userTypes.userTypes", "-1"), ","); + "sys.account.registerUser.userTypes", "-1"), ","); if (StringUtils.inString(user.getUserType(), userTypes)){ UserUtils.putCache("regUserType", user.getUserType()); }else{ - return renderResult(Global.FALSE, text("非法的用户类型!")); + return renderResult(Global.FALSE, text("请在参数设置里设定允许自助注册的用户类型")+":"+user.getUserType()); } UserUtils.putCache("regEmail", user.getEmail()); UserUtils.putCache("regMobile", user.getMobile()); - UserUtils.putCache("regValidCode", code); + UserUtils.putCache("regValidCode", regValidCode); // 发送邮箱或短信验证码 - if("send_email".equals(validType)){ - return sendEmailValidCode(user, code, text("注册账号")); - }else if("send_mobile".equals(validType)){ - return sendSmsValidCode(user, code, text("注册账号")); + if("email".equals(validType)){ + return sendEmailValidCode(user, regValidCode, text("注册账号")); + }else if("mobile".equals(validType)){ + return sendSmsValidCode(user, regValidCode, text("注册账号")); } return null; } @@ -343,7 +345,6 @@ public class AccountController extends BaseController{ @ApiOperation(value = "根据短信或邮件验证码注册用户") @ApiImplicitParams({ @ApiImplicitParam(name = "loginCode", value = "登录账号", required = true, paramType="query", type="String"), - @ApiImplicitParam(name = "userName", value = "用户姓名", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "password", value = "登录密码", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "regValidCode", value = "手机或邮箱接受的验证码", required = true), }) @@ -355,6 +356,7 @@ public class AccountController extends BaseController{ String corpName = (String)UserUtils.getCache("regCorpName"); String userType = (String)UserUtils.getCache("regUserType"); String loginCode = (String)UserUtils.getCache("regLoginCode"); + String userName = (String)UserUtils.getCache("regUserName"); String email = (String)UserUtils.getCache("regEmail"); String mobile = (String)UserUtils.getCache("regMobile"); String validCode = (String)UserUtils.getCache("regValidCode"); @@ -384,21 +386,25 @@ public class AccountController extends BaseController{ User u = new User(); u.setIsNewRecord(true); if (StringUtils.isNotBlank(corpCode)){ - u.setCorpCode(corpCode); - u.setCorpName(corpName); + u.setCorpCode_(corpCode); + u.setCorpName_(corpName); } u.setLoginCode(loginCode); - u.setUserName(user.getUserName()); + u.setUserName(userName); u.setPassword(user.getPassword()); u.setEmail(email); u.setMobile(mobile); u.setUserType(userType); u.setMgrType(User.MGR_TYPE_NOT_ADMIN); + u.setStatus(User.STATUS_AUDIT); // 待审核状态 userService.save(u); // 验证成功后清理验证码,验证码只允许使用一次。 + UserUtils.removeCache("regCorpCode"); + UserUtils.removeCache("regCorpName"); UserUtils.removeCache("regUserType"); UserUtils.removeCache("regLoginCode"); + UserUtils.removeCache("regUserName"); UserUtils.removeCache("regValidCode"); UserUtils.removeCache("regLastDate"); diff --git a/modules/core/src/main/resources/config/jeesite-core.yml b/modules/core/src/main/resources/config/jeesite-core.yml index 452fc202..69ca7c8e 100644 --- a/modules/core/src/main/resources/config/jeesite-core.yml +++ b/modules/core/src/main/resources/config/jeesite-core.yml @@ -173,13 +173,6 @@ user: # 登录账号是否租户内唯一,否则全局唯一 loginCodeCorpUnique: false - # 自助账号服务 - account: - # 注册用户 - registerUser: - enabled: false - userTypes: 0, 1 - # 角色管理 role: # 扩展数据权限定义:3:本部门;4:本公司;5:本部门和本公司 @@ -392,6 +385,7 @@ shiro: # ${adminPath}/sys/corpAdmin/treeData = anon # ${adminPath}/** = user filterChainDefinitions: | + ${adminPath}/sys/corpAdmin/treeData = anon ${adminPath}/** = user # 默认的授权过滤定义,如果在filterChainDefinitions中已经定义,则该定义会被覆盖。 @@ -603,8 +597,8 @@ msg: fromAddress: jeesite_demo@163.com fromPassword: jeesitedemo1234 fromHostName: smtp.163.com - sslOnConnect: false - sslSmtpPort: 994 + sslOnConnect: true + sslSmtpPort: 465 # 短信网关 sms: diff --git a/modules/core/src/main/resources/i18n/core/common/i18n_zh_CN.properties b/modules/core/src/main/resources/i18n/core/common/i18n_zh_CN.properties index da506252..abdb09da 100644 --- a/modules/core/src/main/resources/i18n/core/common/i18n_zh_CN.properties +++ b/modules/core/src/main/resources/i18n/core/common/i18n_zh_CN.properties @@ -14,8 +14,8 @@ sys.login.accountIsBlank=登录账号不能为空。 sys.login.validCodeError=登录验证码错误,请重试。 sys.login.accountDisabled=该帐号已停用。 sys.login.accountFreezed=该帐号已冻结。 -sys.login.accountAudited=该帐号待审核。 -sys.login.accountInvalid=该帐号无效。 +sys.login.accountAudited=该帐号等待审核。 +sys.login.accountInvalid=该帐号无效状态。 sys.login.tickOutMessage=账号已被管理员移出在线,请重新登录。 sys.login.multiAddrMessage=账号已在其它地方登录,请重新登录。 sys.login.failedNumLock=登录失败,尝试次数过多,账号已锁定,请 {0} 分钟后重试. diff --git a/modules/core/src/main/resources/views/modules/sys/account/registerUser.html b/modules/core/src/main/resources/views/modules/sys/account/registerUser.html new file mode 100644 index 00000000..2d5f4f16 --- /dev/null +++ b/modules/core/src/main/resources/views/modules/sys/account/registerUser.html @@ -0,0 +1,173 @@ +<% layout('/layouts/default.html', {title: '账号注册', libs: ['validate'], bodyClass: 'login-page'}){ %> +<% include('/include/upgrade.html'){} // 如果客户浏览器版本过低,则显示浏览器升级提示。 %> + + + +
+ +
+
+
+ + +
+ <% if(@Global.isUseCorpModel()){ %> +
+ <#form:treeselect id="reg_corp" title="${text('选择租户')}" allowClear="true" + name="corpCode" value="0" labelName="corpName" labelValue="JeeSite" + url="${ctx}/sys/corpAdmin/treeData?isShowCode=true" + class="required" data-msg-required="请选择所属租户." + placeholder="${text('所属租户')}"/> +
+ <% } %> +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ <#form:validcode id="reg_validCode" name="validCode" isRequired="true" isRemote="true" isLazy="false"/> +
+
+
+ + + + +
+ +
+
+ + +
+
+ + +
+
+   + 查看协议 +
+
+
+ +
+
+ +
+
+
+
+
+ +
+<% } %> + + \ No newline at end of file diff --git a/modules/core/src/main/resources/views/themes/default/modules/sys/sysLogin.html b/modules/core/src/main/resources/views/themes/default/modules/sys/sysLogin.html index 63c37628..5aafd252 100644 --- a/modules/core/src/main/resources/views/themes/default/modules/sys/sysLogin.html +++ b/modules/core/src/main/resources/views/themes/default/modules/sys/sysLogin.html @@ -54,7 +54,7 @@
[ ${text('忘记密码')} ] - <% if(@Global.getConfigToBoolean('user.registerUser', 'false')){ %> + <% if(@Global.getConfigToBoolean('sys.account.registerUser', 'false')){ %> [ ${text('注册账号')} ] <% } %> <% if (@com.jeesite.common.i18n.I18nLocaleResolver.enabled()){ %>